From ee82748aeb764b0c3e651b8e33b033fceb870801 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Sat, 9 Apr 2022 18:05:04 -0700 Subject: [PATCH] Release v0.15.10 (#1820) Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- .../base/console-deployment.yaml | 2 +- .../standalone/console-deployment.yaml | 2 +- portal-ui/build/asset-manifest.json | 424 +++++++++--------- portal-ui/build/index.html | 2 +- .../build/static/js/1326.19aa2326.chunk.js | 2 - .../static/js/1326.19aa2326.chunk.js.map | 1 - .../build/static/js/1379.8207ed7c.chunk.js | 2 + .../static/js/1379.8207ed7c.chunk.js.map | 1 + .../build/static/js/1434.2cbee404.chunk.js | 2 - .../static/js/1434.2cbee404.chunk.js.map | 1 - .../build/static/js/1434.8703ced0.chunk.js | 2 + .../static/js/1434.8703ced0.chunk.js.map | 1 + .../build/static/js/1440.146b37eb.chunk.js | 2 - .../build/static/js/1440.74dce637.chunk.js | 2 + ...hunk.js.map => 1440.74dce637.chunk.js.map} | 2 +- .../build/static/js/1501.b5696037.chunk.js | 2 + .../static/js/1501.b5696037.chunk.js.map | 1 + .../build/static/js/1520.5385d6f6.chunk.js | 2 - .../static/js/1520.5385d6f6.chunk.js.map | 1 - .../static/js/1581.3e4f9436.chunk.js.map | 1 - ...4f9436.chunk.js => 1581.e753ce61.chunk.js} | 4 +- .../static/js/1581.e753ce61.chunk.js.map | 1 + .../build/static/js/1604.a9d0b62b.chunk.js | 2 + .../static/js/1604.a9d0b62b.chunk.js.map | 1 + .../build/static/js/1604.c6070715.chunk.js | 2 - .../static/js/1604.c6070715.chunk.js.map | 1 - .../build/static/js/1687.72fad20d.chunk.js | 2 - .../static/js/1687.72fad20d.chunk.js.map | 1 - .../build/static/js/1705.7586dfce.chunk.js | 2 + .../static/js/1705.7586dfce.chunk.js.map | 1 + .../build/static/js/1705.b90dd0eb.chunk.js | 2 - .../static/js/1705.b90dd0eb.chunk.js.map | 1 - .../build/static/js/1788.280ca1f4.chunk.js | 2 + .../static/js/1788.280ca1f4.chunk.js.map | 1 + .../build/static/js/1829.202650e3.chunk.js | 2 - .../static/js/1829.202650e3.chunk.js.map | 1 - .../build/static/js/1829.2cab6045.chunk.js | 2 + .../static/js/1829.2cab6045.chunk.js.map | 1 + .../build/static/js/1836.083f36ae.chunk.js | 2 + .../static/js/1836.083f36ae.chunk.js.map | 1 + .../build/static/js/1836.761ade1e.chunk.js | 2 - .../static/js/1836.761ade1e.chunk.js.map | 1 - .../build/static/js/191.92f7d06b.chunk.js | 2 - .../build/static/js/191.92f7d06b.chunk.js.map | 1 - .../build/static/js/1955.27cc0d9b.chunk.js | 2 + .../static/js/1955.27cc0d9b.chunk.js.map | 1 + .../build/static/js/1955.95db0000.chunk.js | 2 - .../static/js/1955.95db0000.chunk.js.map | 1 - ...6aa5f9.chunk.js => 2011.53c6f61f.chunk.js} | 6 +- ...txt => 2011.53c6f61f.chunk.js.LICENSE.txt} | 0 .../static/js/2011.53c6f61f.chunk.js.map | 1 + .../build/static/js/2076.e7bf07b8.chunk.js | 2 - .../build/static/js/2112.4cc30535.chunk.js | 2 + .../static/js/2112.4cc30535.chunk.js.map | 1 + .../build/static/js/2112.6991f0b0.chunk.js | 2 - .../static/js/2112.6991f0b0.chunk.js.map | 1 - .../build/static/js/2180.c83301fc.chunk.js | 2 + ...hunk.js.map => 2180.c83301fc.chunk.js.map} | 2 +- .../build/static/js/2180.f0842e9e.chunk.js | 2 - .../build/static/js/2249.39222819.chunk.js | 2 - .../static/js/2249.39222819.chunk.js.map | 1 - .../build/static/js/2249.922e46ea.chunk.js | 2 + .../static/js/2249.922e46ea.chunk.js.map | 1 + .../build/static/js/2338.2294f835.chunk.js | 2 + .../static/js/2338.2294f835.chunk.js.map | 1 + .../build/static/js/2338.8b9b592f.chunk.js | 2 - .../static/js/2338.8b9b592f.chunk.js.map | 1 - .../build/static/js/2426.172b5361.chunk.js | 3 + ...txt => 2426.172b5361.chunk.js.LICENSE.txt} | 0 .../static/js/2426.172b5361.chunk.js.map | 1 + .../build/static/js/2426.bc0cfae1.chunk.js | 3 - .../static/js/2426.bc0cfae1.chunk.js.map | 1 - .../build/static/js/2442.c325186c.chunk.js | 2 - .../static/js/2442.c325186c.chunk.js.map | 1 - .../build/static/js/2512.b0d0c6a4.chunk.js | 2 + .../static/js/2512.b0d0c6a4.chunk.js.map | 1 + .../build/static/js/255.7603092b.chunk.js | 2 - .../build/static/js/255.7603092b.chunk.js.map | 1 - .../build/static/js/2555.1aef7cca.chunk.js | 2 + .../static/js/2555.1aef7cca.chunk.js.map | 1 + .../build/static/js/2625.6d6e6809.chunk.js | 2 + .../static/js/2625.6d6e6809.chunk.js.map | 1 + .../build/static/js/2625.eff40583.chunk.js | 2 - .../static/js/2625.eff40583.chunk.js.map | 1 - ...2f4fc2.chunk.js => 2661.bb4d5ff4.chunk.js} | 4 +- .../static/js/2661.bb4d5ff4.chunk.js.map | 1 + .../static/js/2661.ed2f4fc2.chunk.js.map | 1 - .../build/static/js/2676.47150957.chunk.js | 2 - .../static/js/2676.47150957.chunk.js.map | 1 - .../build/static/js/2676.bd3d9df3.chunk.js | 2 + .../static/js/2676.bd3d9df3.chunk.js.map | 1 + .../build/static/js/2684.013ba254.chunk.js | 2 + .../static/js/2684.013ba254.chunk.js.map | 1 + .../build/static/js/2684.3e7eb9b1.chunk.js | 2 - .../static/js/2684.3e7eb9b1.chunk.js.map | 1 - .../build/static/js/2723.c7e2034f.chunk.js | 2 - .../static/js/2723.c7e2034f.chunk.js.map | 1 - .../build/static/js/2763.02f8a4d8.chunk.js | 2 - .../static/js/2763.02f8a4d8.chunk.js.map | 1 - .../build/static/js/2763.58b7220d.chunk.js | 2 + .../static/js/2763.58b7220d.chunk.js.map | 1 + .../build/static/js/2794.ee6b7b2c.chunk.js | 2 + .../static/js/2794.ee6b7b2c.chunk.js.map | 1 + .../build/static/js/2878.174d0b14.chunk.js | 2 - .../static/js/2878.174d0b14.chunk.js.map | 1 - .../build/static/js/2878.fca6e2cf.chunk.js | 2 + .../static/js/2878.fca6e2cf.chunk.js.map | 1 + .../build/static/js/2879.69834509.chunk.js | 2 - .../static/js/2879.69834509.chunk.js.map | 1 - .../build/static/js/3096.63d4ac67.chunk.js | 2 - .../static/js/3096.63d4ac67.chunk.js.map | 1 - .../build/static/js/312.256db0f7.chunk.js | 2 - .../build/static/js/312.256db0f7.chunk.js.map | 1 - .../build/static/js/312.f6f66e6c.chunk.js | 2 + .../build/static/js/312.f6f66e6c.chunk.js.map | 1 + .../build/static/js/3176.43953acc.chunk.js | 2 + .../static/js/3176.43953acc.chunk.js.map | 1 + .../build/static/js/3176.640e537b.chunk.js | 2 - .../static/js/3176.640e537b.chunk.js.map | 1 - .../build/static/js/3208.c0b88007.chunk.js | 2 + .../static/js/3208.c0b88007.chunk.js.map | 1 + .../build/static/js/321.2af53d6e.chunk.js | 2 + .../build/static/js/321.2af53d6e.chunk.js.map | 1 + .../build/static/js/321.eedfb3a5.chunk.js | 2 - .../build/static/js/321.eedfb3a5.chunk.js.map | 1 - ...1c2bc8.chunk.js => 3320.6e852bd3.chunk.js} | 4 +- .../static/js/3320.6e852bd3.chunk.js.map | 1 + .../static/js/3320.b01c2bc8.chunk.js.map | 1 - .../build/static/js/3328.04821285.chunk.js | 2 - .../static/js/3328.04821285.chunk.js.map | 1 - .../build/static/js/3328.c99fe6b3.chunk.js | 2 + .../static/js/3328.c99fe6b3.chunk.js.map | 1 + .../build/static/js/3461.f7b91f8d.chunk.js | 2 + ...hunk.js.map => 3461.f7b91f8d.chunk.js.map} | 2 +- .../build/static/js/3518.0178dcf1.chunk.js | 2 - .../static/js/3518.0178dcf1.chunk.js.map | 1 - .../build/static/js/3518.e1923a22.chunk.js | 2 + .../static/js/3518.e1923a22.chunk.js.map | 1 + .../build/static/js/3543.24923c9d.chunk.js | 2 - .../static/js/3543.24923c9d.chunk.js.map | 1 - .../build/static/js/3543.46c5055f.chunk.js | 2 + .../static/js/3543.46c5055f.chunk.js.map | 1 + .../build/static/js/3631.45996dad.chunk.js | 2 + .../static/js/3631.45996dad.chunk.js.map | 1 + .../build/static/js/3631.a3bc3d9b.chunk.js | 2 - .../static/js/3631.a3bc3d9b.chunk.js.map | 1 - .../build/static/js/3772.8f7b248e.chunk.js | 2 - .../static/js/3772.8f7b248e.chunk.js.map | 1 - .../build/static/js/380.1b0b26c2.chunk.js | 2 - .../build/static/js/380.1b0b26c2.chunk.js.map | 1 - .../build/static/js/380.cb95766e.chunk.js | 2 + .../build/static/js/380.cb95766e.chunk.js.map | 1 + .../build/static/js/3854.68ad3372.chunk.js | 2 + .../static/js/3854.68ad3372.chunk.js.map | 1 + .../build/static/js/3956.418abe3f.chunk.js | 2 + ...hunk.js.map => 3956.418abe3f.chunk.js.map} | 2 +- .../build/static/js/3956.74bfef51.chunk.js | 2 - .../build/static/js/402.3ec8985e.chunk.js | 2 - .../build/static/js/402.3ec8985e.chunk.js.map | 1 - .../build/static/js/402.ab077b85.chunk.js | 2 + .../build/static/js/402.ab077b85.chunk.js.map | 1 + .../build/static/js/4061.776bbbf3.chunk.js | 2 + .../static/js/4061.776bbbf3.chunk.js.map | 1 + .../build/static/js/4061.8bd849a7.chunk.js | 2 - .../static/js/4061.8bd849a7.chunk.js.map | 1 - .../build/static/js/4133.37c68d0f.chunk.js | 2 + .../static/js/4133.37c68d0f.chunk.js.map | 1 + .../build/static/js/4209.7c3855ef.chunk.js | 2 - .../static/js/4209.7c3855ef.chunk.js.map | 1 - .../build/static/js/4209.875682c6.chunk.js | 2 + .../static/js/4209.875682c6.chunk.js.map | 1 + .../build/static/js/4219.c24a76ef.chunk.js | 2 + .../static/js/4219.c24a76ef.chunk.js.map | 1 + .../build/static/js/426.0124a3b9.chunk.js | 2 - .../build/static/js/426.e738683c.chunk.js | 2 + ...chunk.js.map => 426.e738683c.chunk.js.map} | 2 +- .../build/static/js/4335.50f86695.chunk.js | 2 + .../static/js/4335.50f86695.chunk.js.map | 1 + .../build/static/js/4335.71899795.chunk.js | 2 - .../static/js/4335.71899795.chunk.js.map | 1 - .../build/static/js/4394.2fa16d38.chunk.js | 2 - .../static/js/4394.2fa16d38.chunk.js.map | 1 - .../build/static/js/4394.4efb3ddd.chunk.js | 2 + .../static/js/4394.4efb3ddd.chunk.js.map | 1 + ...189a53.chunk.js => 4414.453618d3.chunk.js} | 4 +- .../static/js/4414.453618d3.chunk.js.map | 1 + .../static/js/4414.80189a53.chunk.js.map | 1 - .../build/static/js/4455.b20c0c9c.chunk.js | 2 + .../static/js/4455.b20c0c9c.chunk.js.map | 1 + .../build/static/js/4509.0cb642e8.chunk.js | 2 + .../static/js/4509.0cb642e8.chunk.js.map | 1 + .../build/static/js/455.1720a69d.chunk.js | 2 + .../build/static/js/455.1720a69d.chunk.js.map | 1 + .../build/static/js/455.855a38c2.chunk.js | 2 - .../build/static/js/455.855a38c2.chunk.js.map | 1 - .../build/static/js/4619.c13fce95.chunk.js | 2 + .../static/js/4619.c13fce95.chunk.js.map | 1 + .../build/static/js/4619.c6ef5989.chunk.js | 2 - .../static/js/4619.c6ef5989.chunk.js.map | 1 - .../build/static/js/4653.957113df.chunk.js | 2 - .../static/js/4653.957113df.chunk.js.map | 1 - .../build/static/js/4653.a6dfdf0c.chunk.js | 2 + .../static/js/4653.a6dfdf0c.chunk.js.map | 1 + .../build/static/js/471.3ac500ed.chunk.js | 2 - .../build/static/js/471.3ac500ed.chunk.js.map | 1 - .../build/static/js/471.bc12301a.chunk.js | 2 + .../build/static/js/471.bc12301a.chunk.js.map | 1 + .../build/static/js/4781.785d14ba.chunk.js | 2 + .../static/js/4781.785d14ba.chunk.js.map | 1 + .../build/static/js/4781.ca99434f.chunk.js | 2 - .../static/js/4781.ca99434f.chunk.js.map | 1 - .../build/static/js/4874.80bf31e6.chunk.js | 2 - .../static/js/4874.80bf31e6.chunk.js.map | 1 - .../build/static/js/5026.0b30f6e2.chunk.js | 2 + .../static/js/5026.0b30f6e2.chunk.js.map | 1 + .../build/static/js/5085.49076139.chunk.js | 2 + .../static/js/5085.49076139.chunk.js.map | 1 + .../build/static/js/5088.4c9e1b8c.chunk.js | 2 + .../static/js/5088.4c9e1b8c.chunk.js.map | 1 + .../build/static/js/5088.921b2534.chunk.js | 2 - .../static/js/5088.921b2534.chunk.js.map | 1 - .../build/static/js/51.76f011ea.chunk.js | 2 - .../build/static/js/51.76f011ea.chunk.js.map | 1 - .../build/static/js/51.8e7e99eb.chunk.js | 2 + .../build/static/js/51.8e7e99eb.chunk.js.map | 1 + .../build/static/js/5140.8f5521e6.chunk.js | 2 - .../static/js/5140.8f5521e6.chunk.js.map | 1 - .../build/static/js/5140.e9043b63.chunk.js | 2 + .../static/js/5140.e9043b63.chunk.js.map | 1 + .../build/static/js/5165.0fcf4d2d.chunk.js | 2 - .../static/js/5165.0fcf4d2d.chunk.js.map | 1 - .../build/static/js/5289.2cf708de.chunk.js | 2 + .../static/js/5289.2cf708de.chunk.js.map | 1 + .../static/js/5315.f76aa5f9.chunk.js.map | 1 - .../build/static/js/5317.c7a235b3.chunk.js | 2 - .../static/js/5317.c7a235b3.chunk.js.map | 1 - .../build/static/js/5586.a2da5401.chunk.js | 2 + .../static/js/5586.a2da5401.chunk.js.map | 1 + .../build/static/js/5588.1a32c1c3.chunk.js | 2 - .../static/js/5588.1a32c1c3.chunk.js.map | 1 - .../build/static/js/5588.3894176c.chunk.js | 2 + .../static/js/5588.3894176c.chunk.js.map | 1 + .../build/static/js/5662.0998d919.chunk.js | 2 - .../static/js/5662.0998d919.chunk.js.map | 1 - .../build/static/js/6041.a11c2e9a.chunk.js | 2 - .../static/js/6041.a11c2e9a.chunk.js.map | 1 - .../build/static/js/6137.ac2c3fb7.chunk.js | 2 - .../static/js/6137.ac2c3fb7.chunk.js.map | 1 - .../build/static/js/6137.c0b24aaa.chunk.js | 2 + .../static/js/6137.c0b24aaa.chunk.js.map | 1 + .../build/static/js/6233.589f83fe.chunk.js | 2 - .../static/js/6233.589f83fe.chunk.js.map | 1 - .../build/static/js/6233.f8460b26.chunk.js | 2 + .../static/js/6233.f8460b26.chunk.js.map | 1 + .../build/static/js/63.830fd6fc.chunk.js | 2 + .../build/static/js/63.830fd6fc.chunk.js.map | 1 + .../build/static/js/6496.0cee9f03.chunk.js | 2 - .../static/js/6496.0cee9f03.chunk.js.map | 1 - .../build/static/js/6683.0a047d81.chunk.js | 2 + .../static/js/6683.0a047d81.chunk.js.map | 1 + .../build/static/js/6683.18e77b71.chunk.js | 2 - .../static/js/6683.18e77b71.chunk.js.map | 1 - .../build/static/js/6763.1da82d5c.chunk.js | 2 - .../static/js/6763.1da82d5c.chunk.js.map | 1 - .../build/static/js/6763.e14ad9c3.chunk.js | 2 + .../static/js/6763.e14ad9c3.chunk.js.map | 1 + .../build/static/js/6895.af17fed5.chunk.js | 2 - .../static/js/6895.af17fed5.chunk.js.map | 1 - .../build/static/js/6895.c4b3ab71.chunk.js | 2 + .../static/js/6895.c4b3ab71.chunk.js.map | 1 + .../build/static/js/7002.c23dc7cf.chunk.js | 2 + .../static/js/7002.c23dc7cf.chunk.js.map | 1 + .../build/static/js/701.06a6587d.chunk.js | 2 - .../build/static/js/701.06a6587d.chunk.js.map | 1 - .../build/static/js/701.55960ffe.chunk.js | 2 + .../build/static/js/701.55960ffe.chunk.js.map | 1 + .../build/static/js/7021.ee631825.chunk.js | 2 + .../static/js/7021.ee631825.chunk.js.map | 1 + .../build/static/js/7045.7a56a854.chunk.js | 2 + .../static/js/7045.7a56a854.chunk.js.map | 1 + .../build/static/js/7045.e30cf01e.chunk.js | 2 - .../static/js/7045.e30cf01e.chunk.js.map | 1 - .../build/static/js/711.121af87a.chunk.js | 2 - .../build/static/js/711.971db52a.chunk.js | 2 + ...chunk.js.map => 711.971db52a.chunk.js.map} | 2 +- .../build/static/js/7164.5542a849.chunk.js | 2 + .../static/js/7164.5542a849.chunk.js.map | 1 + .../build/static/js/7164.e4aebe46.chunk.js | 2 - .../static/js/7164.e4aebe46.chunk.js.map | 1 - .../build/static/js/7315.f1bb4245.chunk.js | 2 - .../static/js/7315.f1bb4245.chunk.js.map | 1 - .../build/static/js/7331.106a6938.chunk.js | 2 - .../static/js/7331.106a6938.chunk.js.map | 1 - ...fe6f9f.chunk.js => 7413.76c38a02.chunk.js} | 4 +- .../static/js/7413.76c38a02.chunk.js.map | 1 + .../static/js/7413.a6fe6f9f.chunk.js.map | 1 - .../build/static/js/7585.2a9cb3d4.chunk.js | 2 - .../static/js/7585.2a9cb3d4.chunk.js.map | 1 - .../build/static/js/7585.a54f7c72.chunk.js | 2 + .../static/js/7585.a54f7c72.chunk.js.map | 1 + .../build/static/js/7659.5504cc60.chunk.js | 2 - .../static/js/7659.5504cc60.chunk.js.map | 1 - .../build/static/js/7659.e4cc39f9.chunk.js | 2 + .../static/js/7659.e4cc39f9.chunk.js.map | 1 + .../build/static/js/770.c5b57a95.chunk.js | 2 - .../build/static/js/770.c5b57a95.chunk.js.map | 1 - .../build/static/js/7798.21fc6f4a.chunk.js | 2 + .../static/js/7798.21fc6f4a.chunk.js.map | 1 + .../build/static/js/7798.9bd6994f.chunk.js | 2 - .../static/js/7798.9bd6994f.chunk.js.map | 1 - .../build/static/js/7821.a2c85c06.chunk.js | 2 + .../static/js/7821.a2c85c06.chunk.js.map | 1 + .../build/static/js/7821.f798ffe1.chunk.js | 2 - .../static/js/7821.f798ffe1.chunk.js.map | 1 - .../build/static/js/7923.552889f9.chunk.js | 2 + .../static/js/7923.552889f9.chunk.js.map | 1 + .../build/static/js/7931.9fe0101a.chunk.js | 2 - .../static/js/7931.9fe0101a.chunk.js.map | 1 - .../build/static/js/8138.4c6a5b7f.chunk.js | 2 - .../static/js/8138.4c6a5b7f.chunk.js.map | 1 - .../build/static/js/8138.5e1c08de.chunk.js | 2 + .../static/js/8138.5e1c08de.chunk.js.map | 1 + .../build/static/js/8183.8c64a361.chunk.js | 2 - .../static/js/8183.8c64a361.chunk.js.map | 1 - .../build/static/js/8350.501e9b49.chunk.js | 2 - .../static/js/8350.501e9b49.chunk.js.map | 1 - .../build/static/js/8350.feed1db5.chunk.js | 2 + .../static/js/8350.feed1db5.chunk.js.map | 1 + .../build/static/js/8354.e837d480.chunk.js | 2 - .../static/js/8354.e837d480.chunk.js.map | 1 - .../build/static/js/8391.4ea39138.chunk.js | 2 + .../static/js/8391.4ea39138.chunk.js.map | 1 + .../build/static/js/8391.cf78366d.chunk.js | 2 - .../static/js/8391.cf78366d.chunk.js.map | 1 - .../build/static/js/8396.49ac6668.chunk.js | 2 + .../static/js/8396.49ac6668.chunk.js.map | 1 + .../build/static/js/8455.802bf15b.chunk.js | 2 + .../static/js/8455.802bf15b.chunk.js.map | 1 + .../build/static/js/8455.f9b61de1.chunk.js | 2 - .../static/js/8455.f9b61de1.chunk.js.map | 1 - .../build/static/js/8760.e06a6adc.chunk.js | 2 - .../static/js/8760.e06a6adc.chunk.js.map | 1 - .../build/static/js/8771.475684ba.chunk.js | 2 + .../static/js/8771.475684ba.chunk.js.map | 1 + .../build/static/js/8771.b2727bdd.chunk.js | 2 - .../static/js/8771.b2727bdd.chunk.js.map | 1 - .../build/static/js/8822.6030f20d.chunk.js | 2 - .../static/js/8822.6030f20d.chunk.js.map | 1 - .../build/static/js/8833.5d3a1948.chunk.js | 2 + .../static/js/8833.5d3a1948.chunk.js.map | 1 + .../build/static/js/8833.d4d792a2.chunk.js | 2 - .../static/js/8833.d4d792a2.chunk.js.map | 1 - .../build/static/js/8896.984a3f17.chunk.js | 2 + .../static/js/8896.984a3f17.chunk.js.map | 1 + .../build/static/js/8896.e9be20fb.chunk.js | 2 - .../static/js/8896.e9be20fb.chunk.js.map | 1 - .../build/static/js/8915.be25a5c1.chunk.js | 2 - .../static/js/8915.be25a5c1.chunk.js.map | 1 - .../build/static/js/8990.4fcc1b0f.chunk.js | 2 - .../static/js/8990.4fcc1b0f.chunk.js.map | 1 - .../build/static/js/8990.57055bc2.chunk.js | 2 + .../static/js/8990.57055bc2.chunk.js.map | 1 + .../build/static/js/9002.8057e34f.chunk.js | 2 - .../static/js/9002.8057e34f.chunk.js.map | 1 - .../build/static/js/9076.4450f2f8.chunk.js | 2 + ...hunk.js.map => 9076.4450f2f8.chunk.js.map} | 2 +- .../build/static/js/9076.bfebbb14.chunk.js | 2 - .../build/static/js/9088.2ed52eb5.chunk.js | 2 - .../static/js/9088.2ed52eb5.chunk.js.map | 1 - .../build/static/js/9088.d0330189.chunk.js | 2 + .../static/js/9088.d0330189.chunk.js.map | 1 + ...36f36c.chunk.js => 9134.0538c268.chunk.js} | 4 +- .../static/js/9134.0538c268.chunk.js.map | 1 + .../static/js/9134.9336f36c.chunk.js.map | 1 - .../build/static/js/9145.1af8c238.chunk.js | 2 - .../static/js/9145.1af8c238.chunk.js.map | 1 - .../build/static/js/9145.363b2352.chunk.js | 2 + .../static/js/9145.363b2352.chunk.js.map | 1 + .../build/static/js/9251.fe6d731c.chunk.js | 2 + .../static/js/9251.fe6d731c.chunk.js.map | 1 + .../build/static/js/9299.2c28578b.chunk.js | 2 + .../static/js/9299.2c28578b.chunk.js.map | 1 + .../build/static/js/9299.5442941e.chunk.js | 2 - .../static/js/9299.5442941e.chunk.js.map | 1 - .../build/static/js/9362.63d03757.chunk.js | 2 - .../static/js/9362.63d03757.chunk.js.map | 1 - .../build/static/js/9449.035d0f2d.chunk.js | 2 - .../static/js/9449.035d0f2d.chunk.js.map | 1 - .../build/static/js/9449.281102d6.chunk.js | 2 + .../static/js/9449.281102d6.chunk.js.map | 1 + .../build/static/js/9467.50ab01b6.chunk.js | 2 + .../static/js/9467.50ab01b6.chunk.js.map | 1 + .../build/static/js/9467.d4860f23.chunk.js | 2 - .../static/js/9467.d4860f23.chunk.js.map | 1 - .../build/static/js/9605.e2f1ac95.chunk.js | 2 - .../static/js/9605.e2f1ac95.chunk.js.map | 1 - .../build/static/js/9605.fd87a53e.chunk.js | 2 + .../static/js/9605.fd87a53e.chunk.js.map | 1 + .../build/static/js/9611.30185102.chunk.js | 2 - .../static/js/9611.30185102.chunk.js.map | 1 - .../build/static/js/9611.c217768e.chunk.js | 2 + .../static/js/9611.c217768e.chunk.js.map | 1 + .../build/static/js/9635.083b4e05.chunk.js | 2 - .../static/js/9635.083b4e05.chunk.js.map | 1 - .../build/static/js/9785.7ccf0212.chunk.js | 2 + .../static/js/9785.7ccf0212.chunk.js.map | 1 + .../build/static/js/9968.676114b2.chunk.js | 2 + .../static/js/9968.676114b2.chunk.js.map | 1 + .../build/static/js/9968.f0284b3d.chunk.js | 2 - .../static/js/9968.f0284b3d.chunk.js.map | 1 - portal-ui/build/static/js/main.5a7c25ee.js | 3 - .../build/static/js/main.5a7c25ee.js.map | 1 - portal-ui/build/static/js/main.cafe85a6.js | 3 + ...CENSE.txt => main.cafe85a6.js.LICENSE.txt} | 0 .../build/static/js/main.cafe85a6.js.map | 1 + .../src/common/SecureComponent/permissions.ts | 6 +- portal-ui/src/screens/Console/Console.tsx | 4 +- .../ObjectBrowser/BrowserBreadcrumbs.tsx | 3 +- .../Tenants/ListTenants/TenantCapacity.tsx | 6 +- .../Console/Tenants/ListTenants/types.ts | 4 +- .../Pools/EditPool/EditPoolPlacement.tsx | 12 +- 421 files changed, 542 insertions(+), 562 deletions(-) delete mode 100644 portal-ui/build/static/js/1326.19aa2326.chunk.js delete mode 100644 portal-ui/build/static/js/1326.19aa2326.chunk.js.map create mode 100644 portal-ui/build/static/js/1379.8207ed7c.chunk.js create mode 100644 portal-ui/build/static/js/1379.8207ed7c.chunk.js.map delete mode 100644 portal-ui/build/static/js/1434.2cbee404.chunk.js delete mode 100644 portal-ui/build/static/js/1434.2cbee404.chunk.js.map create mode 100644 portal-ui/build/static/js/1434.8703ced0.chunk.js create mode 100644 portal-ui/build/static/js/1434.8703ced0.chunk.js.map delete mode 100644 portal-ui/build/static/js/1440.146b37eb.chunk.js create mode 100644 portal-ui/build/static/js/1440.74dce637.chunk.js rename portal-ui/build/static/js/{1440.146b37eb.chunk.js.map => 1440.74dce637.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/1501.b5696037.chunk.js create mode 100644 portal-ui/build/static/js/1501.b5696037.chunk.js.map delete mode 100644 portal-ui/build/static/js/1520.5385d6f6.chunk.js delete mode 100644 portal-ui/build/static/js/1520.5385d6f6.chunk.js.map delete mode 100644 portal-ui/build/static/js/1581.3e4f9436.chunk.js.map rename portal-ui/build/static/js/{1581.3e4f9436.chunk.js => 1581.e753ce61.chunk.js} (55%) create mode 100644 portal-ui/build/static/js/1581.e753ce61.chunk.js.map create mode 100644 portal-ui/build/static/js/1604.a9d0b62b.chunk.js create mode 100644 portal-ui/build/static/js/1604.a9d0b62b.chunk.js.map delete mode 100644 portal-ui/build/static/js/1604.c6070715.chunk.js delete mode 100644 portal-ui/build/static/js/1604.c6070715.chunk.js.map delete mode 100644 portal-ui/build/static/js/1687.72fad20d.chunk.js delete mode 100644 portal-ui/build/static/js/1687.72fad20d.chunk.js.map create mode 100644 portal-ui/build/static/js/1705.7586dfce.chunk.js create mode 100644 portal-ui/build/static/js/1705.7586dfce.chunk.js.map delete mode 100644 portal-ui/build/static/js/1705.b90dd0eb.chunk.js delete mode 100644 portal-ui/build/static/js/1705.b90dd0eb.chunk.js.map create mode 100644 portal-ui/build/static/js/1788.280ca1f4.chunk.js create mode 100644 portal-ui/build/static/js/1788.280ca1f4.chunk.js.map delete mode 100644 portal-ui/build/static/js/1829.202650e3.chunk.js delete mode 100644 portal-ui/build/static/js/1829.202650e3.chunk.js.map create mode 100644 portal-ui/build/static/js/1829.2cab6045.chunk.js create mode 100644 portal-ui/build/static/js/1829.2cab6045.chunk.js.map create mode 100644 portal-ui/build/static/js/1836.083f36ae.chunk.js create mode 100644 portal-ui/build/static/js/1836.083f36ae.chunk.js.map delete mode 100644 portal-ui/build/static/js/1836.761ade1e.chunk.js delete mode 100644 portal-ui/build/static/js/1836.761ade1e.chunk.js.map delete mode 100644 portal-ui/build/static/js/191.92f7d06b.chunk.js delete mode 100644 portal-ui/build/static/js/191.92f7d06b.chunk.js.map create mode 100644 portal-ui/build/static/js/1955.27cc0d9b.chunk.js create mode 100644 portal-ui/build/static/js/1955.27cc0d9b.chunk.js.map delete mode 100644 portal-ui/build/static/js/1955.95db0000.chunk.js delete mode 100644 portal-ui/build/static/js/1955.95db0000.chunk.js.map rename portal-ui/build/static/js/{5315.f76aa5f9.chunk.js => 2011.53c6f61f.chunk.js} (99%) rename portal-ui/build/static/js/{5315.f76aa5f9.chunk.js.LICENSE.txt => 2011.53c6f61f.chunk.js.LICENSE.txt} (100%) create mode 100644 portal-ui/build/static/js/2011.53c6f61f.chunk.js.map delete mode 100644 portal-ui/build/static/js/2076.e7bf07b8.chunk.js create mode 100644 portal-ui/build/static/js/2112.4cc30535.chunk.js create mode 100644 portal-ui/build/static/js/2112.4cc30535.chunk.js.map delete mode 100644 portal-ui/build/static/js/2112.6991f0b0.chunk.js delete mode 100644 portal-ui/build/static/js/2112.6991f0b0.chunk.js.map create mode 100644 portal-ui/build/static/js/2180.c83301fc.chunk.js rename portal-ui/build/static/js/{2180.f0842e9e.chunk.js.map => 2180.c83301fc.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/2180.f0842e9e.chunk.js delete mode 100644 portal-ui/build/static/js/2249.39222819.chunk.js delete mode 100644 portal-ui/build/static/js/2249.39222819.chunk.js.map create mode 100644 portal-ui/build/static/js/2249.922e46ea.chunk.js create mode 100644 portal-ui/build/static/js/2249.922e46ea.chunk.js.map create mode 100644 portal-ui/build/static/js/2338.2294f835.chunk.js create mode 100644 portal-ui/build/static/js/2338.2294f835.chunk.js.map delete mode 100644 portal-ui/build/static/js/2338.8b9b592f.chunk.js delete mode 100644 portal-ui/build/static/js/2338.8b9b592f.chunk.js.map create mode 100644 portal-ui/build/static/js/2426.172b5361.chunk.js rename portal-ui/build/static/js/{2426.bc0cfae1.chunk.js.LICENSE.txt => 2426.172b5361.chunk.js.LICENSE.txt} (100%) create mode 100644 portal-ui/build/static/js/2426.172b5361.chunk.js.map delete mode 100644 portal-ui/build/static/js/2426.bc0cfae1.chunk.js delete mode 100644 portal-ui/build/static/js/2426.bc0cfae1.chunk.js.map delete mode 100644 portal-ui/build/static/js/2442.c325186c.chunk.js delete mode 100644 portal-ui/build/static/js/2442.c325186c.chunk.js.map create mode 100644 portal-ui/build/static/js/2512.b0d0c6a4.chunk.js create mode 100644 portal-ui/build/static/js/2512.b0d0c6a4.chunk.js.map delete mode 100644 portal-ui/build/static/js/255.7603092b.chunk.js delete mode 100644 portal-ui/build/static/js/255.7603092b.chunk.js.map create mode 100644 portal-ui/build/static/js/2555.1aef7cca.chunk.js create mode 100644 portal-ui/build/static/js/2555.1aef7cca.chunk.js.map create mode 100644 portal-ui/build/static/js/2625.6d6e6809.chunk.js create mode 100644 portal-ui/build/static/js/2625.6d6e6809.chunk.js.map delete mode 100644 portal-ui/build/static/js/2625.eff40583.chunk.js delete mode 100644 portal-ui/build/static/js/2625.eff40583.chunk.js.map rename portal-ui/build/static/js/{2661.ed2f4fc2.chunk.js => 2661.bb4d5ff4.chunk.js} (59%) create mode 100644 portal-ui/build/static/js/2661.bb4d5ff4.chunk.js.map delete mode 100644 portal-ui/build/static/js/2661.ed2f4fc2.chunk.js.map delete mode 100644 portal-ui/build/static/js/2676.47150957.chunk.js delete mode 100644 portal-ui/build/static/js/2676.47150957.chunk.js.map create mode 100644 portal-ui/build/static/js/2676.bd3d9df3.chunk.js create mode 100644 portal-ui/build/static/js/2676.bd3d9df3.chunk.js.map create mode 100644 portal-ui/build/static/js/2684.013ba254.chunk.js create mode 100644 portal-ui/build/static/js/2684.013ba254.chunk.js.map delete mode 100644 portal-ui/build/static/js/2684.3e7eb9b1.chunk.js delete mode 100644 portal-ui/build/static/js/2684.3e7eb9b1.chunk.js.map delete mode 100644 portal-ui/build/static/js/2723.c7e2034f.chunk.js delete mode 100644 portal-ui/build/static/js/2723.c7e2034f.chunk.js.map delete mode 100644 portal-ui/build/static/js/2763.02f8a4d8.chunk.js delete mode 100644 portal-ui/build/static/js/2763.02f8a4d8.chunk.js.map create mode 100644 portal-ui/build/static/js/2763.58b7220d.chunk.js create mode 100644 portal-ui/build/static/js/2763.58b7220d.chunk.js.map create mode 100644 portal-ui/build/static/js/2794.ee6b7b2c.chunk.js create mode 100644 portal-ui/build/static/js/2794.ee6b7b2c.chunk.js.map delete mode 100644 portal-ui/build/static/js/2878.174d0b14.chunk.js delete mode 100644 portal-ui/build/static/js/2878.174d0b14.chunk.js.map create mode 100644 portal-ui/build/static/js/2878.fca6e2cf.chunk.js create mode 100644 portal-ui/build/static/js/2878.fca6e2cf.chunk.js.map delete mode 100644 portal-ui/build/static/js/2879.69834509.chunk.js delete mode 100644 portal-ui/build/static/js/2879.69834509.chunk.js.map delete mode 100644 portal-ui/build/static/js/3096.63d4ac67.chunk.js delete mode 100644 portal-ui/build/static/js/3096.63d4ac67.chunk.js.map delete mode 100644 portal-ui/build/static/js/312.256db0f7.chunk.js delete mode 100644 portal-ui/build/static/js/312.256db0f7.chunk.js.map create mode 100644 portal-ui/build/static/js/312.f6f66e6c.chunk.js create mode 100644 portal-ui/build/static/js/312.f6f66e6c.chunk.js.map create mode 100644 portal-ui/build/static/js/3176.43953acc.chunk.js create mode 100644 portal-ui/build/static/js/3176.43953acc.chunk.js.map delete mode 100644 portal-ui/build/static/js/3176.640e537b.chunk.js delete mode 100644 portal-ui/build/static/js/3176.640e537b.chunk.js.map create mode 100644 portal-ui/build/static/js/3208.c0b88007.chunk.js create mode 100644 portal-ui/build/static/js/3208.c0b88007.chunk.js.map create mode 100644 portal-ui/build/static/js/321.2af53d6e.chunk.js create mode 100644 portal-ui/build/static/js/321.2af53d6e.chunk.js.map delete mode 100644 portal-ui/build/static/js/321.eedfb3a5.chunk.js delete mode 100644 portal-ui/build/static/js/321.eedfb3a5.chunk.js.map rename portal-ui/build/static/js/{3320.b01c2bc8.chunk.js => 3320.6e852bd3.chunk.js} (74%) create mode 100644 portal-ui/build/static/js/3320.6e852bd3.chunk.js.map delete mode 100644 portal-ui/build/static/js/3320.b01c2bc8.chunk.js.map delete mode 100644 portal-ui/build/static/js/3328.04821285.chunk.js delete mode 100644 portal-ui/build/static/js/3328.04821285.chunk.js.map create mode 100644 portal-ui/build/static/js/3328.c99fe6b3.chunk.js create mode 100644 portal-ui/build/static/js/3328.c99fe6b3.chunk.js.map create mode 100644 portal-ui/build/static/js/3461.f7b91f8d.chunk.js rename portal-ui/build/static/js/{2076.e7bf07b8.chunk.js.map => 3461.f7b91f8d.chunk.js.map} (61%) delete mode 100644 portal-ui/build/static/js/3518.0178dcf1.chunk.js delete mode 100644 portal-ui/build/static/js/3518.0178dcf1.chunk.js.map create mode 100644 portal-ui/build/static/js/3518.e1923a22.chunk.js create mode 100644 portal-ui/build/static/js/3518.e1923a22.chunk.js.map delete mode 100644 portal-ui/build/static/js/3543.24923c9d.chunk.js delete mode 100644 portal-ui/build/static/js/3543.24923c9d.chunk.js.map create mode 100644 portal-ui/build/static/js/3543.46c5055f.chunk.js create mode 100644 portal-ui/build/static/js/3543.46c5055f.chunk.js.map create mode 100644 portal-ui/build/static/js/3631.45996dad.chunk.js create mode 100644 portal-ui/build/static/js/3631.45996dad.chunk.js.map delete mode 100644 portal-ui/build/static/js/3631.a3bc3d9b.chunk.js delete mode 100644 portal-ui/build/static/js/3631.a3bc3d9b.chunk.js.map delete mode 100644 portal-ui/build/static/js/3772.8f7b248e.chunk.js delete mode 100644 portal-ui/build/static/js/3772.8f7b248e.chunk.js.map delete mode 100644 portal-ui/build/static/js/380.1b0b26c2.chunk.js delete mode 100644 portal-ui/build/static/js/380.1b0b26c2.chunk.js.map create mode 100644 portal-ui/build/static/js/380.cb95766e.chunk.js create mode 100644 portal-ui/build/static/js/380.cb95766e.chunk.js.map create mode 100644 portal-ui/build/static/js/3854.68ad3372.chunk.js create mode 100644 portal-ui/build/static/js/3854.68ad3372.chunk.js.map create mode 100644 portal-ui/build/static/js/3956.418abe3f.chunk.js rename portal-ui/build/static/js/{3956.74bfef51.chunk.js.map => 3956.418abe3f.chunk.js.map} (97%) delete mode 100644 portal-ui/build/static/js/3956.74bfef51.chunk.js delete mode 100644 portal-ui/build/static/js/402.3ec8985e.chunk.js delete mode 100644 portal-ui/build/static/js/402.3ec8985e.chunk.js.map create mode 100644 portal-ui/build/static/js/402.ab077b85.chunk.js create mode 100644 portal-ui/build/static/js/402.ab077b85.chunk.js.map create mode 100644 portal-ui/build/static/js/4061.776bbbf3.chunk.js create mode 100644 portal-ui/build/static/js/4061.776bbbf3.chunk.js.map delete mode 100644 portal-ui/build/static/js/4061.8bd849a7.chunk.js delete mode 100644 portal-ui/build/static/js/4061.8bd849a7.chunk.js.map create mode 100644 portal-ui/build/static/js/4133.37c68d0f.chunk.js create mode 100644 portal-ui/build/static/js/4133.37c68d0f.chunk.js.map delete mode 100644 portal-ui/build/static/js/4209.7c3855ef.chunk.js delete mode 100644 portal-ui/build/static/js/4209.7c3855ef.chunk.js.map create mode 100644 portal-ui/build/static/js/4209.875682c6.chunk.js create mode 100644 portal-ui/build/static/js/4209.875682c6.chunk.js.map create mode 100644 portal-ui/build/static/js/4219.c24a76ef.chunk.js create mode 100644 portal-ui/build/static/js/4219.c24a76ef.chunk.js.map delete mode 100644 portal-ui/build/static/js/426.0124a3b9.chunk.js create mode 100644 portal-ui/build/static/js/426.e738683c.chunk.js rename portal-ui/build/static/js/{426.0124a3b9.chunk.js.map => 426.e738683c.chunk.js.map} (51%) create mode 100644 portal-ui/build/static/js/4335.50f86695.chunk.js create mode 100644 portal-ui/build/static/js/4335.50f86695.chunk.js.map delete mode 100644 portal-ui/build/static/js/4335.71899795.chunk.js delete mode 100644 portal-ui/build/static/js/4335.71899795.chunk.js.map delete mode 100644 portal-ui/build/static/js/4394.2fa16d38.chunk.js delete mode 100644 portal-ui/build/static/js/4394.2fa16d38.chunk.js.map create mode 100644 portal-ui/build/static/js/4394.4efb3ddd.chunk.js create mode 100644 portal-ui/build/static/js/4394.4efb3ddd.chunk.js.map rename portal-ui/build/static/js/{4414.80189a53.chunk.js => 4414.453618d3.chunk.js} (83%) create mode 100644 portal-ui/build/static/js/4414.453618d3.chunk.js.map delete mode 100644 portal-ui/build/static/js/4414.80189a53.chunk.js.map create mode 100644 portal-ui/build/static/js/4455.b20c0c9c.chunk.js create mode 100644 portal-ui/build/static/js/4455.b20c0c9c.chunk.js.map create mode 100644 portal-ui/build/static/js/4509.0cb642e8.chunk.js create mode 100644 portal-ui/build/static/js/4509.0cb642e8.chunk.js.map create mode 100644 portal-ui/build/static/js/455.1720a69d.chunk.js create mode 100644 portal-ui/build/static/js/455.1720a69d.chunk.js.map delete mode 100644 portal-ui/build/static/js/455.855a38c2.chunk.js delete mode 100644 portal-ui/build/static/js/455.855a38c2.chunk.js.map create mode 100644 portal-ui/build/static/js/4619.c13fce95.chunk.js create mode 100644 portal-ui/build/static/js/4619.c13fce95.chunk.js.map delete mode 100644 portal-ui/build/static/js/4619.c6ef5989.chunk.js delete mode 100644 portal-ui/build/static/js/4619.c6ef5989.chunk.js.map delete mode 100644 portal-ui/build/static/js/4653.957113df.chunk.js delete mode 100644 portal-ui/build/static/js/4653.957113df.chunk.js.map create mode 100644 portal-ui/build/static/js/4653.a6dfdf0c.chunk.js create mode 100644 portal-ui/build/static/js/4653.a6dfdf0c.chunk.js.map delete mode 100644 portal-ui/build/static/js/471.3ac500ed.chunk.js delete mode 100644 portal-ui/build/static/js/471.3ac500ed.chunk.js.map create mode 100644 portal-ui/build/static/js/471.bc12301a.chunk.js create mode 100644 portal-ui/build/static/js/471.bc12301a.chunk.js.map create mode 100644 portal-ui/build/static/js/4781.785d14ba.chunk.js create mode 100644 portal-ui/build/static/js/4781.785d14ba.chunk.js.map delete mode 100644 portal-ui/build/static/js/4781.ca99434f.chunk.js delete mode 100644 portal-ui/build/static/js/4781.ca99434f.chunk.js.map delete mode 100644 portal-ui/build/static/js/4874.80bf31e6.chunk.js delete mode 100644 portal-ui/build/static/js/4874.80bf31e6.chunk.js.map create mode 100644 portal-ui/build/static/js/5026.0b30f6e2.chunk.js create mode 100644 portal-ui/build/static/js/5026.0b30f6e2.chunk.js.map create mode 100644 portal-ui/build/static/js/5085.49076139.chunk.js create mode 100644 portal-ui/build/static/js/5085.49076139.chunk.js.map create mode 100644 portal-ui/build/static/js/5088.4c9e1b8c.chunk.js create mode 100644 portal-ui/build/static/js/5088.4c9e1b8c.chunk.js.map delete mode 100644 portal-ui/build/static/js/5088.921b2534.chunk.js delete mode 100644 portal-ui/build/static/js/5088.921b2534.chunk.js.map delete mode 100644 portal-ui/build/static/js/51.76f011ea.chunk.js delete mode 100644 portal-ui/build/static/js/51.76f011ea.chunk.js.map create mode 100644 portal-ui/build/static/js/51.8e7e99eb.chunk.js create mode 100644 portal-ui/build/static/js/51.8e7e99eb.chunk.js.map delete mode 100644 portal-ui/build/static/js/5140.8f5521e6.chunk.js delete mode 100644 portal-ui/build/static/js/5140.8f5521e6.chunk.js.map create mode 100644 portal-ui/build/static/js/5140.e9043b63.chunk.js create mode 100644 portal-ui/build/static/js/5140.e9043b63.chunk.js.map delete mode 100644 portal-ui/build/static/js/5165.0fcf4d2d.chunk.js delete mode 100644 portal-ui/build/static/js/5165.0fcf4d2d.chunk.js.map create mode 100644 portal-ui/build/static/js/5289.2cf708de.chunk.js create mode 100644 portal-ui/build/static/js/5289.2cf708de.chunk.js.map delete mode 100644 portal-ui/build/static/js/5315.f76aa5f9.chunk.js.map delete mode 100644 portal-ui/build/static/js/5317.c7a235b3.chunk.js delete mode 100644 portal-ui/build/static/js/5317.c7a235b3.chunk.js.map create mode 100644 portal-ui/build/static/js/5586.a2da5401.chunk.js create mode 100644 portal-ui/build/static/js/5586.a2da5401.chunk.js.map delete mode 100644 portal-ui/build/static/js/5588.1a32c1c3.chunk.js delete mode 100644 portal-ui/build/static/js/5588.1a32c1c3.chunk.js.map create mode 100644 portal-ui/build/static/js/5588.3894176c.chunk.js create mode 100644 portal-ui/build/static/js/5588.3894176c.chunk.js.map delete mode 100644 portal-ui/build/static/js/5662.0998d919.chunk.js delete mode 100644 portal-ui/build/static/js/5662.0998d919.chunk.js.map delete mode 100644 portal-ui/build/static/js/6041.a11c2e9a.chunk.js delete mode 100644 portal-ui/build/static/js/6041.a11c2e9a.chunk.js.map delete mode 100644 portal-ui/build/static/js/6137.ac2c3fb7.chunk.js delete mode 100644 portal-ui/build/static/js/6137.ac2c3fb7.chunk.js.map create mode 100644 portal-ui/build/static/js/6137.c0b24aaa.chunk.js create mode 100644 portal-ui/build/static/js/6137.c0b24aaa.chunk.js.map delete mode 100644 portal-ui/build/static/js/6233.589f83fe.chunk.js delete mode 100644 portal-ui/build/static/js/6233.589f83fe.chunk.js.map create mode 100644 portal-ui/build/static/js/6233.f8460b26.chunk.js create mode 100644 portal-ui/build/static/js/6233.f8460b26.chunk.js.map create mode 100644 portal-ui/build/static/js/63.830fd6fc.chunk.js create mode 100644 portal-ui/build/static/js/63.830fd6fc.chunk.js.map delete mode 100644 portal-ui/build/static/js/6496.0cee9f03.chunk.js delete mode 100644 portal-ui/build/static/js/6496.0cee9f03.chunk.js.map create mode 100644 portal-ui/build/static/js/6683.0a047d81.chunk.js create mode 100644 portal-ui/build/static/js/6683.0a047d81.chunk.js.map delete mode 100644 portal-ui/build/static/js/6683.18e77b71.chunk.js delete mode 100644 portal-ui/build/static/js/6683.18e77b71.chunk.js.map delete mode 100644 portal-ui/build/static/js/6763.1da82d5c.chunk.js delete mode 100644 portal-ui/build/static/js/6763.1da82d5c.chunk.js.map create mode 100644 portal-ui/build/static/js/6763.e14ad9c3.chunk.js create mode 100644 portal-ui/build/static/js/6763.e14ad9c3.chunk.js.map delete mode 100644 portal-ui/build/static/js/6895.af17fed5.chunk.js delete mode 100644 portal-ui/build/static/js/6895.af17fed5.chunk.js.map create mode 100644 portal-ui/build/static/js/6895.c4b3ab71.chunk.js create mode 100644 portal-ui/build/static/js/6895.c4b3ab71.chunk.js.map create mode 100644 portal-ui/build/static/js/7002.c23dc7cf.chunk.js create mode 100644 portal-ui/build/static/js/7002.c23dc7cf.chunk.js.map delete mode 100644 portal-ui/build/static/js/701.06a6587d.chunk.js delete mode 100644 portal-ui/build/static/js/701.06a6587d.chunk.js.map create mode 100644 portal-ui/build/static/js/701.55960ffe.chunk.js create mode 100644 portal-ui/build/static/js/701.55960ffe.chunk.js.map create mode 100644 portal-ui/build/static/js/7021.ee631825.chunk.js create mode 100644 portal-ui/build/static/js/7021.ee631825.chunk.js.map create mode 100644 portal-ui/build/static/js/7045.7a56a854.chunk.js create mode 100644 portal-ui/build/static/js/7045.7a56a854.chunk.js.map delete mode 100644 portal-ui/build/static/js/7045.e30cf01e.chunk.js delete mode 100644 portal-ui/build/static/js/7045.e30cf01e.chunk.js.map delete mode 100644 portal-ui/build/static/js/711.121af87a.chunk.js create mode 100644 portal-ui/build/static/js/711.971db52a.chunk.js rename portal-ui/build/static/js/{711.121af87a.chunk.js.map => 711.971db52a.chunk.js.map} (97%) create mode 100644 portal-ui/build/static/js/7164.5542a849.chunk.js create mode 100644 portal-ui/build/static/js/7164.5542a849.chunk.js.map delete mode 100644 portal-ui/build/static/js/7164.e4aebe46.chunk.js delete mode 100644 portal-ui/build/static/js/7164.e4aebe46.chunk.js.map delete mode 100644 portal-ui/build/static/js/7315.f1bb4245.chunk.js delete mode 100644 portal-ui/build/static/js/7315.f1bb4245.chunk.js.map delete mode 100644 portal-ui/build/static/js/7331.106a6938.chunk.js delete mode 100644 portal-ui/build/static/js/7331.106a6938.chunk.js.map rename portal-ui/build/static/js/{7413.a6fe6f9f.chunk.js => 7413.76c38a02.chunk.js} (79%) create mode 100644 portal-ui/build/static/js/7413.76c38a02.chunk.js.map delete mode 100644 portal-ui/build/static/js/7413.a6fe6f9f.chunk.js.map delete mode 100644 portal-ui/build/static/js/7585.2a9cb3d4.chunk.js delete mode 100644 portal-ui/build/static/js/7585.2a9cb3d4.chunk.js.map create mode 100644 portal-ui/build/static/js/7585.a54f7c72.chunk.js create mode 100644 portal-ui/build/static/js/7585.a54f7c72.chunk.js.map delete mode 100644 portal-ui/build/static/js/7659.5504cc60.chunk.js delete mode 100644 portal-ui/build/static/js/7659.5504cc60.chunk.js.map create mode 100644 portal-ui/build/static/js/7659.e4cc39f9.chunk.js create mode 100644 portal-ui/build/static/js/7659.e4cc39f9.chunk.js.map delete mode 100644 portal-ui/build/static/js/770.c5b57a95.chunk.js delete mode 100644 portal-ui/build/static/js/770.c5b57a95.chunk.js.map create mode 100644 portal-ui/build/static/js/7798.21fc6f4a.chunk.js create mode 100644 portal-ui/build/static/js/7798.21fc6f4a.chunk.js.map delete mode 100644 portal-ui/build/static/js/7798.9bd6994f.chunk.js delete mode 100644 portal-ui/build/static/js/7798.9bd6994f.chunk.js.map create mode 100644 portal-ui/build/static/js/7821.a2c85c06.chunk.js create mode 100644 portal-ui/build/static/js/7821.a2c85c06.chunk.js.map delete mode 100644 portal-ui/build/static/js/7821.f798ffe1.chunk.js delete mode 100644 portal-ui/build/static/js/7821.f798ffe1.chunk.js.map create mode 100644 portal-ui/build/static/js/7923.552889f9.chunk.js create mode 100644 portal-ui/build/static/js/7923.552889f9.chunk.js.map delete mode 100644 portal-ui/build/static/js/7931.9fe0101a.chunk.js delete mode 100644 portal-ui/build/static/js/7931.9fe0101a.chunk.js.map delete mode 100644 portal-ui/build/static/js/8138.4c6a5b7f.chunk.js delete mode 100644 portal-ui/build/static/js/8138.4c6a5b7f.chunk.js.map create mode 100644 portal-ui/build/static/js/8138.5e1c08de.chunk.js create mode 100644 portal-ui/build/static/js/8138.5e1c08de.chunk.js.map delete mode 100644 portal-ui/build/static/js/8183.8c64a361.chunk.js delete mode 100644 portal-ui/build/static/js/8183.8c64a361.chunk.js.map delete mode 100644 portal-ui/build/static/js/8350.501e9b49.chunk.js delete mode 100644 portal-ui/build/static/js/8350.501e9b49.chunk.js.map create mode 100644 portal-ui/build/static/js/8350.feed1db5.chunk.js create mode 100644 portal-ui/build/static/js/8350.feed1db5.chunk.js.map delete mode 100644 portal-ui/build/static/js/8354.e837d480.chunk.js delete mode 100644 portal-ui/build/static/js/8354.e837d480.chunk.js.map create mode 100644 portal-ui/build/static/js/8391.4ea39138.chunk.js create mode 100644 portal-ui/build/static/js/8391.4ea39138.chunk.js.map delete mode 100644 portal-ui/build/static/js/8391.cf78366d.chunk.js delete mode 100644 portal-ui/build/static/js/8391.cf78366d.chunk.js.map create mode 100644 portal-ui/build/static/js/8396.49ac6668.chunk.js create mode 100644 portal-ui/build/static/js/8396.49ac6668.chunk.js.map create mode 100644 portal-ui/build/static/js/8455.802bf15b.chunk.js create mode 100644 portal-ui/build/static/js/8455.802bf15b.chunk.js.map delete mode 100644 portal-ui/build/static/js/8455.f9b61de1.chunk.js delete mode 100644 portal-ui/build/static/js/8455.f9b61de1.chunk.js.map delete mode 100644 portal-ui/build/static/js/8760.e06a6adc.chunk.js delete mode 100644 portal-ui/build/static/js/8760.e06a6adc.chunk.js.map create mode 100644 portal-ui/build/static/js/8771.475684ba.chunk.js create mode 100644 portal-ui/build/static/js/8771.475684ba.chunk.js.map delete mode 100644 portal-ui/build/static/js/8771.b2727bdd.chunk.js delete mode 100644 portal-ui/build/static/js/8771.b2727bdd.chunk.js.map delete mode 100644 portal-ui/build/static/js/8822.6030f20d.chunk.js delete mode 100644 portal-ui/build/static/js/8822.6030f20d.chunk.js.map create mode 100644 portal-ui/build/static/js/8833.5d3a1948.chunk.js create mode 100644 portal-ui/build/static/js/8833.5d3a1948.chunk.js.map delete mode 100644 portal-ui/build/static/js/8833.d4d792a2.chunk.js delete mode 100644 portal-ui/build/static/js/8833.d4d792a2.chunk.js.map create mode 100644 portal-ui/build/static/js/8896.984a3f17.chunk.js create mode 100644 portal-ui/build/static/js/8896.984a3f17.chunk.js.map delete mode 100644 portal-ui/build/static/js/8896.e9be20fb.chunk.js delete mode 100644 portal-ui/build/static/js/8896.e9be20fb.chunk.js.map delete mode 100644 portal-ui/build/static/js/8915.be25a5c1.chunk.js delete mode 100644 portal-ui/build/static/js/8915.be25a5c1.chunk.js.map delete mode 100644 portal-ui/build/static/js/8990.4fcc1b0f.chunk.js delete mode 100644 portal-ui/build/static/js/8990.4fcc1b0f.chunk.js.map create mode 100644 portal-ui/build/static/js/8990.57055bc2.chunk.js create mode 100644 portal-ui/build/static/js/8990.57055bc2.chunk.js.map delete mode 100644 portal-ui/build/static/js/9002.8057e34f.chunk.js delete mode 100644 portal-ui/build/static/js/9002.8057e34f.chunk.js.map create mode 100644 portal-ui/build/static/js/9076.4450f2f8.chunk.js rename portal-ui/build/static/js/{9076.bfebbb14.chunk.js.map => 9076.4450f2f8.chunk.js.map} (96%) delete mode 100644 portal-ui/build/static/js/9076.bfebbb14.chunk.js delete mode 100644 portal-ui/build/static/js/9088.2ed52eb5.chunk.js delete mode 100644 portal-ui/build/static/js/9088.2ed52eb5.chunk.js.map create mode 100644 portal-ui/build/static/js/9088.d0330189.chunk.js create mode 100644 portal-ui/build/static/js/9088.d0330189.chunk.js.map rename portal-ui/build/static/js/{9134.9336f36c.chunk.js => 9134.0538c268.chunk.js} (65%) create mode 100644 portal-ui/build/static/js/9134.0538c268.chunk.js.map delete mode 100644 portal-ui/build/static/js/9134.9336f36c.chunk.js.map delete mode 100644 portal-ui/build/static/js/9145.1af8c238.chunk.js delete mode 100644 portal-ui/build/static/js/9145.1af8c238.chunk.js.map create mode 100644 portal-ui/build/static/js/9145.363b2352.chunk.js create mode 100644 portal-ui/build/static/js/9145.363b2352.chunk.js.map create mode 100644 portal-ui/build/static/js/9251.fe6d731c.chunk.js create mode 100644 portal-ui/build/static/js/9251.fe6d731c.chunk.js.map create mode 100644 portal-ui/build/static/js/9299.2c28578b.chunk.js create mode 100644 portal-ui/build/static/js/9299.2c28578b.chunk.js.map delete mode 100644 portal-ui/build/static/js/9299.5442941e.chunk.js delete mode 100644 portal-ui/build/static/js/9299.5442941e.chunk.js.map delete mode 100644 portal-ui/build/static/js/9362.63d03757.chunk.js delete mode 100644 portal-ui/build/static/js/9362.63d03757.chunk.js.map delete mode 100644 portal-ui/build/static/js/9449.035d0f2d.chunk.js delete mode 100644 portal-ui/build/static/js/9449.035d0f2d.chunk.js.map create mode 100644 portal-ui/build/static/js/9449.281102d6.chunk.js create mode 100644 portal-ui/build/static/js/9449.281102d6.chunk.js.map create mode 100644 portal-ui/build/static/js/9467.50ab01b6.chunk.js create mode 100644 portal-ui/build/static/js/9467.50ab01b6.chunk.js.map delete mode 100644 portal-ui/build/static/js/9467.d4860f23.chunk.js delete mode 100644 portal-ui/build/static/js/9467.d4860f23.chunk.js.map delete mode 100644 portal-ui/build/static/js/9605.e2f1ac95.chunk.js delete mode 100644 portal-ui/build/static/js/9605.e2f1ac95.chunk.js.map create mode 100644 portal-ui/build/static/js/9605.fd87a53e.chunk.js create mode 100644 portal-ui/build/static/js/9605.fd87a53e.chunk.js.map delete mode 100644 portal-ui/build/static/js/9611.30185102.chunk.js delete mode 100644 portal-ui/build/static/js/9611.30185102.chunk.js.map create mode 100644 portal-ui/build/static/js/9611.c217768e.chunk.js create mode 100644 portal-ui/build/static/js/9611.c217768e.chunk.js.map delete mode 100644 portal-ui/build/static/js/9635.083b4e05.chunk.js delete mode 100644 portal-ui/build/static/js/9635.083b4e05.chunk.js.map create mode 100644 portal-ui/build/static/js/9785.7ccf0212.chunk.js create mode 100644 portal-ui/build/static/js/9785.7ccf0212.chunk.js.map create mode 100644 portal-ui/build/static/js/9968.676114b2.chunk.js create mode 100644 portal-ui/build/static/js/9968.676114b2.chunk.js.map delete mode 100644 portal-ui/build/static/js/9968.f0284b3d.chunk.js delete mode 100644 portal-ui/build/static/js/9968.f0284b3d.chunk.js.map delete mode 100644 portal-ui/build/static/js/main.5a7c25ee.js delete mode 100644 portal-ui/build/static/js/main.5a7c25ee.js.map create mode 100644 portal-ui/build/static/js/main.cafe85a6.js rename portal-ui/build/static/js/{main.5a7c25ee.js.LICENSE.txt => main.cafe85a6.js.LICENSE.txt} (100%) create mode 100644 portal-ui/build/static/js/main.cafe85a6.js.map diff --git a/k8s/operator-console/base/console-deployment.yaml b/k8s/operator-console/base/console-deployment.yaml index 8ff6b6746..227f14269 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.9' + image: 'minio/console:v0.15.10' 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 503ab5d6b..b94cf7473 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.9' + image: 'minio/console:v0.15.10' imagePullPolicy: "IfNotPresent" env: - name: CONSOLE_MINIO_SERVER diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json index 847bac8cc..a4662257c 100644 --- a/portal-ui/build/asset-manifest.json +++ b/portal-ui/build/asset-manifest.json @@ -1,122 +1,121 @@ { "files": { "main.css": "./static/css/main.90d417ae.css", - "main.js": "./static/js/main.5a7c25ee.js", + "main.js": "./static/js/main.cafe85a6.js", "static/js/2483.511e6a32.chunk.js": "./static/js/2483.511e6a32.chunk.js", "static/js/6914.e9919921.chunk.js": "./static/js/6914.e9919921.chunk.js", - "static/js/4209.7c3855ef.chunk.js": "./static/js/4209.7c3855ef.chunk.js", - "static/js/1829.202650e3.chunk.js": "./static/js/1829.202650e3.chunk.js", - "static/js/6041.a11c2e9a.chunk.js": "./static/js/6041.a11c2e9a.chunk.js", - "static/js/5088.921b2534.chunk.js": "./static/js/5088.921b2534.chunk.js", - "static/js/5140.8f5521e6.chunk.js": "./static/js/5140.8f5521e6.chunk.js", - "static/js/1434.2cbee404.chunk.js": "./static/js/1434.2cbee404.chunk.js", - "static/js/3176.640e537b.chunk.js": "./static/js/3176.640e537b.chunk.js", - "static/js/6137.ac2c3fb7.chunk.js": "./static/js/6137.ac2c3fb7.chunk.js", - "static/js/7045.e30cf01e.chunk.js": "./static/js/7045.e30cf01e.chunk.js", - "static/js/9635.083b4e05.chunk.js": "./static/js/9635.083b4e05.chunk.js", - "static/js/2338.8b9b592f.chunk.js": "./static/js/2338.8b9b592f.chunk.js", - "static/js/4335.71899795.chunk.js": "./static/js/4335.71899795.chunk.js", - "static/js/321.eedfb3a5.chunk.js": "./static/js/321.eedfb3a5.chunk.js", - "static/js/6763.1da82d5c.chunk.js": "./static/js/6763.1da82d5c.chunk.js", - "static/js/3543.24923c9d.chunk.js": "./static/js/3543.24923c9d.chunk.js", - "static/js/4061.8bd849a7.chunk.js": "./static/js/4061.8bd849a7.chunk.js", - "static/js/2249.39222819.chunk.js": "./static/js/2249.39222819.chunk.js", - "static/js/9611.30185102.chunk.js": "./static/js/9611.30185102.chunk.js", + "static/js/4209.875682c6.chunk.js": "./static/js/4209.875682c6.chunk.js", + "static/js/1829.2cab6045.chunk.js": "./static/js/1829.2cab6045.chunk.js", + "static/js/4455.b20c0c9c.chunk.js": "./static/js/4455.b20c0c9c.chunk.js", + "static/js/5088.4c9e1b8c.chunk.js": "./static/js/5088.4c9e1b8c.chunk.js", + "static/js/5140.e9043b63.chunk.js": "./static/js/5140.e9043b63.chunk.js", + "static/js/1434.8703ced0.chunk.js": "./static/js/1434.8703ced0.chunk.js", + "static/js/3176.43953acc.chunk.js": "./static/js/3176.43953acc.chunk.js", + "static/js/6137.c0b24aaa.chunk.js": "./static/js/6137.c0b24aaa.chunk.js", + "static/js/7045.7a56a854.chunk.js": "./static/js/7045.7a56a854.chunk.js", + "static/js/9251.fe6d731c.chunk.js": "./static/js/9251.fe6d731c.chunk.js", + "static/js/2338.2294f835.chunk.js": "./static/js/2338.2294f835.chunk.js", + "static/js/4335.50f86695.chunk.js": "./static/js/4335.50f86695.chunk.js", + "static/js/321.2af53d6e.chunk.js": "./static/js/321.2af53d6e.chunk.js", + "static/js/6763.e14ad9c3.chunk.js": "./static/js/6763.e14ad9c3.chunk.js", + "static/js/3543.46c5055f.chunk.js": "./static/js/3543.46c5055f.chunk.js", + "static/js/4061.776bbbf3.chunk.js": "./static/js/4061.776bbbf3.chunk.js", + "static/js/2249.922e46ea.chunk.js": "./static/js/2249.922e46ea.chunk.js", + "static/js/9611.c217768e.chunk.js": "./static/js/9611.c217768e.chunk.js", "static/js/2637.79b0ea29.chunk.js": "./static/js/2637.79b0ea29.chunk.js", "static/css/380.f0806840.chunk.css": "./static/css/380.f0806840.chunk.css", - "static/js/380.1b0b26c2.chunk.js": "./static/js/380.1b0b26c2.chunk.js", + "static/js/380.cb95766e.chunk.js": "./static/js/380.cb95766e.chunk.js", "static/js/5926.c044ad6b.chunk.js": "./static/js/5926.c044ad6b.chunk.js", - "static/js/701.06a6587d.chunk.js": "./static/js/701.06a6587d.chunk.js", - "static/js/7821.f798ffe1.chunk.js": "./static/js/7821.f798ffe1.chunk.js", - "static/js/2625.eff40583.chunk.js": "./static/js/2625.eff40583.chunk.js", + "static/js/701.55960ffe.chunk.js": "./static/js/701.55960ffe.chunk.js", + "static/js/7821.a2c85c06.chunk.js": "./static/js/7821.a2c85c06.chunk.js", + "static/js/2625.6d6e6809.chunk.js": "./static/js/2625.6d6e6809.chunk.js", "static/css/9033.f0806840.chunk.css": "./static/css/9033.f0806840.chunk.css", "static/js/9033.d40f5fa2.chunk.js": "./static/js/9033.d40f5fa2.chunk.js", "static/css/9299.f0806840.chunk.css": "./static/css/9299.f0806840.chunk.css", - "static/js/9299.5442941e.chunk.js": "./static/js/9299.5442941e.chunk.js", - "static/js/191.92f7d06b.chunk.js": "./static/js/191.92f7d06b.chunk.js", - "static/js/7585.2a9cb3d4.chunk.js": "./static/js/7585.2a9cb3d4.chunk.js", - "static/js/1836.761ade1e.chunk.js": "./static/js/1836.761ade1e.chunk.js", - "static/js/4653.957113df.chunk.js": "./static/js/4653.957113df.chunk.js", - "static/js/255.7603092b.chunk.js": "./static/js/255.7603092b.chunk.js", - "static/js/4394.2fa16d38.chunk.js": "./static/js/4394.2fa16d38.chunk.js", - "static/js/4781.ca99434f.chunk.js": "./static/js/4781.ca99434f.chunk.js", + "static/js/9299.2c28578b.chunk.js": "./static/js/9299.2c28578b.chunk.js", + "static/js/2555.1aef7cca.chunk.js": "./static/js/2555.1aef7cca.chunk.js", + "static/js/7585.a54f7c72.chunk.js": "./static/js/7585.a54f7c72.chunk.js", + "static/js/1836.083f36ae.chunk.js": "./static/js/1836.083f36ae.chunk.js", + "static/js/4653.a6dfdf0c.chunk.js": "./static/js/4653.a6dfdf0c.chunk.js", + "static/js/4219.c24a76ef.chunk.js": "./static/js/4219.c24a76ef.chunk.js", + "static/js/3208.c0b88007.chunk.js": "./static/js/3208.c0b88007.chunk.js", + "static/js/4394.4efb3ddd.chunk.js": "./static/js/4394.4efb3ddd.chunk.js", + "static/js/4781.785d14ba.chunk.js": "./static/js/4781.785d14ba.chunk.js", "static/js/9478.c2c2c220.chunk.js": "./static/js/9478.c2c2c220.chunk.js", - "static/js/7164.e4aebe46.chunk.js": "./static/js/7164.e4aebe46.chunk.js", - "static/js/4414.80189a53.chunk.js": "./static/js/4414.80189a53.chunk.js", - "static/js/7798.9bd6994f.chunk.js": "./static/js/7798.9bd6994f.chunk.js", - "static/js/8833.d4d792a2.chunk.js": "./static/js/8833.d4d792a2.chunk.js", - "static/js/471.3ac500ed.chunk.js": "./static/js/471.3ac500ed.chunk.js", + "static/js/7164.5542a849.chunk.js": "./static/js/7164.5542a849.chunk.js", + "static/js/4414.453618d3.chunk.js": "./static/js/4414.453618d3.chunk.js", + "static/js/7798.21fc6f4a.chunk.js": "./static/js/7798.21fc6f4a.chunk.js", + "static/js/8833.5d3a1948.chunk.js": "./static/js/8833.5d3a1948.chunk.js", + "static/js/471.bc12301a.chunk.js": "./static/js/471.bc12301a.chunk.js", "static/js/483.3fa229ad.chunk.js": "./static/js/483.3fa229ad.chunk.js", - "static/js/9467.d4860f23.chunk.js": "./static/js/9467.d4860f23.chunk.js", - "static/js/6895.af17fed5.chunk.js": "./static/js/6895.af17fed5.chunk.js", - "static/js/6233.589f83fe.chunk.js": "./static/js/6233.589f83fe.chunk.js", - "static/js/5588.1a32c1c3.chunk.js": "./static/js/5588.1a32c1c3.chunk.js", - "static/js/4874.80bf31e6.chunk.js": "./static/js/4874.80bf31e6.chunk.js", + "static/js/9467.50ab01b6.chunk.js": "./static/js/9467.50ab01b6.chunk.js", + "static/js/6895.c4b3ab71.chunk.js": "./static/js/6895.c4b3ab71.chunk.js", + "static/js/6233.f8460b26.chunk.js": "./static/js/6233.f8460b26.chunk.js", + "static/js/5588.3894176c.chunk.js": "./static/js/5588.3894176c.chunk.js", + "static/js/4133.37c68d0f.chunk.js": "./static/js/4133.37c68d0f.chunk.js", "static/css/1955.f0806840.chunk.css": "./static/css/1955.f0806840.chunk.css", - "static/js/1955.95db0000.chunk.js": "./static/js/1955.95db0000.chunk.js", + "static/js/1955.27cc0d9b.chunk.js": "./static/js/1955.27cc0d9b.chunk.js", "static/js/2653.d0c6bbf1.chunk.js": "./static/js/2653.d0c6bbf1.chunk.js", - "static/js/3956.74bfef51.chunk.js": "./static/js/3956.74bfef51.chunk.js", + "static/js/3956.418abe3f.chunk.js": "./static/js/3956.418abe3f.chunk.js", "static/js/7015.bf4c7dc4.chunk.js": "./static/js/7015.bf4c7dc4.chunk.js", "static/js/7524.c226828c.chunk.js": "./static/js/7524.c226828c.chunk.js", - "static/js/8771.b2727bdd.chunk.js": "./static/js/8771.b2727bdd.chunk.js", - "static/js/9076.bfebbb14.chunk.js": "./static/js/9076.bfebbb14.chunk.js", + "static/js/8771.475684ba.chunk.js": "./static/js/8771.475684ba.chunk.js", + "static/js/9076.4450f2f8.chunk.js": "./static/js/9076.4450f2f8.chunk.js", "static/js/9221.505f4336.chunk.js": "./static/js/9221.505f4336.chunk.js", - "static/js/8896.e9be20fb.chunk.js": "./static/js/8896.e9be20fb.chunk.js", - "static/js/7413.a6fe6f9f.chunk.js": "./static/js/7413.a6fe6f9f.chunk.js", - "static/js/9134.9336f36c.chunk.js": "./static/js/9134.9336f36c.chunk.js", + "static/js/8896.984a3f17.chunk.js": "./static/js/8896.984a3f17.chunk.js", + "static/js/7413.76c38a02.chunk.js": "./static/js/7413.76c38a02.chunk.js", + "static/js/9134.0538c268.chunk.js": "./static/js/9134.0538c268.chunk.js", "static/css/8138.f0806840.chunk.css": "./static/css/8138.f0806840.chunk.css", - "static/js/8138.4c6a5b7f.chunk.js": "./static/js/8138.4c6a5b7f.chunk.js", - "static/js/8183.8c64a361.chunk.js": "./static/js/8183.8c64a361.chunk.js", - "static/js/9145.1af8c238.chunk.js": "./static/js/9145.1af8c238.chunk.js", - "static/js/8822.6030f20d.chunk.js": "./static/js/8822.6030f20d.chunk.js", - "static/js/7331.106a6938.chunk.js": "./static/js/7331.106a6938.chunk.js", - "static/js/9605.e2f1ac95.chunk.js": "./static/js/9605.e2f1ac95.chunk.js", - "static/js/426.0124a3b9.chunk.js": "./static/js/426.0124a3b9.chunk.js", - "static/js/2878.174d0b14.chunk.js": "./static/js/2878.174d0b14.chunk.js", + "static/js/8138.5e1c08de.chunk.js": "./static/js/8138.5e1c08de.chunk.js", + "static/js/2794.ee6b7b2c.chunk.js": "./static/js/2794.ee6b7b2c.chunk.js", + "static/js/9145.363b2352.chunk.js": "./static/js/9145.363b2352.chunk.js", + "static/js/1379.8207ed7c.chunk.js": "./static/js/1379.8207ed7c.chunk.js", + "static/js/1501.b5696037.chunk.js": "./static/js/1501.b5696037.chunk.js", + "static/js/9605.fd87a53e.chunk.js": "./static/js/9605.fd87a53e.chunk.js", + "static/js/426.e738683c.chunk.js": "./static/js/426.e738683c.chunk.js", + "static/js/2878.fca6e2cf.chunk.js": "./static/js/2878.fca6e2cf.chunk.js", "static/js/8495.bdd215dc.chunk.js": "./static/js/8495.bdd215dc.chunk.js", "static/js/4934.4a573b0b.chunk.js": "./static/js/4934.4a573b0b.chunk.js", - "static/js/3518.0178dcf1.chunk.js": "./static/js/3518.0178dcf1.chunk.js", - "static/js/2684.3e7eb9b1.chunk.js": "./static/js/2684.3e7eb9b1.chunk.js", - "static/js/6683.18e77b71.chunk.js": "./static/js/6683.18e77b71.chunk.js", - "static/js/8350.501e9b49.chunk.js": "./static/js/8350.501e9b49.chunk.js", - "static/js/2676.47150957.chunk.js": "./static/js/2676.47150957.chunk.js", - "static/js/9449.035d0f2d.chunk.js": "./static/js/9449.035d0f2d.chunk.js", - "static/js/7659.5504cc60.chunk.js": "./static/js/7659.5504cc60.chunk.js", - "static/js/9968.f0284b3d.chunk.js": "./static/js/9968.f0284b3d.chunk.js", - "static/js/2180.f0842e9e.chunk.js": "./static/js/2180.f0842e9e.chunk.js", + "static/js/3518.e1923a22.chunk.js": "./static/js/3518.e1923a22.chunk.js", + "static/js/7021.ee631825.chunk.js": "./static/js/7021.ee631825.chunk.js", + "static/js/2684.013ba254.chunk.js": "./static/js/2684.013ba254.chunk.js", + "static/js/6683.0a047d81.chunk.js": "./static/js/6683.0a047d81.chunk.js", + "static/js/8350.feed1db5.chunk.js": "./static/js/8350.feed1db5.chunk.js", + "static/js/2676.bd3d9df3.chunk.js": "./static/js/2676.bd3d9df3.chunk.js", + "static/js/9449.281102d6.chunk.js": "./static/js/9449.281102d6.chunk.js", + "static/js/7659.e4cc39f9.chunk.js": "./static/js/7659.e4cc39f9.chunk.js", + "static/js/9968.676114b2.chunk.js": "./static/js/9968.676114b2.chunk.js", + "static/js/2180.c83301fc.chunk.js": "./static/js/2180.c83301fc.chunk.js", "static/js/8253.964026c0.chunk.js": "./static/js/8253.964026c0.chunk.js", - "static/js/3328.04821285.chunk.js": "./static/js/3328.04821285.chunk.js", - "static/js/1440.146b37eb.chunk.js": "./static/js/1440.146b37eb.chunk.js", - "static/js/9002.8057e34f.chunk.js": "./static/js/9002.8057e34f.chunk.js", - "static/js/51.76f011ea.chunk.js": "./static/js/51.76f011ea.chunk.js", - "static/js/711.121af87a.chunk.js": "./static/js/711.121af87a.chunk.js", + "static/js/3328.c99fe6b3.chunk.js": "./static/js/3328.c99fe6b3.chunk.js", + "static/js/1440.74dce637.chunk.js": "./static/js/1440.74dce637.chunk.js", + "static/js/2512.b0d0c6a4.chunk.js": "./static/js/2512.b0d0c6a4.chunk.js", + "static/js/51.8e7e99eb.chunk.js": "./static/js/51.8e7e99eb.chunk.js", + "static/js/711.971db52a.chunk.js": "./static/js/711.971db52a.chunk.js", "static/js/6901.5bbc1914.chunk.js": "./static/js/6901.5bbc1914.chunk.js", "static/js/3678.568378f8.chunk.js": "./static/js/3678.568378f8.chunk.js", "static/css/3320.f0806840.chunk.css": "./static/css/3320.f0806840.chunk.css", - "static/js/3320.b01c2bc8.chunk.js": "./static/js/3320.b01c2bc8.chunk.js", - "static/js/312.256db0f7.chunk.js": "./static/js/312.256db0f7.chunk.js", - "static/js/2112.6991f0b0.chunk.js": "./static/js/2112.6991f0b0.chunk.js", - "static/js/4619.c6ef5989.chunk.js": "./static/js/4619.c6ef5989.chunk.js", - "static/js/8990.4fcc1b0f.chunk.js": "./static/js/8990.4fcc1b0f.chunk.js", - "static/js/8455.f9b61de1.chunk.js": "./static/js/8455.f9b61de1.chunk.js", + "static/js/3320.6e852bd3.chunk.js": "./static/js/3320.6e852bd3.chunk.js", + "static/js/312.f6f66e6c.chunk.js": "./static/js/312.f6f66e6c.chunk.js", + "static/js/2112.4cc30535.chunk.js": "./static/js/2112.4cc30535.chunk.js", + "static/js/4619.c13fce95.chunk.js": "./static/js/4619.c13fce95.chunk.js", + "static/js/8990.57055bc2.chunk.js": "./static/js/8990.57055bc2.chunk.js", + "static/js/8455.802bf15b.chunk.js": "./static/js/8455.802bf15b.chunk.js", "static/css/3631.f0806840.chunk.css": "./static/css/3631.f0806840.chunk.css", - "static/js/3631.a3bc3d9b.chunk.js": "./static/js/3631.a3bc3d9b.chunk.js", - "static/js/1604.c6070715.chunk.js": "./static/js/1604.c6070715.chunk.js", - "static/js/8391.cf78366d.chunk.js": "./static/js/8391.cf78366d.chunk.js", - "static/js/402.3ec8985e.chunk.js": "./static/js/402.3ec8985e.chunk.js", - "static/js/1705.b90dd0eb.chunk.js": "./static/js/1705.b90dd0eb.chunk.js", - "static/js/1581.3e4f9436.chunk.js": "./static/js/1581.3e4f9436.chunk.js", - "static/js/455.855a38c2.chunk.js": "./static/js/455.855a38c2.chunk.js", - "static/js/2661.ed2f4fc2.chunk.js": "./static/js/2661.ed2f4fc2.chunk.js", + "static/js/3631.45996dad.chunk.js": "./static/js/3631.45996dad.chunk.js", + "static/js/1604.a9d0b62b.chunk.js": "./static/js/1604.a9d0b62b.chunk.js", + "static/js/8391.4ea39138.chunk.js": "./static/js/8391.4ea39138.chunk.js", + "static/js/402.ab077b85.chunk.js": "./static/js/402.ab077b85.chunk.js", + "static/js/1705.7586dfce.chunk.js": "./static/js/1705.7586dfce.chunk.js", + "static/js/1581.e753ce61.chunk.js": "./static/js/1581.e753ce61.chunk.js", + "static/js/455.1720a69d.chunk.js": "./static/js/455.1720a69d.chunk.js", + "static/js/2661.bb4d5ff4.chunk.js": "./static/js/2661.bb4d5ff4.chunk.js", "static/js/889.73054a10.chunk.js": "./static/js/889.73054a10.chunk.js", - "static/js/9088.2ed52eb5.chunk.js": "./static/js/9088.2ed52eb5.chunk.js", + "static/js/9088.d0330189.chunk.js": "./static/js/9088.d0330189.chunk.js", "static/js/247.64d57eaf.chunk.js": "./static/js/247.64d57eaf.chunk.js", - "static/js/2763.02f8a4d8.chunk.js": "./static/js/2763.02f8a4d8.chunk.js", - "static/js/3772.8f7b248e.chunk.js": "./static/js/3772.8f7b248e.chunk.js", + "static/js/2763.58b7220d.chunk.js": "./static/js/2763.58b7220d.chunk.js", "static/js/5171.2cf876b1.chunk.js": "./static/js/5171.2cf876b1.chunk.js", - "static/js/2442.c325186c.chunk.js": "./static/js/2442.c325186c.chunk.js", - "static/js/1520.5385d6f6.chunk.js": "./static/js/1520.5385d6f6.chunk.js", - "static/js/2426.bc0cfae1.chunk.js": "./static/js/2426.bc0cfae1.chunk.js", + "static/js/2426.172b5361.chunk.js": "./static/js/2426.172b5361.chunk.js", "static/js/5561.c5000912.chunk.js": "./static/js/5561.c5000912.chunk.js", "static/js/5609.0399a94c.chunk.js": "./static/js/5609.0399a94c.chunk.js", "static/js/3801.a06455a2.chunk.js": "./static/js/3801.a06455a2.chunk.js", @@ -124,150 +123,145 @@ "static/js/6431.5f2e5e6e.chunk.js": "./static/js/6431.5f2e5e6e.chunk.js", "static/js/7757.3650a6cc.chunk.js": "./static/js/7757.3650a6cc.chunk.js", "static/js/6523.f3c7724a.chunk.js": "./static/js/6523.f3c7724a.chunk.js", - "static/js/8760.e06a6adc.chunk.js": "./static/js/8760.e06a6adc.chunk.js", - "static/js/5315.f76aa5f9.chunk.js": "./static/js/5315.f76aa5f9.chunk.js", + "static/js/2011.53c6f61f.chunk.js": "./static/js/2011.53c6f61f.chunk.js", "static/js/8810.b52e1e05.chunk.js": "./static/js/8810.b52e1e05.chunk.js", "static/js/8152.83273cfb.chunk.js": "./static/js/8152.83273cfb.chunk.js", - "static/js/8354.e837d480.chunk.js": "./static/js/8354.e837d480.chunk.js", "static/js/9437.1a158c7b.chunk.js": "./static/js/9437.1a158c7b.chunk.js", "static/js/6172.098bf62e.chunk.js": "./static/js/6172.098bf62e.chunk.js", "static/js/3909.cdbddaab.chunk.js": "./static/js/3909.cdbddaab.chunk.js", - "static/js/7315.f1bb4245.chunk.js": "./static/js/7315.f1bb4245.chunk.js", - "static/js/5317.c7a235b3.chunk.js": "./static/js/5317.c7a235b3.chunk.js", - "static/js/2723.c7e2034f.chunk.js": "./static/js/2723.c7e2034f.chunk.js", - "static/js/2076.e7bf07b8.chunk.js": "./static/js/2076.e7bf07b8.chunk.js", - "static/js/1326.19aa2326.chunk.js": "./static/js/1326.19aa2326.chunk.js", + "static/js/4509.0cb642e8.chunk.js": "./static/js/4509.0cb642e8.chunk.js", + "static/js/8396.49ac6668.chunk.js": "./static/js/8396.49ac6668.chunk.js", + "static/js/5085.49076139.chunk.js": "./static/js/5085.49076139.chunk.js", + "static/js/3854.68ad3372.chunk.js": "./static/js/3854.68ad3372.chunk.js", + "static/js/7002.c23dc7cf.chunk.js": "./static/js/7002.c23dc7cf.chunk.js", + "static/js/3461.f7b91f8d.chunk.js": "./static/js/3461.f7b91f8d.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/7923.552889f9.chunk.js": "./static/js/7923.552889f9.chunk.js", + "static/js/5586.a2da5401.chunk.js": "./static/js/5586.a2da5401.chunk.js", + "static/js/1788.280ca1f4.chunk.js": "./static/js/1788.280ca1f4.chunk.js", + "static/js/9785.7ccf0212.chunk.js": "./static/js/9785.7ccf0212.chunk.js", "static/js/8735.52726eac.chunk.js": "./static/js/8735.52726eac.chunk.js", - "static/js/8915.be25a5c1.chunk.js": "./static/js/8915.be25a5c1.chunk.js", - "static/js/3096.63d4ac67.chunk.js": "./static/js/3096.63d4ac67.chunk.js", + "static/js/63.830fd6fc.chunk.js": "./static/js/63.830fd6fc.chunk.js", "static/js/2983.26ce456f.chunk.js": "./static/js/2983.26ce456f.chunk.js", - "static/js/770.c5b57a95.chunk.js": "./static/js/770.c5b57a95.chunk.js", - "static/js/5662.0998d919.chunk.js": "./static/js/5662.0998d919.chunk.js", - "static/js/5165.0fcf4d2d.chunk.js": "./static/js/5165.0fcf4d2d.chunk.js", - "static/js/6496.0cee9f03.chunk.js": "./static/js/6496.0cee9f03.chunk.js", - "static/js/1687.72fad20d.chunk.js": "./static/js/1687.72fad20d.chunk.js", + "static/js/5289.2cf708de.chunk.js": "./static/js/5289.2cf708de.chunk.js", + "static/js/5026.0b30f6e2.chunk.js": "./static/js/5026.0b30f6e2.chunk.js", "index.html": "./index.html", "main.90d417ae.css.map": "./static/css/main.90d417ae.css.map", - "main.5a7c25ee.js.map": "./static/js/main.5a7c25ee.js.map", + "main.cafe85a6.js.map": "./static/js/main.cafe85a6.js.map", "2483.511e6a32.chunk.js.map": "./static/js/2483.511e6a32.chunk.js.map", "6914.e9919921.chunk.js.map": "./static/js/6914.e9919921.chunk.js.map", - "4209.7c3855ef.chunk.js.map": "./static/js/4209.7c3855ef.chunk.js.map", - "1829.202650e3.chunk.js.map": "./static/js/1829.202650e3.chunk.js.map", - "6041.a11c2e9a.chunk.js.map": "./static/js/6041.a11c2e9a.chunk.js.map", - "5088.921b2534.chunk.js.map": "./static/js/5088.921b2534.chunk.js.map", - "5140.8f5521e6.chunk.js.map": "./static/js/5140.8f5521e6.chunk.js.map", - "1434.2cbee404.chunk.js.map": "./static/js/1434.2cbee404.chunk.js.map", - "3176.640e537b.chunk.js.map": "./static/js/3176.640e537b.chunk.js.map", - "6137.ac2c3fb7.chunk.js.map": "./static/js/6137.ac2c3fb7.chunk.js.map", - "7045.e30cf01e.chunk.js.map": "./static/js/7045.e30cf01e.chunk.js.map", - "9635.083b4e05.chunk.js.map": "./static/js/9635.083b4e05.chunk.js.map", - "2338.8b9b592f.chunk.js.map": "./static/js/2338.8b9b592f.chunk.js.map", - "4335.71899795.chunk.js.map": "./static/js/4335.71899795.chunk.js.map", - "321.eedfb3a5.chunk.js.map": "./static/js/321.eedfb3a5.chunk.js.map", - "6763.1da82d5c.chunk.js.map": "./static/js/6763.1da82d5c.chunk.js.map", - "3543.24923c9d.chunk.js.map": "./static/js/3543.24923c9d.chunk.js.map", - "4061.8bd849a7.chunk.js.map": "./static/js/4061.8bd849a7.chunk.js.map", - "2249.39222819.chunk.js.map": "./static/js/2249.39222819.chunk.js.map", - "9611.30185102.chunk.js.map": "./static/js/9611.30185102.chunk.js.map", + "4209.875682c6.chunk.js.map": "./static/js/4209.875682c6.chunk.js.map", + "1829.2cab6045.chunk.js.map": "./static/js/1829.2cab6045.chunk.js.map", + "4455.b20c0c9c.chunk.js.map": "./static/js/4455.b20c0c9c.chunk.js.map", + "5088.4c9e1b8c.chunk.js.map": "./static/js/5088.4c9e1b8c.chunk.js.map", + "5140.e9043b63.chunk.js.map": "./static/js/5140.e9043b63.chunk.js.map", + "1434.8703ced0.chunk.js.map": "./static/js/1434.8703ced0.chunk.js.map", + "3176.43953acc.chunk.js.map": "./static/js/3176.43953acc.chunk.js.map", + "6137.c0b24aaa.chunk.js.map": "./static/js/6137.c0b24aaa.chunk.js.map", + "7045.7a56a854.chunk.js.map": "./static/js/7045.7a56a854.chunk.js.map", + "9251.fe6d731c.chunk.js.map": "./static/js/9251.fe6d731c.chunk.js.map", + "2338.2294f835.chunk.js.map": "./static/js/2338.2294f835.chunk.js.map", + "4335.50f86695.chunk.js.map": "./static/js/4335.50f86695.chunk.js.map", + "321.2af53d6e.chunk.js.map": "./static/js/321.2af53d6e.chunk.js.map", + "6763.e14ad9c3.chunk.js.map": "./static/js/6763.e14ad9c3.chunk.js.map", + "3543.46c5055f.chunk.js.map": "./static/js/3543.46c5055f.chunk.js.map", + "4061.776bbbf3.chunk.js.map": "./static/js/4061.776bbbf3.chunk.js.map", + "2249.922e46ea.chunk.js.map": "./static/js/2249.922e46ea.chunk.js.map", + "9611.c217768e.chunk.js.map": "./static/js/9611.c217768e.chunk.js.map", "2637.79b0ea29.chunk.js.map": "./static/js/2637.79b0ea29.chunk.js.map", "380.f0806840.chunk.css.map": "./static/css/380.f0806840.chunk.css.map", - "380.1b0b26c2.chunk.js.map": "./static/js/380.1b0b26c2.chunk.js.map", + "380.cb95766e.chunk.js.map": "./static/js/380.cb95766e.chunk.js.map", "5926.c044ad6b.chunk.js.map": "./static/js/5926.c044ad6b.chunk.js.map", - "701.06a6587d.chunk.js.map": "./static/js/701.06a6587d.chunk.js.map", - "7821.f798ffe1.chunk.js.map": "./static/js/7821.f798ffe1.chunk.js.map", - "2625.eff40583.chunk.js.map": "./static/js/2625.eff40583.chunk.js.map", + "701.55960ffe.chunk.js.map": "./static/js/701.55960ffe.chunk.js.map", + "7821.a2c85c06.chunk.js.map": "./static/js/7821.a2c85c06.chunk.js.map", + "2625.6d6e6809.chunk.js.map": "./static/js/2625.6d6e6809.chunk.js.map", "9033.f0806840.chunk.css.map": "./static/css/9033.f0806840.chunk.css.map", "9033.d40f5fa2.chunk.js.map": "./static/js/9033.d40f5fa2.chunk.js.map", "9299.f0806840.chunk.css.map": "./static/css/9299.f0806840.chunk.css.map", - "9299.5442941e.chunk.js.map": "./static/js/9299.5442941e.chunk.js.map", - "191.92f7d06b.chunk.js.map": "./static/js/191.92f7d06b.chunk.js.map", - "7585.2a9cb3d4.chunk.js.map": "./static/js/7585.2a9cb3d4.chunk.js.map", - "1836.761ade1e.chunk.js.map": "./static/js/1836.761ade1e.chunk.js.map", - "4653.957113df.chunk.js.map": "./static/js/4653.957113df.chunk.js.map", - "255.7603092b.chunk.js.map": "./static/js/255.7603092b.chunk.js.map", - "4394.2fa16d38.chunk.js.map": "./static/js/4394.2fa16d38.chunk.js.map", - "4781.ca99434f.chunk.js.map": "./static/js/4781.ca99434f.chunk.js.map", + "9299.2c28578b.chunk.js.map": "./static/js/9299.2c28578b.chunk.js.map", + "2555.1aef7cca.chunk.js.map": "./static/js/2555.1aef7cca.chunk.js.map", + "7585.a54f7c72.chunk.js.map": "./static/js/7585.a54f7c72.chunk.js.map", + "1836.083f36ae.chunk.js.map": "./static/js/1836.083f36ae.chunk.js.map", + "4653.a6dfdf0c.chunk.js.map": "./static/js/4653.a6dfdf0c.chunk.js.map", + "4219.c24a76ef.chunk.js.map": "./static/js/4219.c24a76ef.chunk.js.map", + "3208.c0b88007.chunk.js.map": "./static/js/3208.c0b88007.chunk.js.map", + "4394.4efb3ddd.chunk.js.map": "./static/js/4394.4efb3ddd.chunk.js.map", + "4781.785d14ba.chunk.js.map": "./static/js/4781.785d14ba.chunk.js.map", "9478.c2c2c220.chunk.js.map": "./static/js/9478.c2c2c220.chunk.js.map", - "7164.e4aebe46.chunk.js.map": "./static/js/7164.e4aebe46.chunk.js.map", - "4414.80189a53.chunk.js.map": "./static/js/4414.80189a53.chunk.js.map", - "7798.9bd6994f.chunk.js.map": "./static/js/7798.9bd6994f.chunk.js.map", - "8833.d4d792a2.chunk.js.map": "./static/js/8833.d4d792a2.chunk.js.map", - "471.3ac500ed.chunk.js.map": "./static/js/471.3ac500ed.chunk.js.map", + "7164.5542a849.chunk.js.map": "./static/js/7164.5542a849.chunk.js.map", + "4414.453618d3.chunk.js.map": "./static/js/4414.453618d3.chunk.js.map", + "7798.21fc6f4a.chunk.js.map": "./static/js/7798.21fc6f4a.chunk.js.map", + "8833.5d3a1948.chunk.js.map": "./static/js/8833.5d3a1948.chunk.js.map", + "471.bc12301a.chunk.js.map": "./static/js/471.bc12301a.chunk.js.map", "483.3fa229ad.chunk.js.map": "./static/js/483.3fa229ad.chunk.js.map", - "9467.d4860f23.chunk.js.map": "./static/js/9467.d4860f23.chunk.js.map", - "6895.af17fed5.chunk.js.map": "./static/js/6895.af17fed5.chunk.js.map", - "6233.589f83fe.chunk.js.map": "./static/js/6233.589f83fe.chunk.js.map", - "5588.1a32c1c3.chunk.js.map": "./static/js/5588.1a32c1c3.chunk.js.map", - "4874.80bf31e6.chunk.js.map": "./static/js/4874.80bf31e6.chunk.js.map", + "9467.50ab01b6.chunk.js.map": "./static/js/9467.50ab01b6.chunk.js.map", + "6895.c4b3ab71.chunk.js.map": "./static/js/6895.c4b3ab71.chunk.js.map", + "6233.f8460b26.chunk.js.map": "./static/js/6233.f8460b26.chunk.js.map", + "5588.3894176c.chunk.js.map": "./static/js/5588.3894176c.chunk.js.map", + "4133.37c68d0f.chunk.js.map": "./static/js/4133.37c68d0f.chunk.js.map", "1955.f0806840.chunk.css.map": "./static/css/1955.f0806840.chunk.css.map", - "1955.95db0000.chunk.js.map": "./static/js/1955.95db0000.chunk.js.map", + "1955.27cc0d9b.chunk.js.map": "./static/js/1955.27cc0d9b.chunk.js.map", "2653.d0c6bbf1.chunk.js.map": "./static/js/2653.d0c6bbf1.chunk.js.map", - "3956.74bfef51.chunk.js.map": "./static/js/3956.74bfef51.chunk.js.map", + "3956.418abe3f.chunk.js.map": "./static/js/3956.418abe3f.chunk.js.map", "7015.bf4c7dc4.chunk.js.map": "./static/js/7015.bf4c7dc4.chunk.js.map", "7524.c226828c.chunk.js.map": "./static/js/7524.c226828c.chunk.js.map", - "8771.b2727bdd.chunk.js.map": "./static/js/8771.b2727bdd.chunk.js.map", - "9076.bfebbb14.chunk.js.map": "./static/js/9076.bfebbb14.chunk.js.map", + "8771.475684ba.chunk.js.map": "./static/js/8771.475684ba.chunk.js.map", + "9076.4450f2f8.chunk.js.map": "./static/js/9076.4450f2f8.chunk.js.map", "9221.505f4336.chunk.js.map": "./static/js/9221.505f4336.chunk.js.map", - "8896.e9be20fb.chunk.js.map": "./static/js/8896.e9be20fb.chunk.js.map", - "7413.a6fe6f9f.chunk.js.map": "./static/js/7413.a6fe6f9f.chunk.js.map", - "9134.9336f36c.chunk.js.map": "./static/js/9134.9336f36c.chunk.js.map", + "8896.984a3f17.chunk.js.map": "./static/js/8896.984a3f17.chunk.js.map", + "7413.76c38a02.chunk.js.map": "./static/js/7413.76c38a02.chunk.js.map", + "9134.0538c268.chunk.js.map": "./static/js/9134.0538c268.chunk.js.map", "8138.f0806840.chunk.css.map": "./static/css/8138.f0806840.chunk.css.map", - "8138.4c6a5b7f.chunk.js.map": "./static/js/8138.4c6a5b7f.chunk.js.map", - "8183.8c64a361.chunk.js.map": "./static/js/8183.8c64a361.chunk.js.map", - "9145.1af8c238.chunk.js.map": "./static/js/9145.1af8c238.chunk.js.map", - "8822.6030f20d.chunk.js.map": "./static/js/8822.6030f20d.chunk.js.map", - "7331.106a6938.chunk.js.map": "./static/js/7331.106a6938.chunk.js.map", - "9605.e2f1ac95.chunk.js.map": "./static/js/9605.e2f1ac95.chunk.js.map", - "426.0124a3b9.chunk.js.map": "./static/js/426.0124a3b9.chunk.js.map", - "2878.174d0b14.chunk.js.map": "./static/js/2878.174d0b14.chunk.js.map", + "8138.5e1c08de.chunk.js.map": "./static/js/8138.5e1c08de.chunk.js.map", + "2794.ee6b7b2c.chunk.js.map": "./static/js/2794.ee6b7b2c.chunk.js.map", + "9145.363b2352.chunk.js.map": "./static/js/9145.363b2352.chunk.js.map", + "1379.8207ed7c.chunk.js.map": "./static/js/1379.8207ed7c.chunk.js.map", + "1501.b5696037.chunk.js.map": "./static/js/1501.b5696037.chunk.js.map", + "9605.fd87a53e.chunk.js.map": "./static/js/9605.fd87a53e.chunk.js.map", + "426.e738683c.chunk.js.map": "./static/js/426.e738683c.chunk.js.map", + "2878.fca6e2cf.chunk.js.map": "./static/js/2878.fca6e2cf.chunk.js.map", "8495.bdd215dc.chunk.js.map": "./static/js/8495.bdd215dc.chunk.js.map", "4934.4a573b0b.chunk.js.map": "./static/js/4934.4a573b0b.chunk.js.map", - "3518.0178dcf1.chunk.js.map": "./static/js/3518.0178dcf1.chunk.js.map", - "2684.3e7eb9b1.chunk.js.map": "./static/js/2684.3e7eb9b1.chunk.js.map", - "6683.18e77b71.chunk.js.map": "./static/js/6683.18e77b71.chunk.js.map", - "8350.501e9b49.chunk.js.map": "./static/js/8350.501e9b49.chunk.js.map", - "2676.47150957.chunk.js.map": "./static/js/2676.47150957.chunk.js.map", - "9449.035d0f2d.chunk.js.map": "./static/js/9449.035d0f2d.chunk.js.map", - "7659.5504cc60.chunk.js.map": "./static/js/7659.5504cc60.chunk.js.map", - "9968.f0284b3d.chunk.js.map": "./static/js/9968.f0284b3d.chunk.js.map", - "2180.f0842e9e.chunk.js.map": "./static/js/2180.f0842e9e.chunk.js.map", + "3518.e1923a22.chunk.js.map": "./static/js/3518.e1923a22.chunk.js.map", + "7021.ee631825.chunk.js.map": "./static/js/7021.ee631825.chunk.js.map", + "2684.013ba254.chunk.js.map": "./static/js/2684.013ba254.chunk.js.map", + "6683.0a047d81.chunk.js.map": "./static/js/6683.0a047d81.chunk.js.map", + "8350.feed1db5.chunk.js.map": "./static/js/8350.feed1db5.chunk.js.map", + "2676.bd3d9df3.chunk.js.map": "./static/js/2676.bd3d9df3.chunk.js.map", + "9449.281102d6.chunk.js.map": "./static/js/9449.281102d6.chunk.js.map", + "7659.e4cc39f9.chunk.js.map": "./static/js/7659.e4cc39f9.chunk.js.map", + "9968.676114b2.chunk.js.map": "./static/js/9968.676114b2.chunk.js.map", + "2180.c83301fc.chunk.js.map": "./static/js/2180.c83301fc.chunk.js.map", "8253.964026c0.chunk.js.map": "./static/js/8253.964026c0.chunk.js.map", - "3328.04821285.chunk.js.map": "./static/js/3328.04821285.chunk.js.map", - "1440.146b37eb.chunk.js.map": "./static/js/1440.146b37eb.chunk.js.map", - "9002.8057e34f.chunk.js.map": "./static/js/9002.8057e34f.chunk.js.map", - "51.76f011ea.chunk.js.map": "./static/js/51.76f011ea.chunk.js.map", - "711.121af87a.chunk.js.map": "./static/js/711.121af87a.chunk.js.map", + "3328.c99fe6b3.chunk.js.map": "./static/js/3328.c99fe6b3.chunk.js.map", + "1440.74dce637.chunk.js.map": "./static/js/1440.74dce637.chunk.js.map", + "2512.b0d0c6a4.chunk.js.map": "./static/js/2512.b0d0c6a4.chunk.js.map", + "51.8e7e99eb.chunk.js.map": "./static/js/51.8e7e99eb.chunk.js.map", + "711.971db52a.chunk.js.map": "./static/js/711.971db52a.chunk.js.map", "6901.5bbc1914.chunk.js.map": "./static/js/6901.5bbc1914.chunk.js.map", "3678.568378f8.chunk.js.map": "./static/js/3678.568378f8.chunk.js.map", "3320.f0806840.chunk.css.map": "./static/css/3320.f0806840.chunk.css.map", - "3320.b01c2bc8.chunk.js.map": "./static/js/3320.b01c2bc8.chunk.js.map", - "312.256db0f7.chunk.js.map": "./static/js/312.256db0f7.chunk.js.map", - "2112.6991f0b0.chunk.js.map": "./static/js/2112.6991f0b0.chunk.js.map", - "4619.c6ef5989.chunk.js.map": "./static/js/4619.c6ef5989.chunk.js.map", - "8990.4fcc1b0f.chunk.js.map": "./static/js/8990.4fcc1b0f.chunk.js.map", - "8455.f9b61de1.chunk.js.map": "./static/js/8455.f9b61de1.chunk.js.map", + "3320.6e852bd3.chunk.js.map": "./static/js/3320.6e852bd3.chunk.js.map", + "312.f6f66e6c.chunk.js.map": "./static/js/312.f6f66e6c.chunk.js.map", + "2112.4cc30535.chunk.js.map": "./static/js/2112.4cc30535.chunk.js.map", + "4619.c13fce95.chunk.js.map": "./static/js/4619.c13fce95.chunk.js.map", + "8990.57055bc2.chunk.js.map": "./static/js/8990.57055bc2.chunk.js.map", + "8455.802bf15b.chunk.js.map": "./static/js/8455.802bf15b.chunk.js.map", "3631.f0806840.chunk.css.map": "./static/css/3631.f0806840.chunk.css.map", - "3631.a3bc3d9b.chunk.js.map": "./static/js/3631.a3bc3d9b.chunk.js.map", - "1604.c6070715.chunk.js.map": "./static/js/1604.c6070715.chunk.js.map", - "8391.cf78366d.chunk.js.map": "./static/js/8391.cf78366d.chunk.js.map", - "402.3ec8985e.chunk.js.map": "./static/js/402.3ec8985e.chunk.js.map", - "1705.b90dd0eb.chunk.js.map": "./static/js/1705.b90dd0eb.chunk.js.map", - "1581.3e4f9436.chunk.js.map": "./static/js/1581.3e4f9436.chunk.js.map", - "455.855a38c2.chunk.js.map": "./static/js/455.855a38c2.chunk.js.map", - "2661.ed2f4fc2.chunk.js.map": "./static/js/2661.ed2f4fc2.chunk.js.map", + "3631.45996dad.chunk.js.map": "./static/js/3631.45996dad.chunk.js.map", + "1604.a9d0b62b.chunk.js.map": "./static/js/1604.a9d0b62b.chunk.js.map", + "8391.4ea39138.chunk.js.map": "./static/js/8391.4ea39138.chunk.js.map", + "402.ab077b85.chunk.js.map": "./static/js/402.ab077b85.chunk.js.map", + "1705.7586dfce.chunk.js.map": "./static/js/1705.7586dfce.chunk.js.map", + "1581.e753ce61.chunk.js.map": "./static/js/1581.e753ce61.chunk.js.map", + "455.1720a69d.chunk.js.map": "./static/js/455.1720a69d.chunk.js.map", + "2661.bb4d5ff4.chunk.js.map": "./static/js/2661.bb4d5ff4.chunk.js.map", "889.73054a10.chunk.js.map": "./static/js/889.73054a10.chunk.js.map", - "9088.2ed52eb5.chunk.js.map": "./static/js/9088.2ed52eb5.chunk.js.map", + "9088.d0330189.chunk.js.map": "./static/js/9088.d0330189.chunk.js.map", "247.64d57eaf.chunk.js.map": "./static/js/247.64d57eaf.chunk.js.map", - "2763.02f8a4d8.chunk.js.map": "./static/js/2763.02f8a4d8.chunk.js.map", - "3772.8f7b248e.chunk.js.map": "./static/js/3772.8f7b248e.chunk.js.map", + "2763.58b7220d.chunk.js.map": "./static/js/2763.58b7220d.chunk.js.map", "5171.2cf876b1.chunk.js.map": "./static/js/5171.2cf876b1.chunk.js.map", - "2442.c325186c.chunk.js.map": "./static/js/2442.c325186c.chunk.js.map", - "1520.5385d6f6.chunk.js.map": "./static/js/1520.5385d6f6.chunk.js.map", - "2426.bc0cfae1.chunk.js.map": "./static/js/2426.bc0cfae1.chunk.js.map", + "2426.172b5361.chunk.js.map": "./static/js/2426.172b5361.chunk.js.map", "5561.c5000912.chunk.js.map": "./static/js/5561.c5000912.chunk.js.map", "5609.0399a94c.chunk.js.map": "./static/js/5609.0399a94c.chunk.js.map", "3801.a06455a2.chunk.js.map": "./static/js/3801.a06455a2.chunk.js.map", @@ -275,35 +269,31 @@ "6431.5f2e5e6e.chunk.js.map": "./static/js/6431.5f2e5e6e.chunk.js.map", "7757.3650a6cc.chunk.js.map": "./static/js/7757.3650a6cc.chunk.js.map", "6523.f3c7724a.chunk.js.map": "./static/js/6523.f3c7724a.chunk.js.map", - "8760.e06a6adc.chunk.js.map": "./static/js/8760.e06a6adc.chunk.js.map", - "5315.f76aa5f9.chunk.js.map": "./static/js/5315.f76aa5f9.chunk.js.map", + "2011.53c6f61f.chunk.js.map": "./static/js/2011.53c6f61f.chunk.js.map", "8810.b52e1e05.chunk.js.map": "./static/js/8810.b52e1e05.chunk.js.map", "8152.83273cfb.chunk.js.map": "./static/js/8152.83273cfb.chunk.js.map", - "8354.e837d480.chunk.js.map": "./static/js/8354.e837d480.chunk.js.map", "9437.1a158c7b.chunk.js.map": "./static/js/9437.1a158c7b.chunk.js.map", "6172.098bf62e.chunk.js.map": "./static/js/6172.098bf62e.chunk.js.map", "3909.cdbddaab.chunk.js.map": "./static/js/3909.cdbddaab.chunk.js.map", - "7315.f1bb4245.chunk.js.map": "./static/js/7315.f1bb4245.chunk.js.map", - "5317.c7a235b3.chunk.js.map": "./static/js/5317.c7a235b3.chunk.js.map", - "2723.c7e2034f.chunk.js.map": "./static/js/2723.c7e2034f.chunk.js.map", - "2076.e7bf07b8.chunk.js.map": "./static/js/2076.e7bf07b8.chunk.js.map", - "1326.19aa2326.chunk.js.map": "./static/js/1326.19aa2326.chunk.js.map", + "4509.0cb642e8.chunk.js.map": "./static/js/4509.0cb642e8.chunk.js.map", + "8396.49ac6668.chunk.js.map": "./static/js/8396.49ac6668.chunk.js.map", + "5085.49076139.chunk.js.map": "./static/js/5085.49076139.chunk.js.map", + "3854.68ad3372.chunk.js.map": "./static/js/3854.68ad3372.chunk.js.map", + "7002.c23dc7cf.chunk.js.map": "./static/js/7002.c23dc7cf.chunk.js.map", + "3461.f7b91f8d.chunk.js.map": "./static/js/3461.f7b91f8d.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", + "7923.552889f9.chunk.js.map": "./static/js/7923.552889f9.chunk.js.map", + "5586.a2da5401.chunk.js.map": "./static/js/5586.a2da5401.chunk.js.map", + "1788.280ca1f4.chunk.js.map": "./static/js/1788.280ca1f4.chunk.js.map", + "9785.7ccf0212.chunk.js.map": "./static/js/9785.7ccf0212.chunk.js.map", "8735.52726eac.chunk.js.map": "./static/js/8735.52726eac.chunk.js.map", - "8915.be25a5c1.chunk.js.map": "./static/js/8915.be25a5c1.chunk.js.map", - "3096.63d4ac67.chunk.js.map": "./static/js/3096.63d4ac67.chunk.js.map", + "63.830fd6fc.chunk.js.map": "./static/js/63.830fd6fc.chunk.js.map", "2983.26ce456f.chunk.js.map": "./static/js/2983.26ce456f.chunk.js.map", - "770.c5b57a95.chunk.js.map": "./static/js/770.c5b57a95.chunk.js.map", - "5662.0998d919.chunk.js.map": "./static/js/5662.0998d919.chunk.js.map", - "5165.0fcf4d2d.chunk.js.map": "./static/js/5165.0fcf4d2d.chunk.js.map", - "6496.0cee9f03.chunk.js.map": "./static/js/6496.0cee9f03.chunk.js.map", - "1687.72fad20d.chunk.js.map": "./static/js/1687.72fad20d.chunk.js.map" + "5289.2cf708de.chunk.js.map": "./static/js/5289.2cf708de.chunk.js.map", + "5026.0b30f6e2.chunk.js.map": "./static/js/5026.0b30f6e2.chunk.js.map" }, "entrypoints": [ "static/css/main.90d417ae.css", - "static/js/main.5a7c25ee.js" + "static/js/main.cafe85a6.js" ] } \ No newline at end of file diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html index f8c6af765..2e5405dd3 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 deleted file mode 100644 index 85fea0427..000000000 --- a/portal-ui/build/static/js/1326.19aa2326.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(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.19aa2326.chunk.js.map b/portal-ui/build/static/js/1326.19aa2326.chunk.js.map deleted file mode 100644 index 4f1e73ac6..000000000 --- a/portal-ui/build/static/js/1326.19aa2326.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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/1379.8207ed7c.chunk.js b/portal-ui/build/static/js/1379.8207ed7c.chunk.js new file mode 100644 index 000000000..06eef84a6 --- /dev/null +++ b/portal-ui/build/static/js/1379.8207ed7c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1379],{45902:function(e,n,t){var s=t(1413),o=(t(72791),t(53767)),l=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,i=e.value,a=void 0===i?"-":i,r=e.orientation,c=void 0===r?"column":r,u=e.stkProps,d=void 0===u?{}:u,x=e.lblProps,f=void 0===x?{}:x,m=e.valProps,p=void 0===m?{}:m;return(0,l.jsxs)(o.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,l.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:600}},f),{},{children:t})),(0,l.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:500}},p),{},{children:a}))]}))}},51379:function(e,n,t){t.r(n),t.d(n,{default:function(){return w}});var s=t(1413),o=t(72791),l=t(60364),i=t(11135),a=t(25787),r=t(23814),c=t(61889),u=t(42649),d=t(75460),x=t(29439),f=t(27391),m=t(63466),p=t(74900),j=t(40603),Z=t(93656),h=t(92983),v=t(80184),g=(0,l.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:u.Ih,setSelectedPool:d.Lm}),y=(0,a.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},r.oZ),r.OR),r.VX),(0,r.Bz)(e.spacing(4))))}))(g((function(e){var n=e.classes,t=e.tenant,s=e.loadingTenant,l=e.setSelectedPool,i=e.history,a=e.setPoolDetailsView,r=(0,o.useState)([]),u=(0,x.Z)(r,2),d=u[0],g=u[1],y=(0,o.useState)(""),b=(0,x.Z)(y,2),P=b[0],C=b[1];(0,o.useEffect)((function(){if(t){var e=t.pools?t.pools:[];g(e)}}),[t]);var A=d.filter((function(e){return!!e.name.toLowerCase().includes(P.toLowerCase())})),D=[{type:"view",onClick:function(e){l(e.name),a()}}];return(0,v.jsxs)(o.Fragment,{children:[(0,v.jsxs)(c.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,v.jsx)(f.Z,{placeholder:"Filter",className:n.searchField,id:"search-resource",label:"",onChange:function(e){C(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,v.jsx)(m.Z,{position:"start",children:(0,v.jsx)(p.Z,{})})},variant:"standard"}),(0,v.jsx)(j.Z,{tooltip:"Expand Tenant",text:"Expand Tenant",onClick:function(){i.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,v.jsx)(Z.dt,{}),color:"primary",variant:"contained"})]}),(0,v.jsx)(c.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,v.jsx)(h.Z,{itemActions:D,columns:[{label:"Name",elementKey:"name"},{label:"Capacity",elementKey:"capacity"},{label:"# of Instances",elementKey:"servers"},{label:"# of Drives",elementKey:"volumes"}],isLoading:s,records:A,entityName:"Servers",idField:"name",customEmptyMessage:"No Pools found"})})]})}))),b=t(64554),P=t(45902),C=t(45248),A=t(45987),D=t(53767),T=["children"],k=function(e){var n=e.children,t=void 0===n?null:n,o=(0,A.Z)(e,T);return(0,v.jsx)(D.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:"row"},justifyContent:"space-between",margin:"5px 0 5px 0",spacing:{xs:1,sm:2,md:4}},o),{},{children:t}))},S={border:"#EAEAEA 1px solid",borderRadius:"3px",padding:"0px 20px",position:"relative"},N={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2,padding:"15px"},E=(0,l.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,selectedPool:e.tenants.tenantDetails.selectedPool}}),{setErrorSnackMessage:u.Ih,setTenantDetailsLoad:d.V2}),F=(0,a.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},r.bK),r.VI),r.oZ),r.VX),(0,r.Bz)(e.spacing(4))))}))(E((function(e){var n,t,l,i=e.tenant,a=e.selectedPool,r=e.history,u=(null===i||void 0===i?void 0:i.pools.find((function(e){return e.name===a})))||null;if(null===u)return null;var d="None";u.affinity&&(d=u.affinity.nodeAffinity?"Node Selector":"Default (Pod Anti-Affinity)");var x=function(e){var n=e.title;return(0,v.jsx)(k,{sx:{borderBottom:"1px solid #eaeaea",margin:0,marginBottom:"20px"},children:(0,v.jsx)("h3",{children:n})})};return(0,v.jsx)(o.Fragment,{children:(0,v.jsxs)(c.ZP,{item:!0,xs:12,sx:(0,s.Z)({},S),children:[(0,v.jsx)("div",{style:{position:"absolute",right:20,top:18},children:(0,v.jsx)(j.Z,{icon:(0,v.jsx)(Z.Jp,{}),onClick:function(){r.push("/namespaces/".concat((null===i||void 0===i?void 0:i.namespace)||"","/tenants/").concat((null===i||void 0===i?void 0:i.name)||"","/edit-pool"))},text:"Edit Pool",id:"editPool"})}),(0,v.jsx)(x,{title:"Pool Configuration"}),(0,v.jsxs)(b.Z,{sx:(0,s.Z)({},N),children:[(0,v.jsx)(P.Z,{label:"Pool Name",value:u.name}),(0,v.jsx)(P.Z,{label:"Total Volumes",value:u.volumes}),(0,v.jsx)(P.Z,{label:"Volumes per server",value:u.volumes_per_server}),(0,v.jsx)(P.Z,{label:"Capacity",value:u.capacity})]}),(0,v.jsx)(x,{title:"Resources"}),(0,v.jsxs)(b.Z,{sx:(0,s.Z)({},N),children:[u.resources&&(0,v.jsxs)(o.Fragment,{children:[(0,v.jsx)(P.Z,{label:"CPU",value:u.resources.requests.cpu}),(0,v.jsx)(P.Z,{label:"Memory",value:(0,C.l5)(u.resources.requests.memory)})]}),(0,v.jsx)(P.Z,{label:"Volume Size",value:(0,C.l5)(u.volume_configuration.size)}),(0,v.jsx)(P.Z,{label:"Storage Class Name",value:u.volume_configuration.storage_class_name})]}),u.securityContext&&(u.securityContext.runAsNonRoot||u.securityContext.runAsUser||u.securityContext.runAsGroup||u.securityContext.fsGroup)&&(0,v.jsxs)(o.Fragment,{children:[(0,v.jsx)(x,{title:"Security Context"}),(0,v.jsxs)(b.Z,{children:[null!==u.securityContext.runAsNonRoot&&(0,v.jsx)(b.Z,{sx:(0,s.Z)({},N),children:(0,v.jsx)(P.Z,{label:"Run as Non Root",value:u.securityContext.runAsNonRoot?"Yes":"No"})}),(0,v.jsxs)(b.Z,{sx:(0,s.Z)((0,s.Z)({},N),{},{gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr",md:"1fr 1fr 1fr"}}),children:[u.securityContext.runAsUser&&(0,v.jsx)(P.Z,{label:"Run as User",value:u.securityContext.runAsUser}),u.securityContext.runAsGroup&&(0,v.jsx)(P.Z,{label:"Run as Group",value:u.securityContext.runAsGroup}),u.securityContext.fsGroup&&(0,v.jsx)(P.Z,{label:"FsGroup",value:u.securityContext.fsGroup})]})]})]}),(0,v.jsx)(x,{title:"Affinity"}),(0,v.jsxs)(b.Z,{children:[(0,v.jsxs)(b.Z,{sx:(0,s.Z)({},N),children:[(0,v.jsx)(P.Z,{label:"Type",value:d}),null!==(n=u.affinity)&&void 0!==n&&n.nodeAffinity&&null!==(t=u.affinity)&&void 0!==t&&t.podAntiAffinity?(0,v.jsx)(P.Z,{label:"With Pod Anti affinity",value:"Yes"}):(0,v.jsx)("span",{})]}),(null===(l=u.affinity)||void 0===l?void 0:l.nodeAffinity)&&(0,v.jsxs)(o.Fragment,{children:[(0,v.jsx)(x,{title:"Labels"}),(0,v.jsx)("ul",{children:u.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.map((function(e){return e.matchExpressions.map((function(e){return(0,v.jsxs)("li",{children:[e.key," - ",e.values.join(", ")]})}))}))})]})]}),u.tolerations&&u.tolerations.length>0&&(0,v.jsxs)(o.Fragment,{children:[(0,v.jsx)(x,{title:"Tolerations"}),(0,v.jsx)(b.Z,{children:(0,v.jsx)("ul",{children:u.tolerations.map((function(e){var n,t;return(0,v.jsx)("li",{children:"Equal"===e.operator?(0,v.jsxs)(o.Fragment,{children:["If ",(0,v.jsx)("strong",{children:e.key})," is equal to"," ",(0,v.jsx)("strong",{children:e.value})," then"," ",(0,v.jsx)("strong",{children:e.effect})," after"," ",(0,v.jsx)("strong",{children:(null===(n=e.tolerationSeconds)||void 0===n?void 0:n.seconds)||0})," ","seconds"]}):(0,v.jsxs)(o.Fragment,{children:["If ",(0,v.jsx)("strong",{children:e.key})," exists then"," ",(0,v.jsx)("strong",{children:e.effect})," after"," ",(0,v.jsx)("strong",{children:(null===(t=e.tolerationSeconds)||void 0===t?void 0:t.seconds)||0})," ","seconds"]})})}))})})]})]})})}))),R=t(84669),I=(0,l.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,selectedPool:e.tenants.tenantDetails.selectedPool,tenant:e.tenants.tenantDetails.tenantInfo,poolDetailsOpen:e.tenants.tenantDetails.poolDetailsOpen}}),{setErrorSnackMessage:u.Ih,setTenantDetailsLoad:d.V2,setSelectedPool:d.Lm,setOpenPoolDetails:d.AH}),w=(0,a.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},r.oZ),r.OR),r.VX),(0,r.Bz)(e.spacing(4))))}))(I((function(e){var n=e.classes,t=e.history,s=e.selectedPool,l=e.match,i=e.poolDetailsOpen,a=e.setOpenPoolDetails;return(0,v.jsxs)(o.Fragment,{children:[i&&(0,v.jsx)(c.ZP,{item:!0,xs:12,children:(0,v.jsx)(R.Z,{executeOnClick:function(){a(!1)},label:"Back to Pools list",to:l.url})}),(0,v.jsx)("h1",{className:n.sectionTitle,children:i?"Pool Details - ".concat(s||""):"Pools"}),(0,v.jsx)(c.ZP,{container:!0,children:i?(0,v.jsx)(F,{history:t}):(0,v.jsx)(y,{setPoolDetailsView:function(){a(!0)},history:t})})]})})))}}]); +//# sourceMappingURL=1379.8207ed7c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1379.8207ed7c.chunk.js.map b/portal-ui/build/static/js/1379.8207ed7c.chunk.js.map new file mode 100644 index 000000000..26b90caa7 --- /dev/null +++ b/portal-ui/build/static/js/1379.8207ed7c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1379.8207ed7c.chunk.js","mappings":"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","sources":["screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Tenants/TenantDetails/Pools/Details/PoolsListing.tsx","screens/Console/Common/UsageBarWrapper/StackRow.tsx","screens/Console/Tenants/TenantDetails/Pools/Details/PoolDetails.tsx","screens/Console/Tenants/TenantDetails/PoolsSummary.tsx"],"sourcesContent":["import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../../store\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { setSelectedPool } from \"../../../actions\";\nimport { IPool, ITenant } from \"../../../ListTenants/types\";\nimport Grid from \"@mui/material/Grid\";\nimport { TextField } from \"@mui/material\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../../../../icons/SearchIcon\";\nimport RBIconButton from \"../../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { AddIcon } from \"../../../../../../icons\";\nimport TableWrapper from \"../../../../Common/TableWrapper/TableWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\ninterface IPoolsSummary {\n classes: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n history: any;\n setPoolDetailsView: () => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSelectedPool: typeof setSelectedPool;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsListing = ({\n classes,\n tenant,\n loadingTenant,\n setSelectedPool,\n history,\n setPoolDetailsView,\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 const listActions = [\n {\n type: \"view\",\n onClick: (selectedValue: IPool) => {\n setSelectedPool(selectedValue.name);\n setPoolDetailsView();\n },\n },\n ];\n\n return (\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\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 setSelectedPool,\n});\n\nexport default withStyles(styles)(connector(PoolsListing));\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\nconst StackRow = ({\n children = null,\n ...restProps\n}: {\n children?: any;\n [x: string]: any;\n}) => {\n return (\n \n {children}\n \n );\n};\nexport default StackRow;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n spacingUtils,\n tableStyles,\n tenantDetailsStyles,\n textStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { setTenantDetailsLoad } from \"../../../actions\";\nimport { Box } from \"@mui/material\";\nimport { ITenant } from \"../../../ListTenants/types\";\nimport Grid from \"@mui/material/Grid\";\nimport LabelValuePair from \"../../../../Common/UsageBarWrapper/LabelValuePair\";\nimport { niceBytesInt } from \"../../../../../../common/utils\";\nimport StackRow from \"../../../../Common/UsageBarWrapper/StackRow\";\nimport RBIconButton from \"../../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { EditTenantIcon } from \"../../../../../../icons\";\n\ninterface IPoolDetails {\n classes: any;\n history: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n selectedPool: string | null;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...textStyleUtils,\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst stylingLayout = {\n border: \"#EAEAEA 1px solid\",\n borderRadius: \"3px\",\n padding: \"0px 20px\",\n position: \"relative\",\n};\n\nconst twoColCssGridLayoutConfig = {\n display: \"grid\",\n gridTemplateColumns: { xs: \"1fr\", sm: \"2fr 1fr\" },\n gridAutoFlow: { xs: \"dense\", sm: \"row\" },\n gap: 2,\n padding: \"15px\",\n};\n\nconst PoolDetails = ({ tenant, selectedPool, history }: IPoolDetails) => {\n const poolInformation =\n tenant?.pools.find((pool) => pool.name === selectedPool) || null;\n\n if (poolInformation === null) {\n return null;\n }\n\n let affinityType = \"None\";\n\n if (poolInformation.affinity) {\n if (poolInformation.affinity.nodeAffinity) {\n affinityType = \"Node Selector\";\n } else {\n affinityType = \"Default (Pod Anti-Affinity)\";\n }\n }\n\n const HeaderSection = ({ title }: { title: string }) => {\n return (\n \n

{title}

\n \n );\n };\n\n return (\n \n \n
\n }\n onClick={() => {\n history.push(\n `/namespaces/${tenant?.namespace || \"\"}/tenants/${\n tenant?.name || \"\"\n }/edit-pool`\n );\n }}\n text={\"Edit Pool\"}\n id={\"editPool\"}\n />\n
\n \n \n \n \n \n \n \n \n \n {poolInformation.resources && (\n \n \n \n \n )}\n \n \n \n {poolInformation.securityContext &&\n (poolInformation.securityContext.runAsNonRoot ||\n poolInformation.securityContext.runAsUser ||\n poolInformation.securityContext.runAsGroup ||\n poolInformation.securityContext.fsGroup) && (\n \n \n \n {poolInformation.securityContext.runAsNonRoot !== null && (\n \n \n \n )}\n \n {poolInformation.securityContext.runAsUser && (\n \n )}\n {poolInformation.securityContext.runAsGroup && (\n \n )}\n {poolInformation.securityContext.fsGroup && (\n \n )}\n \n \n \n )}\n \n \n \n \n {poolInformation.affinity?.nodeAffinity &&\n poolInformation.affinity?.podAntiAffinity ? (\n \n ) : (\n \n )}\n \n {poolInformation.affinity?.nodeAffinity && (\n \n \n
    \n {poolInformation.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.map(\n (term) => {\n return term.matchExpressions.map((trm) => {\n return (\n
  • \n {trm.key} - {trm.values.join(\", \")}\n
  • \n );\n });\n }\n )}\n
\n
\n )}\n
\n {poolInformation.tolerations && poolInformation.tolerations.length > 0 && (\n \n \n \n
    \n {poolInformation.tolerations.map((tolItem) => {\n return (\n
  • \n {tolItem.operator === \"Equal\" ? (\n \n If {tolItem.key} is equal to{\" \"}\n {tolItem.value} then{\" \"}\n {tolItem.effect} after{\" \"}\n \n {tolItem.tolerationSeconds?.seconds || 0}\n {\" \"}\n seconds\n \n ) : (\n \n If {tolItem.key} exists then{\" \"}\n {tolItem.effect} after{\" \"}\n \n {tolItem.tolerationSeconds?.seconds || 0}\n {\" \"}\n seconds\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 selectedPool: state.tenants.tenantDetails.selectedPool,\n});\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(PoolDetails));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n actionsTray,\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport {\n setOpenPoolDetails,\n setSelectedPool,\n setTenantDetailsLoad,\n} from \"../actions\";\nimport PoolsListing from \"./Pools/Details/PoolsListing\";\nimport PoolDetails from \"./Pools/Details/PoolDetails\";\nimport BackLink from \"../../../../common/BackLink\";\n\ninterface IPoolsSummary {\n classes: any;\n loadingTenant: boolean;\n history: any;\n match: any;\n selectedPool: string | null;\n poolDetailsOpen: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n setSelectedPool: typeof setSelectedPool;\n setOpenPoolDetails: typeof setOpenPoolDetails;\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 history,\n selectedPool,\n match,\n poolDetailsOpen,\n setOpenPoolDetails,\n}: IPoolsSummary) => {\n return (\n \n {poolDetailsOpen && (\n \n {\n setOpenPoolDetails(false);\n }}\n label={\"Back to Pools list\"}\n to={match.url}\n />\n \n )}\n

\n {poolDetailsOpen ? `Pool Details - ${selectedPool || \"\"}` : \"Pools\"}\n

\n \n {poolDetailsOpen ? (\n \n ) : (\n {\n setOpenPoolDetails(true);\n }}\n history={history}\n />\n )}\n \n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n selectedPool: state.tenants.tenantDetails.selectedPool,\n tenant: state.tenants.tenantDetails.tenantInfo,\n poolDetailsOpen: state.tenants.tenantDetails.poolDetailsOpen,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n setSelectedPool,\n setOpenPoolDetails,\n});\n\nexport default withStyles(styles)(connector(PoolsSummary));\n"],"names":["label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","setErrorSnackMessage","setSelectedPool","withStyles","theme","createStyles","tenantDetailsStyles","actionsTray","tableStyles","containerForHeader","spacing","classes","history","setPoolDetailsView","useState","pools","setPools","filter","setFilter","useEffect","resPools","filteredPools","pool","name","toLowerCase","includes","listActions","type","onClick","selectedValue","Fragment","Grid","item","className","TextField","placeholder","searchField","id","onChange","event","target","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","variant","RBIconButton","tooltip","text","push","namespace","icon","color","tableBlock","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","customEmptyMessage","children","restProps","Stack","justifyContent","margin","md","stylingLayout","border","borderRadius","padding","twoColCssGridLayoutConfig","display","gridTemplateColumns","gridAutoFlow","gap","selectedPool","setTenantDetailsLoad","spacingUtils","textStyleUtils","poolInformation","find","affinityType","affinity","nodeAffinity","HeaderSection","title","sx","borderBottom","marginBottom","right","top","Box","LabelValuePair","volumes","volumes_per_server","capacity","resources","requests","cpu","niceBytesInt","memory","volume_configuration","size","storage_class_name","securityContext","runAsNonRoot","runAsUser","runAsGroup","fsGroup","podAntiAffinity","requiredDuringSchedulingIgnoredDuringExecution","nodeSelectorTerms","map","term","matchExpressions","trm","key","values","join","tolerations","length","tolItem","operator","effect","tolerationSeconds","seconds","poolDetailsOpen","setOpenPoolDetails","match","BackLink","executeOnClick","to","url","sectionTitle","container"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1434.2cbee404.chunk.js b/portal-ui/build/static/js/1434.2cbee404.chunk.js deleted file mode 100644 index 292be2c40..000000000 --- a/portal-ui/build/static/js/1434.2cbee404.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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(29439),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(29439),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(93433),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(93656),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/1434.8703ced0.chunk.js b/portal-ui/build/static/js/1434.8703ced0.chunk.js new file mode 100644 index 000000000..d9c045f75 --- /dev/null +++ b/portal-ui/build/static/js/1434.8703ced0.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})]})})}))},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(93656),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(29439),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,_=void 0===Z?"":Z,b=e.accept,N=void 0===b?"":b,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(""!==_?n.errorInField:""),children:[""!==t&&(0,v.jsxs)(c.Z,{htmlFor:i,className:"".concat(""!==_?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: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}),""!==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)(g.Z,{})}),""!==_&&(0,v.jsx)(y.Z,{errorMessage:_})]}):(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,{})})]})]})})}))},56028:function(e,t,n){var a=n(29439),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),g=n(25787),p=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,g.Z)((function(e){return(0,m.Z)((0,r.Z)((0,r.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(v((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,m=e.children,g=e.classes,p=e.wideLimit,f=void 0===p||p,v=e.modalSnackMessage,C=e.noContentPadding,S=e.setModalSnackMessage,j=e.titleIcon,Z=void 0===j?null:j,_=(0,s.useState)(!1),b=(0,a.Z)(_,2),N=b[0],A=b[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:g.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:g},I),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:g.root,children:[(0,y.jsxs)(d.Z,{className:g.title,children:[(0,y.jsxs)("div",{className:g.titleText,children:[Z," ",i]}),(0,y.jsx)("div",{className:g.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:g.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:g.snackBarModal,onClose:function(){A(!1),S("")},message:P,ContentProps:{className:"".concat(g.snackBar," ").concat(v&&"error"===v.type?g.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,y.jsx)(u.Z,{className:C?"":g.content,children:m})]}))})))},91434:function(e,t,n){n.r(t),n.d(t,{default:function(){return Te}});var a=n(29439),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(93433),j=n(10703),Z=n(84741),_=n(40968),b=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)({},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))}))(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)({}),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,_.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,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)(b.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)(b.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)(b.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:p.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:p.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:p.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)(b.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,I=e.ADLookupBindPassword,P=e.ADUserDNSearchBaseDN,z=e.ADUserDNSearchFilter,G=e.ADServerStartTLS,U=e.updateAddField,L=e.isPageValid,q=(0,s.useState)({}),M=(0,a.Z)(q,2),V=M[0],O=M[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)},$=function(e,t){var n=(0,S.Z)(i);n[e]=t,B("secretKeys",n)},H=function(e,t){var n=(0,S.Z)(v);n[e]=t,B("ADUserDNs",n)},Q=function(e){O((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){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,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){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: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){B("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){B("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){B("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){B("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){B("openIDScopes",e.target.value),Q("openID_scopes")},label:"Scopes",value:g})})]}),"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){B("ADURL",e.target.value),Q("AD_URL")},label:"LDAP Server Address",value:p,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)(b.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,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(b.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,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)(b.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,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){B("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){B("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){B("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){B("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){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,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){B("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),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}),M=(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,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)(b.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)(b.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)(b.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:p,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:g,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}),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))}))(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,g=e.enableEncryption,p=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,q=e.vaultRetry,M=e.vaultPing,V=e.azureEndpoint,O=e.azureTenantID,B=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),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:M,customValidation:parseInt(M)<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: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:O},{fieldKey:"azure_client_id",required:!0,value:B},{fieldKey:"azure_client_secret",required:!0,value:W}])));var t=(0,_.R)(e);i("encryption",0===Object.keys(t).length),pe(t)}),[g,f,R,D,G,L,M,q,C,I,T,k,h,x,y,v,$,H,Q,Y,J,X,V,O,B,W,i,te,p,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)(b.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,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:ge.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:ge.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:ge.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:q,error:ge.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:M,error:ge.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:ge.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:O,error:ge.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:B,error:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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)(b.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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:ge.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)(b.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),$=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"}},g.oO),g.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,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],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)([]),q=(0,a.Z)(U,2),M=q[0],V=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});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("&");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,_.R)(e);g("affinity",0===Object.keys(r).length),I(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,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){O("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",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)(b.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,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:[M.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:M}),0===M.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:[M.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===M.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);M.length>0?e.push({key:M[0].value,value:z[M[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)({},g.DF),g.oO),g.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,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),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"}])),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,_.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,I,v,C,p]);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)(b.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(2148),le=n(93656),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"}},g.oO),g.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&&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,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),ge=n(53382),pe=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}}},g.oO),g.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)(ge.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Number of Servers"}),(0,A.jsx)(pe.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)(pe.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(pe.Z,{align:"right",children:i?i.disks:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Drive Capacity"}),(0,A.jsx)(pe.Z,{align:"right",children:i?(0,f.ae)(i.pvSize):"-"})]})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Total Volumes"}),(0,A.jsx)(pe.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)(pe.Z,{scope:"row",children:"Memory per Node"}),(0,A.jsxs)(pe.Z,{align:"right",children:[a," Gi"]})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,A.jsx)(pe.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)(ge.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"EC Parity"}),(0,A.jsx)(pe.Z,{align:"right",children:""!==r?r:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Raw Capacity"}),(0,A.jsx)(pe.Z,{align:"right",children:(0,f.ae)(o.rawCapacity)})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Usable Capacity"}),(0,A.jsx)(pe.Z,{align:"right",children:(0,f.ae)(d.maxCapacity)})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,A.jsx)(pe.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)(ge.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"CPU"}),(0,A.jsx)(pe.Z,{align:"right",children:0!==c.CPU?c.CPU:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Memory"}),(0,A.jsx)(pe.Z,{align:"right",children:0!==c.memory?"".concat(c.memory," Gi"):"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(pe.Z,{align:"right",children:0!==c.drivesPerServer?"".concat(c.drivesPerServer):"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(pe.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,A.jsxs)(pe.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}},g.DF),g.oO),g.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,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)({}),b=(0,a.Z)(S,2),I=b[0],P=b[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],M=(0,s.useState)(!1),V=(0,a.Z)(M,2),O=V[0],B=V[1],$=(0,s.useCallback)((function(e,t){g("nameTenant",e,t)}),[g]),H=(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,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),q(!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,_.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:[O&&(0,A.jsx)(ue,{addNamespaceOpen:O,closeAddNamespaceModalAndRefresh:function(e){B(!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(){B(!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})})),_e=n(56578),be=(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)({},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))}))(be((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),I=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,_.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)(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)(b.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)(_e.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)(b.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)(b.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)({},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],I=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,_.R)(e);p("configure",0===Object.keys(t).length),I(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){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)(b.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)(_e.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)(b.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"}},g.oO),g.AK),g.Je))}))(ke((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),_=Z[0],b=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,_=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,q=n.identityProvider.secretKeys,M=i.minioCertificates,V=i.caCertificates,O=i.consoleCaCertificates,B=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,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,_e=n.encryption.gcpEndpoint,be=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,qe=n.configure.prometheusImage,Me=n.configure.prometheusSidecarImage,Ve=n.configure.prometheusInitImage,Oe=n.configure.prometheusSelectedStorageClass,Be=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"===Oe?"":Oe,storageSize:parseInt(Be),image:qe,sidecar_image:Me,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}))}),O.length>0&&(dt={console_ca_certificates:O.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}),ke&&M.length>0&&(ot={minio:M.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:_e,credentials:{client_email:be,client_id:Ne,private_key_id:Ae,private_key:Ie}}}};break;case"vault":var gt=null,pt=null;""!==H.encoded_key&&""!==H.encoded_cert&&(gt={key:H.encoded_key,crt:H.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={};""!==$.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const 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\n \n {addSending && (\n \n \n \n )}\n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized: Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi.\n
\n
\n Storage Optimized: Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is  \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n
\n }\n />\n
\n )}\n
\n
\n );\n};\n\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","flexFlow","padding","inputWithCopy","background","inputLabel","fieldBasic","label","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","color","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","icon","variant","length","allCredentials","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","fileInputField","fileInputStyles","textBoxContainer","onChange","name","disabled","required","error","accept","useState","showFileSelector","setShowSelector","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","placement","HelpIcon","type","e","fileName","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","customDialogSize","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","exposeMinIO","tenants","createTenant","fields","configure","exposeConsole","tenantCustom","tenantSecurityContext","updateAddField","isPageValid","configSectionItem","tenantCustomizationFields","marginLeft","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","loading","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","confirmText","confirmButtonProps","isOpen","isLoading","onConfirm","confirmationContent","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","sx","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","cancelButton","enabled","action","history","createButton","every","filteredWizardSteps","componentRender","buttons","advancedOnly","CredentialsPrompt","PageHeader","BackLink","to","executeOnClick","PageLayout","GenericWizard","wizardSteps","HelpBox","errorBlock","palette","main","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1440.146b37eb.chunk.js b/portal-ui/build/static/js/1440.146b37eb.chunk.js deleted file mode 100644 index 7d9e08afc..000000000 --- a/portal-ui/build/static/js/1440.146b37eb.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1440],{23804:function(e,t,n){"use strict";n(72791);var o=n(11135),i=n(25787),r=n(61889),c=n(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,n=e.iconComponent,o=e.title,i=e.help;return(0,c.jsx)("div",{className:t.root,children:(0,c.jsxs)(r.ZP,{container:!0,children:[(0,c.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,o]}),(0,c.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},25702:function(e,t,n){"use strict";n.r(t);var o=n(29439),i=n(1413),r=n(72791),c=n(60364),s=n(11135),a=n(25787),l=n(26181),u=n.n(l),d=n(61889),m=n(47919),f=n(86856),h=n(42649),p=n(23814),v=n(92983),x=n(81207),Z=n(23804),b=n(60680),k=n(38442),j=n(56087),g=n(75578),S=n(40603),I=n(80184),E=(0,g.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(2442),n.e(455)]).then(n.bind(n,80455))}))),z=(0,g.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(3801),n.e(1918),n.e(6172),n.e(2661)]).then(n.bind(n,82661))}))),C=(0,c.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:h.Ih});t.default=(0,a.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(C((function(e){var t=e.classes,n=e.match,i=e.setErrorSnackMessage,c=e.loadingBucket,s=(e.bucketInfo,(0,r.useState)(!1)),a=(0,o.Z)(s,2),l=a[0],h=a[1],p=(0,r.useState)(!0),g=(0,o.Z)(p,2),C=g[0],F=g[1],P=(0,r.useState)([]),y=(0,o.Z)(P,2),N=y[0],T=y[1],w=(0,r.useState)(!1),B=(0,o.Z)(w,2),M=B[0],O=B[1],_=(0,r.useState)(null),A=(0,o.Z)(_,2),H=A[0],R=A[1],V=n.params.bucketName,D=(0,k.F)(V,[j.Ft.S3_GET_BUCKET_NOTIFICATIONS]);(0,r.useEffect)((function(){c&&F(!0)}),[c,F]),(0,r.useEffect)((function(){C&&(D?x.Z.invoke("GET","/api/v1/buckets/".concat(V,"/events")).then((function(e){var t=u()(e,"events",[]);F(!1),T(t||[])})).catch((function(e){F(!1),i(e)})):F(!1))}),[C,i,V,D]);var K=[{type:"delete",onClick:function(e){O(!0),R(e)}}];return(0,I.jsxs)(r.Fragment,{children:[M&&(0,I.jsx)(E,{deleteOpen:M,selectedBucket:V,bucketEvent:H,closeDeleteModalAndRefresh:function(e){O(!1),e&&F(!0)}}),l&&(0,I.jsx)(z,{open:l,selectedBucket:V,closeModalAndRefresh:function(){h(!1),F(!0)}}),(0,I.jsxs)(d.ZP,{container:!0,children:[(0,I.jsxs)(d.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,I.jsx)(b.Z,{children:"Events"}),(0,I.jsx)(k.s,{scopes:[j.Ft.S3_PUT_BUCKET_NOTIFICATIONS,j.Ft.ADMIN_SERVER_INFO],resource:V,matchAll:!0,errorProps:{disabled:!0},children:(0,I.jsx)(S.Z,{tooltip:"Subscribe to Event",onClick:function(){h(!0)},text:"Subscribe to Event",icon:(0,I.jsx)(m.Z,{}),color:"primary",variant:"contained"})})]}),(0,I.jsx)(d.ZP,{item:!0,xs:12,children:(0,I.jsx)(k.s,{scopes:[j.Ft.S3_GET_BUCKET_NOTIFICATIONS],resource:V,errorProps:{disabled:!0},children:(0,I.jsx)(v.Z,{itemActions:K,columns:[{label:"SQS",elementKey:"arn"},{label:"Events",elementKey:"events",renderFunction:function(e){return(0,I.jsx)(r.Fragment,{children:e.join(", ")})}},{label:"Prefix",elementKey:"prefix"},{label:"Suffix",elementKey:"suffix"}],isLoading:C,records:N,entityName:"Events",idField:"id",customPaperHeight:t.twHeight})})}),!C&&(0,I.jsx)(d.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{title:"Lambda Notifications",iconComponent:(0,I.jsx)(f.Z,{}),help:(0,I.jsxs)(r.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,I.jsx)("br",{}),(0,I.jsx)("br",{}),"You can learn more at our"," ",(0,I.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]})]})})))},60680:function(e,t,n){"use strict";n(72791);var o=n(11135),i=n(25787),r=n(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,r.jsx)("h1",{className:t.root,children:n})}))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=c},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=c},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.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 z}});var o=n(4942),i=n(63366),r=n(87462),c=n(72791),s=n(90767),a=n(12065),l=n(97278),u=n(76189),d=n(80184),m=(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"),f=(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"),h=(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),v=n(93736),x=n(47630),Z=n(95159);function b(e){return(0,Z.Z)("MuiCheckbox",e)}var k=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],g=(0,x.ZP)(l.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,p.Z)(n.color))]]}})((function(e){var t,n=e.theme,i=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,a.Fq)("default"===i.color?n.palette.action.active:n.palette[i.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(t={},(0,o.Z)(t,"&.".concat(k.checked,", &.").concat(k.indeterminate),{color:n.palette[i.color].main}),(0,o.Z)(t,"&.".concat(k.disabled),{color:n.palette.action.disabled}),t))})),S=(0,d.jsx)(f,{}),I=(0,d.jsx)(m,{}),E=(0,d.jsx)(h,{}),z=c.forwardRef((function(e,t){var n,o,a=(0,v.Z)({props:e,name:"MuiCheckbox"}),l=a.checkedIcon,u=void 0===l?S:l,m=a.color,f=void 0===m?"primary":m,h=a.icon,x=void 0===h?I:h,Z=a.indeterminate,k=void 0!==Z&&Z,z=a.indeterminateIcon,C=void 0===z?E:z,F=a.inputProps,P=a.size,y=void 0===P?"medium":P,N=(0,i.Z)(a,j),T=k?C:x,w=k?C:u,B=(0,r.Z)({},a,{color:f,indeterminate:k,size:y}),M=function(e){var t=e.classes,n=e.indeterminate,o=e.color,i={root:["root",n&&"indeterminate","color".concat((0,p.Z)(o))]},c=(0,s.Z)(i,b,t);return(0,r.Z)({},t,c)}(B);return(0,d.jsx)(g,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":k},F),icon:c.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:y}),checkedIcon:c.cloneElement(w,{fontSize:null!=(o=w.props.fontSize)?o:y}),ownerState:B,ref:t},N,{classes:M}))}))},26769:function(e,t,n){var o=n(39066),i=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&r(e)&&"[object String]"==o(e)}}}]); -//# sourceMappingURL=1440.146b37eb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1440.74dce637.chunk.js b/portal-ui/build/static/js/1440.74dce637.chunk.js new file mode 100644 index 000000000..6ee5be8f0 --- /dev/null +++ b/portal-ui/build/static/js/1440.74dce637.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1440],{23804:function(e,t,n){"use strict";n(72791);var o=n(11135),i=n(25787),r=n(61889),c=n(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,n=e.iconComponent,o=e.title,i=e.help;return(0,c.jsx)("div",{className:t.root,children:(0,c.jsxs)(r.ZP,{container:!0,children:[(0,c.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,o]}),(0,c.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},25702:function(e,t,n){"use strict";n.r(t);var o=n(29439),i=n(1413),r=n(72791),c=n(60364),s=n(11135),a=n(25787),l=n(26181),u=n.n(l),d=n(61889),f=n(47919),m=n(86856),h=n(42649),p=n(23814),v=n(92983),x=n(81207),Z=n(23804),b=n(60680),k=n(38442),j=n(56087),g=n(75578),S=n(40603),I=n(80184),E=(0,g.Z)(r.lazy((function(){return n.e(455).then(n.bind(n,80455))}))),z=(0,g.Z)(r.lazy((function(){return Promise.all([n.e(3801),n.e(1918),n.e(6172),n.e(2661)]).then(n.bind(n,82661))}))),C=(0,c.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:h.Ih});t.default=(0,a.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(C((function(e){var t=e.classes,n=e.match,i=e.setErrorSnackMessage,c=e.loadingBucket,s=(e.bucketInfo,(0,r.useState)(!1)),a=(0,o.Z)(s,2),l=a[0],h=a[1],p=(0,r.useState)(!0),g=(0,o.Z)(p,2),C=g[0],F=g[1],P=(0,r.useState)([]),y=(0,o.Z)(P,2),N=y[0],T=y[1],w=(0,r.useState)(!1),B=(0,o.Z)(w,2),M=B[0],O=B[1],_=(0,r.useState)(null),A=(0,o.Z)(_,2),H=A[0],R=A[1],V=n.params.bucketName,D=(0,k.F)(V,[j.Ft.S3_GET_BUCKET_NOTIFICATIONS]);(0,r.useEffect)((function(){c&&F(!0)}),[c,F]),(0,r.useEffect)((function(){C&&(D?x.Z.invoke("GET","/api/v1/buckets/".concat(V,"/events")).then((function(e){var t=u()(e,"events",[]);F(!1),T(t||[])})).catch((function(e){F(!1),i(e)})):F(!1))}),[C,i,V,D]);var K=[{type:"delete",onClick:function(e){O(!0),R(e)}}];return(0,I.jsxs)(r.Fragment,{children:[M&&(0,I.jsx)(E,{deleteOpen:M,selectedBucket:V,bucketEvent:H,closeDeleteModalAndRefresh:function(e){O(!1),e&&F(!0)}}),l&&(0,I.jsx)(z,{open:l,selectedBucket:V,closeModalAndRefresh:function(){h(!1),F(!0)}}),(0,I.jsxs)(d.ZP,{container:!0,children:[(0,I.jsxs)(d.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,I.jsx)(b.Z,{children:"Events"}),(0,I.jsx)(k.s,{scopes:[j.Ft.S3_PUT_BUCKET_NOTIFICATIONS,j.Ft.ADMIN_SERVER_INFO],resource:V,matchAll:!0,errorProps:{disabled:!0},children:(0,I.jsx)(S.Z,{tooltip:"Subscribe to Event",onClick:function(){h(!0)},text:"Subscribe to Event",icon:(0,I.jsx)(f.Z,{}),color:"primary",variant:"contained"})})]}),(0,I.jsx)(d.ZP,{item:!0,xs:12,children:(0,I.jsx)(k.s,{scopes:[j.Ft.S3_GET_BUCKET_NOTIFICATIONS],resource:V,errorProps:{disabled:!0},children:(0,I.jsx)(v.Z,{itemActions:K,columns:[{label:"SQS",elementKey:"arn"},{label:"Events",elementKey:"events",renderFunction:function(e){return(0,I.jsx)(r.Fragment,{children:e.join(", ")})}},{label:"Prefix",elementKey:"prefix"},{label:"Suffix",elementKey:"suffix"}],isLoading:C,records:N,entityName:"Events",idField:"id",customPaperHeight:t.twHeight})})}),!C&&(0,I.jsx)(d.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{title:"Lambda Notifications",iconComponent:(0,I.jsx)(m.Z,{}),help:(0,I.jsxs)(r.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,I.jsx)("br",{}),(0,I.jsx)("br",{}),"You can learn more at our"," ",(0,I.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]})]})})))},60680:function(e,t,n){"use strict";n(72791);var o=n(11135),i=n(25787),r=n(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,r.jsx)("h1",{className:t.root,children:n})}))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=c},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=c},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),c=(0,i.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 z}});var o=n(4942),i=n(63366),r=n(87462),c=n(72791),s=n(90767),a=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"),m=(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"),h=(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),v=n(93736),x=n(47630),Z=n(95159);function b(e){return(0,Z.Z)("MuiCheckbox",e)}var k=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],g=(0,x.ZP)(l.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,p.Z)(n.color))]]}})((function(e){var t,n=e.theme,i=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,a.Fq)("default"===i.color?n.palette.action.active:n.palette[i.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(t={},(0,o.Z)(t,"&.".concat(k.checked,", &.").concat(k.indeterminate),{color:n.palette[i.color].main}),(0,o.Z)(t,"&.".concat(k.disabled),{color:n.palette.action.disabled}),t))})),S=(0,d.jsx)(m,{}),I=(0,d.jsx)(f,{}),E=(0,d.jsx)(h,{}),z=c.forwardRef((function(e,t){var n,o,a=(0,v.Z)({props:e,name:"MuiCheckbox"}),l=a.checkedIcon,u=void 0===l?S:l,f=a.color,m=void 0===f?"primary":f,h=a.icon,x=void 0===h?I:h,Z=a.indeterminate,k=void 0!==Z&&Z,z=a.indeterminateIcon,C=void 0===z?E:z,F=a.inputProps,P=a.size,y=void 0===P?"medium":P,N=(0,i.Z)(a,j),T=k?C:x,w=k?C:u,B=(0,r.Z)({},a,{color:m,indeterminate:k,size:y}),M=function(e){var t=e.classes,n=e.indeterminate,o=e.color,i={root:["root",n&&"indeterminate","color".concat((0,p.Z)(o))]},c=(0,s.Z)(i,b,t);return(0,r.Z)({},t,c)}(B);return(0,d.jsx)(g,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":k},F),icon:c.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:y}),checkedIcon:c.cloneElement(w,{fontSize:null!=(o=w.props.fontSize)?o:y}),ownerState:B,ref:t},N,{classes:M}))}))},26769:function(e,t,n){var o=n(39066),i=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&r(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=1440.74dce637.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1440.146b37eb.chunk.js.map b/portal-ui/build/static/js/1440.74dce637.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/1440.146b37eb.chunk.js.map rename to portal-ui/build/static/js/1440.74dce637.chunk.js.map index dbe130e60..d13afd032 100644 --- a/portal-ui/build/static/js/1440.146b37eb.chunk.js.map +++ b/portal-ui/build/static/js/1440.74dce637.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1440.146b37eb.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,6RCpBLK,GAAcC,EAAAA,EAAAA,GAAaC,EAAAA,MAAW,kBAAM,sEAC5CC,GAAWF,EAAAA,EAAAA,GAAaC,EAAAA,MAAW,kBAAM,2FAiMzCE,GAAYC,EAAAA,EAAAA,KAND,SAACC,GAAD,MAAsB,CACrCC,QAASD,EAAME,QAAQD,QACvBE,cAAeH,EAAMI,QAAQC,cAAcF,cAC3CG,WAAYN,EAAMI,QAAQC,cAAcC,cAGN,CAClCC,qBAAAA,EAAAA,KAGF,WAAe1C,EAAAA,EAAAA,IAnMA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACRyC,EAAAA,IACAC,EAAAA,IAFO,IAGVC,SAAU,CACRC,UAAW,UA8LjB,CAAkCb,GAlLR,SAAC,GAMA,IALzBZ,EAKwB,EALxBA,QACA0B,EAIwB,EAJxBA,MACAL,EAGwB,EAHxBA,qBACAJ,EAEwB,EAFxBA,cAGA,GADwB,EADxBG,YAEoDO,EAAAA,EAAAA,WAAkB,IAAtE,eAAOC,EAAP,KAA2BC,EAA3B,KACA,GAA0CF,EAAAA,EAAAA,WAAkB,GAA5D,eAAOG,EAAP,KAAsBC,EAAtB,KACA,GAA8BJ,EAAAA,EAAAA,UAAwB,IAAtD,eAAOK,EAAP,KAAgBC,EAAhB,KACA,GAAoCN,EAAAA,EAAAA,WAAkB,GAAtD,eAAOO,EAAP,KAAmBC,EAAnB,KACA,GAA0CR,EAAAA,EAAAA,UAA6B,MAAvE,eAAOS,EAAP,KAAsBC,EAAtB,KAEMC,EAAaZ,EAAMa,OAAN,WAEbC,GAAgBC,EAAAA,EAAAA,GAAcH,EAAY,CAC9CI,EAAAA,GAAAA,+BAGFC,EAAAA,EAAAA,YAAU,WACJ1B,GACFc,GAAiB,KAElB,CAACd,EAAec,KAEnBY,EAAAA,EAAAA,YAAU,WACJb,IACEU,EACFI,EAAAA,EAAAA,OACU,MADV,0BACoCN,EADpC,YAEGO,MAAK,SAACC,GACL,IAAMC,EAASC,GAAAA,CAAIF,EAAK,SAAU,IAClCf,GAAiB,GACjBE,EAAWc,GAAU,OAEtBE,OAAM,SAACC,GACNnB,GAAiB,GACjBV,EAAqB6B,MAGzBnB,GAAiB,MAGpB,CAACD,EAAeT,EAAsBiB,EAAYE,IAErD,IAqBMW,EAAe,CAAC,CAAEC,KAAM,SAAUC,QAjBb,SAACC,GAC1BnB,GAAc,GACdE,EAAiBiB,MAiBnB,OACE,UAAC,EAAAC,SAAD,WACGrB,IACC,SAAC1B,EAAD,CACE0B,WAAYA,EACZsB,eAAgBlB,EAChBmB,YAAarB,EACbsB,2BAhB2B,SAACC,GAClCxB,GAAc,GACVwB,GACF5B,GAAiB,MAgBhBH,IACC,SAACjB,EAAD,CACEiD,KAAMhC,EACN4B,eAAgBlB,EAChBuB,qBA5BwB,WAC9BhC,GAAsB,GACtBE,GAAiB,OA8Bf,UAAC,KAAD,CAAM1B,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQuB,YAAtC,WACE,SAAC,IAAD,sBACA,SAAC,IAAD,CACEuC,OAAQ,CACNpB,EAAAA,GAAAA,4BACAA,EAAAA,GAAAA,mBAEFqB,SAAUzB,EACV0B,UAAQ,EACRC,WAAY,CAAEC,UAAU,GAP1B,UASE,SAAC,IAAD,CACEC,QAAS,qBACTd,QAAS,WACPxB,GAAsB,IAExBuC,KAAM,qBACNC,MAAM,SAAC,IAAD,IACNC,MAAM,UACNC,QAAS,oBAIf,SAAC,KAAD,CAAMjE,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEuD,OAAQ,CAACpB,EAAAA,GAAAA,6BACTqB,SAAUzB,EACV2B,WAAY,CAAEC,UAAU,GAH1B,UAKE,SAAC,IAAD,CACEM,YAAarB,EACbsB,QAAS,CACP,CAAEC,MAAO,MAAOC,WAAY,OAC5B,CACED,MAAO,SACPC,WAAY,SACZC,eA9EM,SAAC7B,GACrB,OAAO,SAAC,EAAAQ,SAAD,UAAWR,EAAO8B,KAAK,UA+ElB,CAAEH,MAAO,SAAUC,WAAY,UAC/B,CAAED,MAAO,SAAUC,WAAY,WAEjCG,UAAWhD,EACXE,QAASA,EACT+C,WAAW,SACXC,QAAQ,KACRC,kBAAmBjF,EAAQwB,gBAI/BM,IACA,SAAC,KAAD,CAAMxB,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEL,MAAO,uBACPD,eAAe,SAAC,IAAD,IACfE,MACE,UAAC,EAAAoD,SAAD,sPAKE,mBACA,kBANF,4BAO4B,KAC1B,cACE2B,KAAK,wGACLC,OAAO,SACPC,IAAI,aAHN,2BARF,sB,iFCzKhB,KAAezG,EAAAA,EAAAA,IAlBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJuG,QAAS,EACTC,OAAQ,EACR/F,SAAU,aAahB,EAJmB,SAAC,GAAwC,IAAtCS,EAAqC,EAArCA,QAASuF,EAA4B,EAA5BA,SAC7B,OAAO,eAAInF,UAAWJ,EAAQlB,KAAvB,SAA8ByG,Q,uCCnCnCC,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,GAC1DE,KAAM,cACNV,KAAM,OACNW,kBAAmB,SAACC,EAAOC,GACzB,IACEC,EACEF,EADFE,WAEF,MAAO,CAACD,EAAOnI,KAAMoI,EAAWC,eAAiBF,EAAOE,cAAoC,YAArBD,EAAW5C,OAAuB2C,EAAO,QAAD,QAASG,EAAAA,EAAAA,GAAWF,EAAW5C,YAR7HmC,EAUlB,kBACD7H,EADC,EACDA,MACAsI,EAFC,EAEDA,WAFC,OAGGG,EAAAA,EAAAA,GAAS,CACb/C,MAAO1F,EAAM0I,QAAQlD,KAAKmD,YACxBL,EAAWM,eAAiB,CAC9B,UAAW,CACTvI,iBAAiBwI,EAAAA,EAAAA,IAA2B,YAArBP,EAAW5C,MAAsB1F,EAAM0I,QAAQI,OAAOC,OAAS/I,EAAM0I,QAAQJ,EAAW5C,OAAOsD,KAAMhJ,EAAM0I,QAAQI,OAAOG,cAEjJ,uBAAwB,CACtB5I,gBAAiB,iBAGC,YAArBiI,EAAW5C,QAAX,2BACKwD,EAAAA,QADL,eACmCA,EAAAA,eAAkC,CACpExD,MAAO1F,EAAM0I,QAAQJ,EAAW5C,OAAOsD,QAFxC,qBAIKE,EAAAA,UAA6B,CACjCxD,MAAO1F,EAAM0I,QAAQI,OAAOxD,WAL7B,OASG6D,GAAkC7B,EAAAA,EAAAA,KAAK8B,EAAc,IAErDC,GAA2B/B,EAAAA,EAAAA,KAAKgC,EAA0B,IAE1DC,GAAwCjC,EAAAA,EAAAA,KAAKkC,EAA2B,IAoK9E,EAlK8B1H,EAAAA,YAAiB,SAAkB2H,EAASC,GACxE,IAAIC,EAAsBC,EAEpBxB,GAAQyB,EAAAA,EAAAA,GAAc,CAC1BzB,MAAOqB,EACPvB,KAAM,gBAGR,EAQIE,EAPF0B,YAAAA,OADF,MACgBX,EADhB,IAQIf,EANF1C,MAAAA,OAFF,MAEU,UAFV,IAQI0C,EALF3C,KAAMsE,OAHR,MAGmBV,EAHnB,IAQIjB,EAJFG,cAAAA,OAJF,WAQIH,EAHF4B,kBAAmBC,OALrB,MAK6CV,EAL7C,EAMEW,EAEE9B,EAFF8B,WANF,EAQI9B,EADF+B,KAAAA,OAPF,MAOS,SAPT,EASMC,GAAQC,EAAAA,EAAAA,GAA8BjC,EAAOT,GAE7ClC,EAAO8C,EAAgB0B,EAAwBF,EAC/CC,EAAoBzB,EAAgB0B,EAAwBH,EAE5DxB,GAAaG,EAAAA,EAAAA,GAAS,GAAIL,EAAO,CACrC1C,MAAAA,EACA6C,cAAAA,EACA4B,KAAAA,IAGI/I,EA/EkB,SAAAkH,GACxB,IACElH,EAGEkH,EAHFlH,QACAmH,EAEED,EAFFC,cACA7C,EACE4C,EADF5C,MAEI4E,EAAQ,CACZpK,KAAM,CAAC,OAAQqI,GAAiB,gBAA1B,gBAAmDC,EAAAA,EAAAA,GAAW9C,MAEhE6E,GAAkBC,EAAAA,EAAAA,GAAeF,EAAO/C,EAAyBnG,GACvE,OAAOqH,EAAAA,EAAAA,GAAS,GAAIrH,EAASmJ,GAqEbE,CAAkBnC,GAClC,OAAoBhB,EAAAA,EAAAA,KAAKM,GAAca,EAAAA,EAAAA,GAAS,CAC9CjE,KAAM,WACN0F,YAAYzB,EAAAA,EAAAA,GAAS,CACnB,qBAAsBF,GACrB2B,GACHzE,KAAmB3D,EAAAA,aAAmB2D,EAAM,CAC1C9E,SAA0D,OAA/CgJ,EAAuBlE,EAAK2C,MAAMzH,UAAoBgJ,EAAuBQ,IAE1FL,YAA0BhI,EAAAA,aAAmBkI,EAAmB,CAC9DrJ,SAAwE,OAA7DiJ,EAAwBI,EAAkB5B,MAAMzH,UAAoBiJ,EAAwBO,IAEzG7B,WAAYA,EACZoB,IAAKA,GACJU,EAAO,CACRhJ,QAASA,S,sBChHb,IAAIsJ,EAAa7D,EAAQ,OACrB8D,EAAU9D,EAAQ,OAClB+D,EAAe/D,EAAQ,OA2B3BgE,EAAO/D,QALP,SAAkBgE,GAChB,MAAuB,iBAATA,IACVH,EAAQG,IAAUF,EAAaE,IArBrB,mBAqB+BJ,EAAWI","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/BucketEventsPanel.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/@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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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, 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 Grid from \"@mui/material/Grid\";\nimport AddIcon from \"../../../../icons/AddIcon\";\nimport LambdaIcon from \"../../../../icons/LambdaIcon\";\nimport { BucketEvent, BucketEventList, BucketInfo } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../../common/api\";\n\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\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\n\nconst DeleteEvent = withSuspense(React.lazy(() => import(\"./DeleteEvent\")));\nconst AddEvent = withSuspense(React.lazy(() => import(\"./AddEvent\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\ninterface IBucketEventsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketEventsPanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IBucketEventsProps) => {\n const [addEventScreenOpen, setAddEventScreenOpen] = useState(false);\n const [loadingEvents, setLoadingEvents] = useState(true);\n const [records, setRecords] = useState([]);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedEvent, setSelectedEvent] = useState(null);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayEvents = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingEvents(true);\n }\n }, [loadingBucket, setLoadingEvents]);\n\n useEffect(() => {\n if (loadingEvents) {\n if (displayEvents) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/events`)\n .then((res: BucketEventList) => {\n const events = get(res, \"events\", []);\n setLoadingEvents(false);\n setRecords(events || []);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingEvents(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoadingEvents(false);\n }\n }\n }, [loadingEvents, setErrorSnackMessage, bucketName, displayEvents]);\n\n const eventsDisplay = (events: string[]) => {\n return {events.join(\", \")};\n };\n\n const confirmDeleteEvent = (evnt: BucketEvent) => {\n setDeleteOpen(true);\n setSelectedEvent(evnt);\n };\n\n const closeAddEventAndRefresh = () => {\n setAddEventScreenOpen(false);\n setLoadingEvents(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n setLoadingEvents(true);\n }\n };\n\n const tableActions = [{ type: \"delete\", onClick: confirmDeleteEvent }];\n\n return (\n \n {deleteOpen && (\n \n )}\n {addEventScreenOpen && (\n \n )}\n\n \n \n Events\n \n {\n setAddEventScreenOpen(true);\n }}\n text={\"Subscribe to Event\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n {!loadingEvents && (\n \n }\n help={\n \n MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain object\n or bucket events. MinIO supports bucket and object-level S3\n events similar to the Amazon S3 Event Notifications.\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(BucketEventsPanel));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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;","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":["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","DeleteEvent","withSuspense","React","AddEvent","connector","connect","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","searchField","actionsTray","twHeight","minHeight","match","useState","addEventScreenOpen","setAddEventScreenOpen","loadingEvents","setLoadingEvents","records","setRecords","deleteOpen","setDeleteOpen","selectedEvent","setSelectedEvent","bucketName","params","displayEvents","hasPermission","IAM_SCOPES","useEffect","api","then","res","events","get","catch","err","tableActions","type","onClick","evnt","Fragment","selectedBucket","bucketEvent","closeDeleteModalAndRefresh","refresh","open","closeModalAndRefresh","scopes","resource","matchAll","errorProps","disabled","tooltip","text","icon","color","variant","itemActions","columns","label","elementKey","renderFunction","join","isLoading","entityName","idField","customPaperHeight","href","target","rel","padding","margin","children","_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","indeterminate","capitalize","_extends","palette","secondary","disableRipple","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module","value"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1440.74dce637.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/BucketEventsPanel.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/@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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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, 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 Grid from \"@mui/material/Grid\";\nimport AddIcon from \"../../../../icons/AddIcon\";\nimport LambdaIcon from \"../../../../icons/LambdaIcon\";\nimport { BucketEvent, BucketEventList, BucketInfo } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../../common/api\";\n\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\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\n\nconst DeleteEvent = withSuspense(React.lazy(() => import(\"./DeleteEvent\")));\nconst AddEvent = withSuspense(React.lazy(() => import(\"./AddEvent\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\ninterface IBucketEventsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketEventsPanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IBucketEventsProps) => {\n const [addEventScreenOpen, setAddEventScreenOpen] = useState(false);\n const [loadingEvents, setLoadingEvents] = useState(true);\n const [records, setRecords] = useState([]);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedEvent, setSelectedEvent] = useState(null);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayEvents = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingEvents(true);\n }\n }, [loadingBucket, setLoadingEvents]);\n\n useEffect(() => {\n if (loadingEvents) {\n if (displayEvents) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/events`)\n .then((res: BucketEventList) => {\n const events = get(res, \"events\", []);\n setLoadingEvents(false);\n setRecords(events || []);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingEvents(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoadingEvents(false);\n }\n }\n }, [loadingEvents, setErrorSnackMessage, bucketName, displayEvents]);\n\n const eventsDisplay = (events: string[]) => {\n return {events.join(\", \")};\n };\n\n const confirmDeleteEvent = (evnt: BucketEvent) => {\n setDeleteOpen(true);\n setSelectedEvent(evnt);\n };\n\n const closeAddEventAndRefresh = () => {\n setAddEventScreenOpen(false);\n setLoadingEvents(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n setLoadingEvents(true);\n }\n };\n\n const tableActions = [{ type: \"delete\", onClick: confirmDeleteEvent }];\n\n return (\n \n {deleteOpen && (\n \n )}\n {addEventScreenOpen && (\n \n )}\n\n \n \n Events\n \n {\n setAddEventScreenOpen(true);\n }}\n text={\"Subscribe to Event\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n {!loadingEvents && (\n \n }\n help={\n \n MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain object\n or bucket events. MinIO supports bucket and object-level S3\n events similar to the Amazon S3 Event Notifications.\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(BucketEventsPanel));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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;","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":["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","DeleteEvent","withSuspense","React","AddEvent","connector","connect","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","searchField","actionsTray","twHeight","minHeight","match","useState","addEventScreenOpen","setAddEventScreenOpen","loadingEvents","setLoadingEvents","records","setRecords","deleteOpen","setDeleteOpen","selectedEvent","setSelectedEvent","bucketName","params","displayEvents","hasPermission","IAM_SCOPES","useEffect","api","then","res","events","get","catch","err","tableActions","type","onClick","evnt","Fragment","selectedBucket","bucketEvent","closeDeleteModalAndRefresh","refresh","open","closeModalAndRefresh","scopes","resource","matchAll","errorProps","disabled","tooltip","text","icon","color","variant","itemActions","columns","label","elementKey","renderFunction","join","isLoading","entityName","idField","customPaperHeight","href","target","rel","padding","margin","children","_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","indeterminate","capitalize","_extends","palette","secondary","disableRipple","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module","value"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1501.b5696037.chunk.js b/portal-ui/build/static/js/1501.b5696037.chunk.js new file mode 100644 index 000000000..725b4f919 --- /dev/null +++ b/portal-ui/build/static/js/1501.b5696037.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1501],{9505:function(e,n,t){"use strict";var o=t(29439),a=t(72791),r=t(81207);n.Z=function(e,n){var t=(0,a.useState)(!1),i=(0,o.Z)(t,2),s=i[0],c=i[1];return[s,function(t,o,a){c(!0),r.Z.invoke(t,o,a).then((function(n){c(!1),e(n)})).catch((function(e){c(!1),n(e)}))}]}},27331:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return E}});var o=t(29439),a=t(1413),r=t(72791),i=t(60364),s=t(11135),c=t(25787),l=t(23814),d=t(45248),u=t(42649),p=t(81207),m=t(92983),v=t(51691),h=t(21435),f=t(61889),Z=t(9505),x=t(2148),b=t(93656),g=t(80184),j=(0,i.$j)(null,{setErrorSnackMessage:u.Ih})((function(e){var n=e.deleteOpen,t=e.selectedPod,a=e.closeDeleteModalAndRefresh,i=e.setErrorSnackMessage,s=(0,r.useState)(""),c=(0,o.Z)(s,2),l=c[0],d=c[1],u=(0,Z.Z)((function(){return a(!0)}),(function(e){return i(e)})),p=(0,o.Z)(u,2),m=p[0],j=p[1];return(0,g.jsx)(x.Z,{title:"Delete Pod",confirmText:"Delete",isOpen:n,titleIcon:(0,g.jsx)(b.Nv,{}),isLoading:m,onConfirm:function(){l===t.name?j("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 a(!1)},confirmButtonProps:{disabled:l!==t.name||m},confirmationContent:(0,g.jsxs)(v.Z,{children:["To continue please type ",(0,g.jsx)("b",{children:t.name})," in the box.",(0,g.jsx)(f.ZP,{item:!0,xs:12,children:(0,g.jsx)(h.Z,{id:"retype-pod",name:"retype-pod",onChange:function(e){d(e.target.value)},label:"",value:l})})]})})})),P=t(27391),S=t(63466),k=t(74900),y=(0,i.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),{setErrorSnackMessage:u.Ih}),E=(0,c.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},l.oZ),l.VX),(0,l.Bz)(e.spacing(4))))}))(y((function(e){var n=e.classes,t=e.match,a=e.history,i=e.loadingTenant,s=(0,r.useState)([]),c=(0,o.Z)(s,2),l=c[0],v=c[1],h=(0,r.useState)(!0),Z=(0,o.Z)(h,2),x=Z[0],b=Z[1],y=(0,r.useState)(!1),E=(0,o.Z)(y,2),z=E[0],w=E[1],C=(0,r.useState)(null),I=(0,o.Z)(C,2),M=I[0],L=I[1],N=(0,r.useState)(""),T=(0,o.Z)(N,2),A=T[0],R=T[1],D=t.params.tenantName,H=t.params.tenantNamespace,V=l.filter((function(e){return e.name.toLowerCase().includes(A.toLowerCase())})),F=[{type:"view",onClick:function(e){a.push("/namespaces/".concat(H,"/tenants/").concat(D,"/pods/").concat(e.name))}},{type:"delete",onClick:function(e){e.tenant=D,e.namespace=H,L(e),w(!0)}}];return(0,r.useEffect)((function(){i&&b(!0)}),[i]),(0,r.useEffect)((function(){x&&p.Z.invoke("GET","/api/v1/namespaces/".concat(H,"/tenants/").concat(D,"/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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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","\"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":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","connect","setErrorSnackMessage","deleteOpen","selectedPod","closeDeleteModalAndRefresh","retypePod","setRetypePod","useApi","deleteLoading","invokeDeleteApi","ConfirmDialog","title","confirmText","isOpen","titleIcon","onConfirm","name","namespace","tenant","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","DialogContentText","Grid","item","xs","InputBoxWrapper","id","onChange","event","target","value","label","connector","state","loadingTenant","tenants","tenantDetails","withStyles","theme","createStyles","tenantDetailsStyles","tableStyles","containerForHeader","spacing","classes","match","history","pods","setPods","loadingPods","setLoadingPods","setDeleteOpen","setSelectedPod","filter","setFilter","tenantName","params","tenantNamespace","filteredRecords","elementItem","toLowerCase","includes","podTableActions","type","onClick","pod","push","useEffect","result","i","length","currentTime","Date","now","time","niceDays","parseInt","timeCreated","toString","Fragment","reloadData","className","sectionTitle","actionsTray","TextField","placeholder","searchField","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","e","variant","tableBlock","TableWrapper","columns","elementKey","width","renderFunction","input","records","itemActions","entityName","idField","_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","root","indeterminate","color","capitalize","_extends","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","fontSize","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","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/1520.5385d6f6.chunk.js b/portal-ui/build/static/js/1520.5385d6f6.chunk.js deleted file mode 100644 index 3fe9e02d1..000000000 --- a/portal-ui/build/static/js/1520.5385d6f6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1520],{85523:function(e,o,r){r.d(o,{Z:function(){return C}});var n=r(4942),t=r(63366),a=r(87462),l=r(72791),i=r(28182),c=r(90767),s=r(52930),d=r(20890),u=r(14036),f=r(47630),m=r(93736),p=r(95159);function Z(e){return(0,p.Z)("MuiFormControlLabel",e)}var v=(0,r(30208).Z)("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error"]),b=r(76147),h=r(80184),g=["checked","className","componentsProps","control","disabled","disableTypography","inputRef","label","labelPlacement","name","onChange","value"],w=(0,f.ZP)("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:function(e,o){var r=e.ownerState;return[(0,n.Z)({},"& .".concat(v.label),o.label),o.root,o["labelPlacement".concat((0,u.Z)(r.labelPlacement))]]}})((function(e){var o=e.theme,r=e.ownerState;return(0,a.Z)((0,n.Z)({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16},"&.".concat(v.disabled),{cursor:"default"}),"start"===r.labelPlacement&&{flexDirection:"row-reverse",marginLeft:16,marginRight:-11},"top"===r.labelPlacement&&{flexDirection:"column-reverse",marginLeft:16},"bottom"===r.labelPlacement&&{flexDirection:"column",marginLeft:16},(0,n.Z)({},"& .".concat(v.label),(0,n.Z)({},"&.".concat(v.disabled),{color:o.palette.text.disabled})))})),C=l.forwardRef((function(e,o){var r=(0,m.Z)({props:e,name:"MuiFormControlLabel"}),n=r.className,f=r.componentsProps,p=void 0===f?{}:f,v=r.control,C=r.disabled,S=r.disableTypography,x=r.label,y=r.labelPlacement,k=void 0===y?"end":y,P=(0,t.Z)(r,g),R=(0,s.Z)(),j=C;"undefined"===typeof j&&"undefined"!==typeof v.props.disabled&&(j=v.props.disabled),"undefined"===typeof j&&R&&(j=R.disabled);var M={disabled:j};["checked","name","onChange","value","inputRef"].forEach((function(e){"undefined"===typeof v.props[e]&&"undefined"!==typeof r[e]&&(M[e]=r[e])}));var F=(0,b.Z)({props:r,muiFormControl:R,states:["error"]}),z=(0,a.Z)({},r,{disabled:j,label:x,labelPlacement:k,error:F.error}),N=function(e){var o=e.classes,r=e.disabled,n=e.labelPlacement,t=e.error,a={root:["root",r&&"disabled","labelPlacement".concat((0,u.Z)(n)),t&&"error"],label:["label",r&&"disabled"]};return(0,c.Z)(a,Z,o)}(z);return(0,h.jsxs)(w,(0,a.Z)({className:(0,i.Z)(N.root,n),ownerState:z,ref:o},P,{children:[l.cloneElement(v,M),x.type===d.Z||S?x:(0,h.jsx)(d.Z,(0,a.Z)({component:"span",className:N.label},p.typography,{children:x}))]}))}))},61419:function(e,o,r){r.d(o,{Z:function(){return F}});var n=r(4942),t=r(63366),a=r(87462),l=r(72791),i=r(90767),c=r(12065),s=r(97278),d=r(93736),u=r(76189),f=r(80184),m=(0,u.Z)((0,f.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),p=(0,u.Z)((0,f.jsx)("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),Z=r(47630),v=(0,Z.ZP)("span")({position:"relative",display:"flex"}),b=(0,Z.ZP)(m)({transform:"scale(1)"}),h=(0,Z.ZP)(p)((function(e){var o=e.theme,r=e.ownerState;return(0,a.Z)({left:0,position:"absolute",transform:"scale(0)",transition:o.transitions.create("transform",{easing:o.transitions.easing.easeIn,duration:o.transitions.duration.shortest})},r.checked&&{transform:"scale(1)",transition:o.transitions.create("transform",{easing:o.transitions.easing.easeOut,duration:o.transitions.duration.shortest})})}));var g=function(e){var o=e.checked,r=void 0!==o&&o,n=e.classes,t=void 0===n?{}:n,l=e.fontSize,i=(0,a.Z)({},e,{checked:r});return(0,f.jsxs)(v,{className:t.root,ownerState:i,children:[(0,f.jsx)(b,{fontSize:l,className:t.background,ownerState:i}),(0,f.jsx)(h,{fontSize:l,className:t.dot,ownerState:i})]})},w=r(14036),C=r(31260),S=r(18672);var x=r(95159);function y(e){return(0,x.Z)("MuiRadio",e)}var k=(0,r(30208).Z)("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary"]),P=["checked","checkedIcon","color","icon","name","onChange","size"],R=(0,Z.ZP)(s.Z,{shouldForwardProp:function(e){return(0,Z.FO)(e)||"classes"===e},name:"MuiRadio",slot:"Root",overridesResolver:function(e,o){var r=e.ownerState;return[o.root,o["color".concat((0,w.Z)(r.color))]]}})((function(e){var o=e.theme,r=e.ownerState;return(0,a.Z)({color:o.palette.text.secondary,"&:hover":{backgroundColor:(0,c.Fq)("default"===r.color?o.palette.action.active:o.palette[r.color].main,o.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(0,n.Z)({},"&.".concat(k.checked),{color:o.palette[r.color].main}),(0,n.Z)({},"&.".concat(k.disabled),{color:o.palette.action.disabled}))}));var j=(0,f.jsx)(g,{checked:!0}),M=(0,f.jsx)(g,{}),F=l.forwardRef((function(e,o){var r,n,c,s,u=(0,d.Z)({props:e,name:"MuiRadio"}),m=u.checked,p=u.checkedIcon,Z=void 0===p?j:p,v=u.color,b=void 0===v?"primary":v,h=u.icon,g=void 0===h?M:h,x=u.name,k=u.onChange,F=u.size,z=void 0===F?"medium":F,N=(0,t.Z)(u,P),L=(0,a.Z)({},u,{color:b,size:z}),I=function(e){var o=e.classes,r=e.color,n={root:["root","color".concat((0,w.Z)(r))]};return(0,a.Z)({},o,(0,i.Z)(n,y,o))}(L),D=l.useContext(S.Z),G=m,E=(0,C.Z)(k,D&&D.onChange),T=x;return D&&("undefined"===typeof G&&(c=D.value,G="object"===typeof(s=u.value)&&null!==s?c===s:String(c)===String(s)),"undefined"===typeof T&&(T=D.name)),(0,f.jsx)(R,(0,a.Z)({type:"radio",icon:l.cloneElement(g,{fontSize:null!=(r=M.props.fontSize)?r:z}),checkedIcon:l.cloneElement(Z,{fontSize:null!=(n=j.props.fontSize)?n:z}),ownerState:L,classes:I,name:T,checked:G,onChange:E,ref:o},N))}))},10765:function(e,o,r){r.d(o,{Z:function(){return y}});var n=r(29439),t=r(87462),a=r(63366),l=r(72791),i=r(28182),c=r(90767),s=r(47630),d=r(93736),u=r(95159);function f(e){return(0,u.Z)("MuiFormGroup",e)}(0,r(30208).Z)("MuiFormGroup",["root","row","error"]);var m=r(52930),p=r(76147),Z=r(80184),v=["className","row"],b=(0,s.ZP)("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:function(e,o){var r=e.ownerState;return[o.root,r.row&&o.row]}})((function(e){var o=e.ownerState;return(0,t.Z)({display:"flex",flexDirection:"column",flexWrap:"wrap"},o.row&&{flexDirection:"row"})})),h=l.forwardRef((function(e,o){var r=(0,d.Z)({props:e,name:"MuiFormGroup"}),n=r.className,l=r.row,s=void 0!==l&&l,u=(0,a.Z)(r,v),h=(0,m.Z)(),g=(0,p.Z)({props:r,muiFormControl:h,states:["error"]}),w=(0,t.Z)({},r,{row:s,error:g.error}),C=function(e){var o=e.classes,r={root:["root",e.row&&"row",e.error&&"error"]};return(0,c.Z)(r,f,o)}(w);return(0,Z.jsx)(b,(0,t.Z)({className:(0,i.Z)(C.root,n),ownerState:w,ref:o},u))})),g=r(42071),w=r(98278),C=r(18672),S=r(67384),x=["actions","children","defaultValue","name","onChange","value"],y=l.forwardRef((function(e,o){var r=e.actions,i=e.children,c=e.defaultValue,s=e.name,d=e.onChange,u=e.value,f=(0,a.Z)(e,x),m=l.useRef(null),p=(0,w.Z)({controlled:u,default:c,name:"RadioGroup"}),v=(0,n.Z)(p,2),b=v[0],y=v[1];l.useImperativeHandle(r,(function(){return{focus:function(){var e=m.current.querySelector("input:not(:disabled):checked");e||(e=m.current.querySelector("input:not(:disabled)")),e&&e.focus()}}}),[]);var k=(0,g.Z)(o,m),P=(0,S.Z)(s);return(0,Z.jsx)(C.Z.Provider,{value:{name:P,onChange:function(e){y(e.target.value),d&&d(e,e.target.value)},value:b},children:(0,Z.jsx)(h,(0,t.Z)({role:"radiogroup",ref:k},f,{children:i}))})}))},18672:function(e,o,r){var n=r(72791).createContext(void 0);o.Z=n}}]); -//# sourceMappingURL=1520.5385d6f6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1520.5385d6f6.chunk.js.map b/portal-ui/build/static/js/1520.5385d6f6.chunk.js.map deleted file mode 100644 index a355977a6..000000000 --- a/portal-ui/build/static/js/1520.5385d6f6.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1520.5385d6f6.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","../node_modules/@mui/material/Radio/RadioButtonIcon.js","../node_modules/@mui/material/Radio/radioClasses.js","../node_modules/@mui/material/Radio/Radio.js","../node_modules/@mui/material/RadioGroup/useRadioGroup.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/@mui/material/RadioGroup/RadioGroup.js","../node_modules/@mui/material/RadioGroup/RadioGroupContext.js"],"sourcesContent":["import { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);\nexport default formControlLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"className\", \"componentsProps\", \"control\", \"disabled\", \"disableTypography\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { useFormControl } from '../FormControl';\nimport Typography from '../Typography';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n labelPlacement,\n error\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error'],\n label: ['label', disabled && 'disabled']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\n\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.labelPlacement === 'start' && {\n flexDirection: 'row-reverse',\n marginLeft: 16,\n // used for row presentation of radio/checkbox\n marginRight: -11\n}, ownerState.labelPlacement === 'top' && {\n flexDirection: 'column-reverse',\n marginLeft: 16\n}, ownerState.labelPlacement === 'bottom' && {\n flexDirection: 'column',\n marginLeft: 16\n}, {\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n }\n}));\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\n\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n\n const {\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n label,\n labelPlacement = 'end'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n let disabled = disabledProp;\n\n if (typeof disabled === 'undefined' && typeof control.props.disabled !== 'undefined') {\n disabled = control.props.disabled;\n }\n\n if (typeof disabled === 'undefined' && muiFormControl) {\n disabled = muiFormControl.disabled;\n }\n\n const controlProps = {\n disabled\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n\n const ownerState = _extends({}, props, {\n disabled,\n label,\n labelPlacement,\n error: fcs.error\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), label.type === Typography || disableTypography ? label : /*#__PURE__*/_jsx(Typography, _extends({\n component: \"span\",\n className: classes.label\n }, componentsProps.typography, {\n children: label\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.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 appears selected.\n */\n checked: PropTypes.bool,\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 props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.number, PropTypes.string]).isRequired,\n\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n\n /**\n * @ignore\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} 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 * 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.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","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: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport RadioButtonUncheckedIcon from '../internal/svg-icons/RadioButtonUnchecked';\nimport RadioButtonCheckedIcon from '../internal/svg-icons/RadioButtonChecked';\nimport styled from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst RadioButtonIconRoot = styled('span')({\n position: 'relative',\n display: 'flex'\n});\nconst RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({\n // Scale applied to prevent dot misalignment in Safari\n transform: 'scale(1)'\n});\nconst RadioButtonIconDot = styled(RadioButtonCheckedIcon)(({\n theme,\n ownerState\n}) => _extends({\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n })\n}, ownerState.checked && {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n}));\n/**\n * @ignore - internal component.\n */\n\nfunction RadioButtonIcon(props) {\n const {\n checked = false,\n classes = {},\n fontSize\n } = props;\n\n const ownerState = _extends({}, props, {\n checked\n });\n\n return /*#__PURE__*/_jsxs(RadioButtonIconRoot, {\n className: classes.root,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(RadioButtonIconBackground, {\n fontSize: fontSize,\n className: classes.background,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(RadioButtonIconDot, {\n fontSize: fontSize,\n className: classes.dot,\n ownerState: ownerState\n })]\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? RadioButtonIcon.propTypes = {\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n */\n fontSize: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default RadioButtonIcon;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getRadioUtilityClass(slot) {\n return generateUtilityClass('MuiRadio', slot);\n}\nconst radioClasses = generateUtilityClasses('MuiRadio', ['root', 'checked', 'disabled', 'colorPrimary', 'colorSecondary']);\nexport default radioClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"checkedIcon\", \"color\", \"icon\", \"name\", \"onChange\", \"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 useThemeProps from '../styles/useThemeProps';\nimport RadioButtonIcon from './RadioButtonIcon';\nimport capitalize from '../utils/capitalize';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport useRadioGroup from '../RadioGroup/useRadioGroup';\nimport radioClasses, { getRadioUtilityClass } from './radioClasses';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`]\n };\n return _extends({}, classes, composeClasses(slots, getRadioUtilityClass, classes));\n};\n\nconst RadioRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiRadio',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary,\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 [`&.${radioClasses.checked}`]: {\n color: theme.palette[ownerState.color].main\n }\n}, {\n [`&.${radioClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nfunction areEqualValues(a, b) {\n if (typeof b === 'object' && b !== null) {\n return a === b;\n } // The value could be a number, the DOM will stringify it anyway.\n\n\n return String(a) === String(b);\n}\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {\n checked: true\n});\n\nconst defaultIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {});\n\nconst Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {\n var _defaultIcon$props$fo, _defaultCheckedIcon$p;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiRadio'\n });\n\n const {\n checked: checkedProp,\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon = defaultIcon,\n name: nameProp,\n onChange: onChangeProp,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n const radioGroup = useRadioGroup();\n let checked = checkedProp;\n const onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n let name = nameProp;\n\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = areEqualValues(radioGroup.value, props.value);\n }\n\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n\n return /*#__PURE__*/_jsx(RadioRoot, _extends({\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_defaultIcon$props$fo = defaultIcon.props.fontSize) != null ? _defaultIcon$props$fo : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(checkedIcon, {\n fontSize: (_defaultCheckedIcon$p = defaultCheckedIcon.props.fontSize) != null ? _defaultCheckedIcon$p : size\n }),\n ownerState: ownerState,\n classes: classes,\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Radio.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 * 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 * [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 * Name attribute of the `input` element.\n */\n name: PropTypes.string,\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 value by accessing `event.target.value` (string).\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 radio 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 */\n value: PropTypes.any\n} : void 0;\nexport default Radio;","import * as React from 'react';\nimport RadioGroupContext from './RadioGroupContext';\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getFormGroupUtilityClass(slot) {\n return generateUtilityClass('MuiFormGroup', slot);\n}\nconst formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);\nexport default formGroupClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"row\"];\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 { getFormGroupUtilityClass } from './formGroupClasses';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n row,\n error\n } = ownerState;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getFormGroupUtilityClass, classes);\n};\n\nconst FormGroupRoot = styled('div', {\n name: 'MuiFormGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.row && styles.row];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap'\n}, ownerState.row && {\n flexDirection: 'row'\n}));\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\n\nconst FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormGroup'\n });\n\n const {\n className,\n row = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n\n const ownerState = _extends({}, props, {\n row,\n error: fcs.error\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormGroupRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormGroup.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 * Display group of elements in a compact row.\n * @default false\n */\n row: 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 FormGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"children\", \"defaultValue\", \"name\", \"onChange\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport FormGroup from '../FormGroup';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport RadioGroupContext from './RadioGroupContext';\nimport useId from '../utils/useId';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n children,\n defaultValue,\n name: nameProp,\n onChange,\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const rootRef = React.useRef(null);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'RadioGroup'\n });\n React.useImperativeHandle(actions, () => ({\n focus: () => {\n let input = rootRef.current.querySelector('input:not(:disabled):checked');\n\n if (!input) {\n input = rootRef.current.querySelector('input:not(:disabled)');\n }\n\n if (input) {\n input.focus();\n }\n }\n }), []);\n const handleRef = useForkRef(ref, rootRef);\n\n const handleChange = event => {\n setValueState(event.target.value);\n\n if (onChange) {\n onChange(event, event.target.value);\n }\n };\n\n const name = useId(nameProp);\n return /*#__PURE__*/_jsx(RadioGroupContext.Provider, {\n value: {\n name,\n onChange: handleChange,\n value\n },\n children: /*#__PURE__*/_jsx(FormGroup, _extends({\n role: \"radiogroup\",\n ref: handleRef\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? RadioGroup.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 default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * The name used to reference the value of the control.\n * If you don't provide this prop, it falls back to a randomly generated name.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when a radio button is selected.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * @param {string} value The value of the selected radio button.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * Value of the selected radio button. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default RadioGroup;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst RadioGroupContext = /*#__PURE__*/React.createContext(undefined);\n\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\n\nexport default RadioGroupContext;"],"names":["getFormControlLabelUtilityClasses","slot","generateUtilityClass","generateUtilityClasses","_excluded","FormControlLabelRoot","styled","name","overridesResolver","props","styles","ownerState","formControlLabelClasses","label","root","capitalize","labelPlacement","theme","_extends","display","alignItems","cursor","verticalAlign","WebkitTapHighlightColor","marginLeft","marginRight","flexDirection","color","palette","text","disabled","React","inProps","ref","useThemeProps","className","componentsProps","control","disabledProp","disableTypography","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","controlProps","forEach","key","fcs","formControlState","states","error","classes","slots","composeClasses","useUtilityClasses","_jsxs","clsx","children","type","Typography","_jsx","component","typography","createSvgIcon","d","RadioButtonIconRoot","position","RadioButtonIconBackground","RadioButtonUncheckedIcon","transform","RadioButtonIconDot","RadioButtonCheckedIcon","left","transition","transitions","create","easing","easeIn","duration","shortest","checked","easeOut","fontSize","background","dot","getRadioUtilityClass","RadioRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","secondary","backgroundColor","alpha","action","active","main","hoverOpacity","radioClasses","defaultCheckedIcon","RadioButtonIcon","defaultIcon","_defaultIcon$props$fo","_defaultCheckedIcon$p","a","b","checkedProp","checkedIcon","icon","nameProp","onChangeProp","onChange","size","radioGroup","RadioGroupContext","createChainedFunction","value","String","getFormGroupUtilityClass","FormGroupRoot","row","flexWrap","actions","defaultValue","valueProp","rootRef","useControlled","controlled","default","setValueState","focus","input","current","querySelector","handleRef","useForkRef","useId","event","target","FormGroup","role","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.3e4f9436.chunk.js.map b/portal-ui/build/static/js/1581.3e4f9436.chunk.js.map deleted file mode 100644 index 1b3c95f75..000000000 --- a/portal-ui/build/static/js/1581.3e4f9436.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1581.3e4f9436.chunk.js","mappings":"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","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/1581.3e4f9436.chunk.js b/portal-ui/build/static/js/1581.e753ce61.chunk.js similarity index 55% rename from portal-ui/build/static/js/1581.3e4f9436.chunk.js rename to portal-ui/build/static/js/1581.e753ce61.chunk.js index ca2f5cd32..7ddd1642c 100644 --- a/portal-ui/build/static/js/1581.3e4f9436.chunk.js +++ b/portal-ui/build/static/js/1581.e753ce61.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(29439),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(93656),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"],"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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.a9d0b62b.chunk.js b/portal-ui/build/static/js/1604.a9d0b62b.chunk.js new file mode 100644 index 000000000..f4e6485b8 --- /dev/null +++ b/portal-ui/build/static/js/1604.a9d0b62b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1604],{1604:function(e,n,t){t.r(n);var a=t(29439),s=t(1413),i=t(72791),o=t(60364),l=t(36151),r=t(40986),c=t(11135),d=t(25787),u=t(61889),m=t(23814),f=t(42649),Z=t(81207),h=t(56028),p=t(83679),x=t(21435),v=t(72401),g=t(80184),j=(0,o.$j)(null,{setModalErrorSnackMessage:f.zb});n.default=(0,d.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},m.bK),m.QV),m.DF),m.ID))}))(j((function(e){var n=e.classes,t=e.open,s=e.bucketName,o=e.closeModalAndRefresh,c=e.setModalErrorSnackMessage,d=(0,i.useState)(!1),m=(0,a.Z)(d,2),f=m[0],j=m[1],b=(0,i.useState)(!0),S=(0,a.Z)(b,2),k=S[0],y=S[1],C=(0,i.useState)("compliance"),N=(0,a.Z)(C,2),M=N[0],E=N[1],P=(0,i.useState)("days"),w=(0,a.Z)(P,2),R=w[0],B=w[1],_=(0,i.useState)(1),D=(0,a.Z)(_,2),F=D[0],z=D[1],O=(0,i.useState)(!1),T=(0,a.Z)(O,2),V=T[0],W=T[1];return(0,i.useEffect)((function(){Number.isNaN(F)||F<1?W(!1):W(!0)}),[F]),(0,i.useEffect)((function(){k&&Z.Z.invoke("GET","/api/v1/buckets/".concat(s,"/retention")).then((function(e){y(!1),E(e.mode),z(e.validity),B(e.unit)})).catch((function(e){y(!1)}))}),[k,s]),(0,g.jsx)(h.Z,{title:"Set Retention Configuration",modalOpen:t,onClose:function(){o()},children:k?(0,g.jsx)(v.Z,{style:{width:16,height:16}}):(0,g.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),f||(j(!0),Z.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/retention"),{mode:M,unit:R,validity:F}).then((function(){j(!1),o()})).catch((function(e){j(!1),c(e)})))},children:(0,g.jsxs)(u.ZP,{container:!0,children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,g.jsx)(p.Z,{currentSelection:M,id:"retention_mode",name:"retention_mode",label:"Retention Mode",onChange:function(e){E(e.target.value)},selectorOptions:[{value:"compliance",label:"Compliance"},{value:"governance",label:"Governance"}]})}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,g.jsx)(p.Z,{currentSelection:R,id:"retention_unit",name:"retention_unit",label:"Retention Unit",onChange:function(e){B(e.target.value)},selectorOptions:[{value:"days",label:"Days"},{value:"years",label:"Years"}]})}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,g.jsx)(x.Z,{type:"number",id:"retention_validity",name:"retention_validity",onChange:function(e){z(e.target.valueAsNumber)},label:"Retention Validity",value:String(F),required:!0,min:"1"})})]}),(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,g.jsx)(l.Z,{type:"button",variant:"outlined",color:"primary",disabled:f,onClick:function(){o()},children:"Cancel"}),(0,g.jsx)(l.Z,{type:"submit",variant:"contained",color:"primary",disabled:f||!V,children:"Set"})]}),f&&(0,g.jsx)(u.ZP,{item:!0,xs:12,children:(0,g.jsx)(r.Z,{})})]})})})})))},56028:function(e,n,t){var a=t(29439),s=t(1413),i=t(72791),o=t(60364),l=t(13400),r=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),f=t(25787),Z=t(23814),h=t(42649),p=t(29823),x=t(28057),v=t(80184),g=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,s.Z)((0,s.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(g((function(e){var n=e.onClose,t=e.modalOpen,o=e.title,m=e.children,f=e.classes,Z=e.wideLimit,h=void 0===Z||Z,g=e.modalSnackMessage,j=e.noContentPadding,b=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,y=(0,i.useState)(!1),C=(0,a.Z)(y,2),N=C[0],M=C[1];(0,i.useEffect)((function(){b("")}),[b]),(0,i.useEffect)((function(){if(g){if(""===g.message)return void M(!1);"error"!==g.type&&M(!0)}}),[g]);var E=h?{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,s.Z)((0,s.Z)({open:t,classes:f},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:f.root,children:[(0,v.jsxs)(d.Z,{className:f.title,children:[(0,v.jsxs)("div",{className:f.titleText,children:[k," ",o]}),(0,v.jsx)("div",{className:f.closeContainer,children:(0,v.jsx)(l.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(p.Z,{})})})]}),(0,v.jsx)(x.Z,{isModal:!0}),(0,v.jsx)(r.Z,{open:N,className:f.snackBarModal,onClose:function(){M(!1),b("")},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})]}))})))}}]); +//# sourceMappingURL=1604.a9d0b62b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.a9d0b62b.chunk.js.map b/portal-ui/build/static/js/1604.a9d0b62b.chunk.js.map new file mode 100644 index 000000000..a950b11cb --- /dev/null +++ b/portal-ui/build/static/js/1604.a9d0b62b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1604.a9d0b62b.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetRetentionConfig.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, { 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 createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n ErrorResponseHandler,\n IRetentionConfig,\n} from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Loader from \"../../Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface ISetRetentionConfigProps {\n classes: any;\n open: boolean;\n bucketName: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetRetentionConfig = ({\n classes,\n open,\n bucketName,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: ISetRetentionConfigProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loadingForm, setLoadingForm] = useState(true);\n const [retentionMode, setRetentionMode] = useState(\"compliance\");\n const [retentionUnit, setRetentionUnit] = useState(\"days\");\n const [retentionValidity, setRetentionValidity] = useState(1);\n const [valid, setValid] = useState(false);\n\n const setRetention = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/retention`, {\n mode: retentionMode,\n unit: retentionUnit,\n validity: retentionValidity,\n })\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (Number.isNaN(retentionValidity) || retentionValidity < 1) {\n setValid(false);\n return;\n }\n setValid(true);\n }, [retentionValidity]);\n\n useEffect(() => {\n if (loadingForm) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/retention`)\n .then((res: IRetentionConfig) => {\n setLoadingForm(false);\n\n // We set default values\n setRetentionMode(res.mode);\n setRetentionValidity(res.validity);\n setRetentionUnit(res.unit);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingForm(false);\n });\n }\n }, [loadingForm, bucketName]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n >\n {loadingForm ? (\n \n ) : (\n ) => {\n setRetention(e);\n }}\n >\n \n \n \n ) => {\n setRetentionMode(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n />\n \n \n ) => {\n setRetentionUnit(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n \n \n ) => {\n setRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n \n \n {\n closeModalAndRefresh();\n }}\n >\n Cancel\n \n \n Set\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(SetRetentionConfig));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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":["connector","connect","setModalErrorSnackMessage","withStyles","theme","createStyles","spacingUtils","createTenantCommon","formFieldStyles","modalStyleUtils","classes","open","bucketName","closeModalAndRefresh","useState","addLoading","setAddLoading","loadingForm","setLoadingForm","retentionMode","setRetentionMode","retentionUnit","setRetentionUnit","retentionValidity","setRetentionValidity","valid","setValid","useEffect","Number","isNaN","api","then","res","mode","validity","unit","catch","err","title","modalOpen","onClose","style","width","height","noValidate","autoComplete","onSubmit","e","preventDefault","container","item","xs","className","modalFormScrollable","formFieldRow","currentSelection","id","name","label","onChange","target","value","selectorOptions","type","valueAsNumber","String","required","min","modalButtonBar","variant","color","disabled","onClick","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","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/1604.c6070715.chunk.js b/portal-ui/build/static/js/1604.c6070715.chunk.js deleted file mode 100644 index 7d23df6de..000000000 --- a/portal-ui/build/static/js/1604.c6070715.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1604],{1604:function(e,n,t){t.r(n);var a=t(29439),o=t(1413),i=t(72791),l=t(60364),s=t(36151),r=t(40986),c=t(11135),d=t(25787),u=t(61889),m=t(23814),Z=t(42649),p=t(81207),h=t(56028),f=t(83679),x=t(21435),v=t(72401),b=t(80184),j=(0,l.$j)(null,{setModalErrorSnackMessage:Z.zb});n.default=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},m.bK),m.QV),m.DF),m.ID))}))(j((function(e){var n=e.classes,t=e.open,o=e.bucketName,l=e.closeModalAndRefresh,c=e.setModalErrorSnackMessage,d=(0,i.useState)(!1),m=(0,a.Z)(d,2),Z=m[0],j=m[1],g=(0,i.useState)(!0),k=(0,a.Z)(g,2),C=k[0],S=k[1],N=(0,i.useState)("compliance"),y=(0,a.Z)(N,2),M=y[0],P=y[1],E=(0,i.useState)("days"),R=(0,a.Z)(E,2),w=R[0],F=R[1],O=(0,i.useState)(1),B=(0,a.Z)(O,2),I=B[0],L=B[1],_=(0,i.useState)(!1),z=(0,a.Z)(_,2),D=z[0],U=z[1];return(0,i.useEffect)((function(){Number.isNaN(I)||I<1?U(!1):U(!0)}),[I]),(0,i.useEffect)((function(){C&&p.Z.invoke("GET","/api/v1/buckets/".concat(o,"/retention")).then((function(e){S(!1),P(e.mode),L(e.validity),F(e.unit)})).catch((function(e){S(!1)}))}),[C,o]),(0,b.jsx)(h.Z,{title:"Set Retention Configuration",modalOpen:t,onClose:function(){l()},children:C?(0,b.jsx)(v.Z,{style:{width:16,height:16}}):(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),Z||(j(!0),p.Z.invoke("PUT","/api/v1/buckets/".concat(o,"/retention"),{mode:M,unit:w,validity:I}).then((function(){j(!1),l()})).catch((function(e){j(!1),c(e)})))},children:(0,b.jsxs)(u.ZP,{container:!0,children:[(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,b.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,b.jsx)(f.Z,{currentSelection:M,id:"retention_mode",name:"retention_mode",label:"Retention Mode",onChange:function(e){P(e.target.value)},selectorOptions:[{value:"compliance",label:"Compliance"},{value:"governance",label:"Governance"}]})}),(0,b.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,b.jsx)(f.Z,{currentSelection:w,id:"retention_unit",name:"retention_unit",label:"Retention Unit",onChange:function(e){F(e.target.value)},selectorOptions:[{value:"days",label:"Days"},{value:"years",label:"Years"}]})}),(0,b.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,b.jsx)(x.Z,{type:"number",id:"retention_validity",name:"retention_validity",onChange:function(e){L(e.target.valueAsNumber)},label:"Retention Validity",value:String(I),required:!0,min:"1"})})]}),(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,b.jsx)(s.Z,{type:"button",variant:"outlined",color:"primary",disabled:Z,onClick:function(){l()},children:"Cancel"}),(0,b.jsx)(s.Z,{type:"submit",variant:"contained",color:"primary",disabled:Z||!D,children:"Set"})]}),Z&&(0,b.jsx)(u.ZP,{item:!0,xs:12,children:(0,b.jsx)(r.Z,{})})]})})})})))},83679:function(e,n,t){var a=t(4942),o=t(1413),i=(t(72791),t(28182)),l=t(61889),s=t(10765),r=t(85523),c=t(61419),d=t(30829),u=t(20068),m=t(11135),Z=t(25787),p=t(72455),h=t(23814),f=t(84570),x=t(80184),v=(0,p.Z)((0,o.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},h.FU)),b=function(e){var n=v();return(0,x.jsx)(c.Z,(0,o.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,x.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,x.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,Z.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)((0,o.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,o=e.currentSelection,c=e.label,m=e.id,Z=e.name,p=e.onChange,h=e.tooltip,v=void 0===h?"":h,j=e.disableOptions,g=void 0!==j&&j,k=e.classes,C=e.displayInColumn,S=void 0!==C&&C;return(0,x.jsxs)(l.ZP,{container:!0,alignItems:"center",children:[(0,x.jsx)(l.ZP,{item:!0,xs:!0,children:(0,x.jsxs)(d.Z,{htmlFor:m,className:k.inputLabel,children:[(0,x.jsx)("span",{children:c}),""!==v&&(0,x.jsx)("div",{className:k.tooltipContainer,children:(0,x.jsx)(u.Z,{title:v,placement:"top-start",children:(0,x.jsx)("div",{children:(0,x.jsx)(f.Z,{})})})})]})}),(0,x.jsx)(l.ZP,{item:!0,xs:!0,className:k.radioOptionsLayout,children:(0,x.jsx)(s.Z,{"aria-label":m,id:m,name:Z,value:o,onChange:p,row:!S,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,x.jsx)(r.Z,{value:e.value,control:(0,x.jsx)(b,{}),label:e.label,disabled:g,className:(0,i.Z)(k.optionLabel,(0,a.Z)({},k.checkedOption,e.value===o))},"rd-".concat(Z,"-").concat(e.value))}))})})]})}))},56028:function(e,n,t){var a=t(29439),o=t(1413),i=t(72791),l=t(60364),s=t(13400),r=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),Z=t(25787),p=t(23814),h=t(42649),f=t(29823),x=t(28057),v=t(80184),b=(0,l.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});n.Z=(0,Z.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(b((function(e){var n=e.onClose,t=e.modalOpen,l=e.title,m=e.children,Z=e.classes,p=e.wideLimit,h=void 0===p||p,b=e.modalSnackMessage,j=e.noContentPadding,g=e.setModalSnackMessage,k=e.titleIcon,C=void 0===k?null:k,S=(0,i.useState)(!1),N=(0,a.Z)(S,2),y=N[0],M=N[1];(0,i.useEffect)((function(){g("")}),[g]),(0,i.useEffect)((function(){if(b){if(""===b.message)return void M(!1);"error"!==b.type&&M(!0)}}),[b]);var P=h?{classes:{paper:Z.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return b&&(E=b.detailedErrorMsg,(""===b.detailedErrorMsg||b.detailedErrorMsg.length<5)&&(E=b.message)),(0,v.jsxs)(c.Z,(0,o.Z)((0,o.Z)({open:t,classes:Z},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:Z.root,children:[(0,v.jsxs)(d.Z,{className:Z.title,children:[(0,v.jsxs)("div",{className:Z.titleText,children:[C," ",l]}),(0,v.jsx)("div",{className:Z.closeContainer,children:(0,v.jsx)(s.Z,{"aria-label":"close",id:"close",className:Z.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(f.Z,{})})})]}),(0,v.jsx)(x.Z,{isModal:!0}),(0,v.jsx)(r.Z,{open:y,className:Z.snackBarModal,onClose:function(){M(!1),g("")},message:E,ContentProps:{className:"".concat(Z.snackBar," ").concat(b&&"error"===b.type?Z.errorSnackBar:"")},autoHideDuration:b&&"error"===b.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:j?"":Z.content,children:m})]}))})))},29823:function(e,n,t){var a=t(95318);n.Z=void 0;var o=a(t(45649)),i=t(80184),l=(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");n.Z=l}}]); -//# sourceMappingURL=1604.c6070715.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.c6070715.chunk.js.map b/portal-ui/build/static/js/1604.c6070715.chunk.js.map deleted file mode 100644 index 4e9b89275..000000000 --- a/portal-ui/build/static/js/1604.c6070715.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1604.c6070715.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetRetentionConfig.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.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 createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n ErrorResponseHandler,\n IRetentionConfig,\n} from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Loader from \"../../Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface ISetRetentionConfigProps {\n classes: any;\n open: boolean;\n bucketName: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetRetentionConfig = ({\n classes,\n open,\n bucketName,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: ISetRetentionConfigProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loadingForm, setLoadingForm] = useState(true);\n const [retentionMode, setRetentionMode] = useState(\"compliance\");\n const [retentionUnit, setRetentionUnit] = useState(\"days\");\n const [retentionValidity, setRetentionValidity] = useState(1);\n const [valid, setValid] = useState(false);\n\n const setRetention = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/retention`, {\n mode: retentionMode,\n unit: retentionUnit,\n validity: retentionValidity,\n })\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (Number.isNaN(retentionValidity) || retentionValidity < 1) {\n setValid(false);\n return;\n }\n setValid(true);\n }, [retentionValidity]);\n\n useEffect(() => {\n if (loadingForm) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/retention`)\n .then((res: IRetentionConfig) => {\n setLoadingForm(false);\n\n // We set default values\n setRetentionMode(res.mode);\n setRetentionValidity(res.validity);\n setRetentionUnit(res.unit);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingForm(false);\n });\n }\n }, [loadingForm, bucketName]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n >\n {loadingForm ? (\n \n ) : (\n ) => {\n setRetention(e);\n }}\n >\n \n \n \n ) => {\n setRetentionMode(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n />\n \n \n ) => {\n setRetentionUnit(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n \n \n ) => {\n setRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n \n \n {\n closeModalAndRefresh();\n }}\n >\n Cancel\n \n \n Set\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(SetRetentionConfig));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 .\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","spacingUtils","createTenantCommon","formFieldStyles","modalStyleUtils","classes","open","bucketName","closeModalAndRefresh","useState","addLoading","setAddLoading","loadingForm","setLoadingForm","retentionMode","setRetentionMode","retentionUnit","setRetentionUnit","retentionValidity","setRetentionValidity","valid","setValid","useEffect","Number","isNaN","api","then","res","mode","validity","unit","catch","err","title","modalOpen","onClose","style","width","height","noValidate","autoComplete","onSubmit","e","preventDefault","container","item","xs","className","modalFormScrollable","formFieldRow","currentSelection","id","name","label","onChange","target","value","selectorOptions","type","valueAsNumber","String","required","min","modalButtonBar","variant","color","disabled","onClick","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","icon","radioUnselectedIcon","fieldBasic","tooltipHelper","optionLabel","marginRight","fontSize","checkedOption","fontWeight","tooltip","disableOptions","displayInColumn","alignItems","htmlFor","inputLabel","tooltipContainer","placement","radioOptionsLayout","row","display","textAlign","map","selectorOption","control","clsx","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","titleText","closeContainer","closeButton","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.72fad20d.chunk.js b/portal-ui/build/static/js/1687.72fad20d.chunk.js deleted file mode 100644 index 5d403a093..000000000 --- a/portal-ui/build/static/js/1687.72fad20d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(29439),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(93656),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.72fad20d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1687.72fad20d.chunk.js.map b/portal-ui/build/static/js/1687.72fad20d.chunk.js.map deleted file mode 100644 index d8e93ea9c..000000000 --- a/portal-ui/build/static/js/1687.72fad20d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1687.72fad20d.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/1705.7586dfce.chunk.js b/portal-ui/build/static/js/1705.7586dfce.chunk.js new file mode 100644 index 000000000..76c2d23ed --- /dev/null +++ b/portal-ui/build/static/js/1705.7586dfce.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:function(e,n,t){t.r(n);var l=t(29439),o=t(72791),c=t(9505),s=t(64554),a=t(56087),i=t(38442),u=t(26181),r=t.n(u),d=t(81918),f=t(29823),h=t(42419),v=t(75578),p=t(72401),Z=t(80184),x=(0,v.Z)(o.lazy((function(){return t.e(247).then(t.bind(t,40247))}))),j=(0,v.Z)(o.lazy((function(){return t.e(2763).then(t.bind(t,22763))})));n.default=function(e){var n=e.setErrorSnackMessage,t=e.bucketName,u=(0,o.useState)(null),v=(0,l.Z)(u,2),m=v[0],T=v[1],k=(0,o.useState)(!1),b=(0,l.Z)(k,2),g=b[0],G=b[1],_=(0,o.useState)([]),S=(0,l.Z)(_,2),y=S[0],C=S[1],A=(0,o.useState)(["",""]),E=(0,l.Z)(A,2),U=E[0],N=E[1],z=(0,o.useState)(!1),I=(0,l.Z)(z,2),w=I[0],F=I[1],P=(0,c.Z)((function(e){var n,t;null!=e&&null!=(null===e||void 0===e?void 0:e.details)&&(T(null===e||void 0===e||null===(n=e.details)||void 0===n?void 0:n.tags),C(Object.keys(null===e||void 0===e||null===(t=e.details)||void 0===t?void 0:t.tags)))}),(function(e){n(e)})),B=(0,l.Z)(P,2),K=B[0],O=B[1],D=function(){O("GET","/api/v1/buckets/".concat(t))};return(0,o.useEffect)((function(){D()}),[t]),(0,Z.jsxs)(s.Z,{children:[K?(0,Z.jsx)(p.Z,{style:{width:16,height:16}}):null,(0,Z.jsx)(i.s,{scopes:[a.Ft.S3_GET_BUCKET_TAGGING],resource:t,children:(0,Z.jsxs)(s.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,Z.jsx)(s.Z,{children:y&&y.map((function(e,n){var l=r()(m,"".concat(e),"");return""!==l?(0,Z.jsx)(i.s,{scopes:[a.Ft.S3_PUT_BUCKET_TAGGING],resource:t,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,Z.jsx)(d.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(l),color:"primary",deleteIcon:(0,Z.jsx)(f.Z,{}),onDelete:function(){!function(e,n){N([e,n]),F(!0)}(e,l)}})},"chip-".concat(n)):null}))}),(0,Z.jsx)(i.s,{scopes:[a.Ft.S3_PUT_BUCKET_TAGGING],resource:t,errorProps:{disabled:!0,onClick:null},children:(0,Z.jsx)(d.Z,{style:{maxWidth:80,marginTop:"10px"},icon:(0,Z.jsx)(h.Z,{}),clickable:!0,size:"small",label:"Add tag",color:"primary",variant:"outlined",onClick:function(){G(!0)}})})]})}),g&&(0,Z.jsx)(x,{modalOpen:g,currentTags:m,bucketName:t,onCloseAndUpdate:function(e){G(!1),e&&D()}}),w&&(0,Z.jsx)(j,{deleteOpen:w,currentTags:m,bucketName:t,onCloseAndUpdate:function(e){F(!1),e&&D()},selectedTag:U})]})}},9505:function(e,n,t){var l=t(29439),o=t(72791),c=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),s=(0,l.Z)(t,2),a=s[0],i=s[1];return[a,function(t,l,o){i(!0),c.Z.invoke(t,l,o).then((function(n){i(!1),e(n)})).catch((function(e){i(!1),n(e)}))}]}},42419:function(e,n,t){var l=t(95318);n.Z=void 0;var o=l(t(45649)),c=t(80184),s=(0,o.default)((0,c.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=s}}]); +//# sourceMappingURL=1705.7586dfce.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.7586dfce.chunk.js.map b/portal-ui/build/static/js/1705.7586dfce.chunk.js.map new file mode 100644 index 000000000..754bd65b1 --- /dev/null +++ b/portal-ui/build/static/js/1705.7586dfce.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1705.7586dfce.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/BucketTags.tsx","screens/Console/Common/Hooks/useApi.tsx","../node_modules/@mui/icons-material/Add.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { Bucket } from \"../../../Watch/types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport useApi from \"../../../Common/Hooks/useApi\";\nimport { Box } from \"@mui/material\";\nimport { IAM_SCOPES } from \"../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport get from \"lodash/get\";\nimport Chip from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport withSuspense from \"../../../Common/Components/withSuspense\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nconst AddBucketTagModal = withSuspense(\n React.lazy(() => import(\"../AddBucketTagModal\"))\n);\nconst DeleteBucketTagModal = withSuspense(\n React.lazy(() => import(\"../DeleteBucketTagModal\"))\n);\n\ntype BucketTagProps = {\n setErrorSnackMessage: (err: ErrorResponseHandler) => void;\n bucketName: string;\n};\n\nconst BucketTags = ({ setErrorSnackMessage, bucketName }: BucketTagProps) => {\n const [tags, setTags] = useState(null);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [tagKeys, setTagKeys] = useState([]);\n const [selectedTag, setSelectedTag] = useState([\"\", \"\"]);\n const [deleteTagModalOpen, setDeleteTagModalOpen] = useState(false);\n\n const closeAddTagModal = (refresh: boolean) => {\n setTagModalOpen(false);\n if (refresh) {\n fetchTags();\n }\n };\n\n const deleteTag = (tagKey: string, tagLabel: string) => {\n setSelectedTag([tagKey, tagLabel]);\n setDeleteTagModalOpen(true);\n };\n\n const closeDeleteTagModal = (refresh: boolean) => {\n setDeleteTagModalOpen(false);\n\n if (refresh) {\n fetchTags();\n }\n };\n\n const onTagLoaded = (res: Bucket) => {\n if (res != null && res?.details != null) {\n setTags(res?.details?.tags);\n setTagKeys(Object.keys(res?.details?.tags));\n }\n };\n\n const onTagLoadFailed = (err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n };\n\n const [isLoading, invokeTagsApi] = useApi(onTagLoaded, onTagLoadFailed);\n\n const fetchTags = () => {\n invokeTagsApi(\"GET\", `/api/v1/buckets/${bucketName}`);\n };\n\n useEffect(() => {\n fetchTags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName]);\n\n return (\n \n {isLoading ? : null}\n \n \n \n {tagKeys &&\n tagKeys.map((tagKey: any, index: any) => {\n const tag = get(tags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n }\n onDelete={() => {\n deleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n\n \n }\n clickable\n size=\"small\"\n label=\"Add tag\"\n color=\"primary\"\n variant=\"outlined\"\n onClick={() => {\n setTagModalOpen(true);\n }}\n />\n \n \n \n\n {/** Modals **/}\n\n {tagModalOpen && (\n \n )}\n {deleteTagModalOpen && (\n \n )}\n \n );\n};\n\nexport default BucketTags;\n","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","\"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;"],"names":["AddBucketTagModal","withSuspense","React","DeleteBucketTagModal","setErrorSnackMessage","bucketName","useState","tags","setTags","tagModalOpen","setTagModalOpen","tagKeys","setTagKeys","selectedTag","setSelectedTag","deleteTagModalOpen","setDeleteTagModalOpen","useApi","res","details","Object","keys","err","isLoading","invokeTagsApi","fetchTags","useEffect","style","width","height","scopes","IAM_SCOPES","resource","sx","display","flexFlow","map","tagKey","index","tag","get","matchAll","errorProps","deleteIcon","onDelete","textTransform","marginRight","size","label","color","tagLabel","deleteTag","disabled","onClick","maxWidth","marginTop","icon","clickable","variant","modalOpen","currentTags","onCloseAndUpdate","refresh","deleteOpen","onSuccess","onError","setIsLoading","method","url","data","api","then","catch","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.b90dd0eb.chunk.js b/portal-ui/build/static/js/1705.b90dd0eb.chunk.js deleted file mode 100644 index e1f32c7a0..000000000 --- a/portal-ui/build/static/js/1705.b90dd0eb.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:function(e,n,t){t.r(n);var l=t(29439),o=t(72791),s=t(9505),a=t(64554),c=t(56087),i=t(38442),u=t(26181),r=t.n(u),d=t(81918),f=t(29823),v=t(42419),h=t(75578),p=t(72401),Z=t(80184),x=(0,h.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(247)]).then(t.bind(t,40247))}))),m=(0,h.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(2763)]).then(t.bind(t,22763))})));n.default=function(e){var n=e.setErrorSnackMessage,t=e.bucketName,u=(0,o.useState)(null),h=(0,l.Z)(u,2),j=h[0],T=h[1],k=(0,o.useState)(!1),b=(0,l.Z)(k,2),g=b[0],G=b[1],_=(0,o.useState)([]),C=(0,l.Z)(_,2),S=C[0],y=C[1],A=(0,o.useState)(["",""]),E=(0,l.Z)(A,2),U=E[0],z=E[1],N=(0,o.useState)(!1),P=(0,l.Z)(N,2),I=P[0],w=P[1],F=(0,s.Z)((function(e){var n,t;null!=e&&null!=(null===e||void 0===e?void 0:e.details)&&(T(null===e||void 0===e||null===(n=e.details)||void 0===n?void 0:n.tags),y(Object.keys(null===e||void 0===e||null===(t=e.details)||void 0===t?void 0:t.tags)))}),(function(e){n(e)})),B=(0,l.Z)(F,2),K=B[0],M=B[1],O=function(){M("GET","/api/v1/buckets/".concat(t))};return(0,o.useEffect)((function(){O()}),[t]),(0,Z.jsxs)(a.Z,{children:[K?(0,Z.jsx)(p.Z,{style:{width:16,height:16}}):null,(0,Z.jsx)(i.s,{scopes:[c.Ft.S3_GET_BUCKET_TAGGING],resource:t,children:(0,Z.jsxs)(a.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,Z.jsx)(a.Z,{children:S&&S.map((function(e,n){var l=r()(j,"".concat(e),"");return""!==l?(0,Z.jsx)(i.s,{scopes:[c.Ft.S3_PUT_BUCKET_TAGGING],resource:t,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,Z.jsx)(d.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(l),color:"primary",deleteIcon:(0,Z.jsx)(f.Z,{}),onDelete:function(){!function(e,n){z([e,n]),w(!0)}(e,l)}})},"chip-".concat(n)):null}))}),(0,Z.jsx)(i.s,{scopes:[c.Ft.S3_PUT_BUCKET_TAGGING],resource:t,errorProps:{disabled:!0,onClick:null},children:(0,Z.jsx)(d.Z,{style:{maxWidth:80,marginTop:"10px"},icon:(0,Z.jsx)(v.Z,{}),clickable:!0,size:"small",label:"Add tag",color:"primary",variant:"outlined",onClick:function(){G(!0)}})})]})}),g&&(0,Z.jsx)(x,{modalOpen:g,currentTags:j,bucketName:t,onCloseAndUpdate:function(e){G(!1),e&&O()}}),I&&(0,Z.jsx)(m,{deleteOpen:I,currentTags:j,bucketName:t,onCloseAndUpdate:function(e){w(!1),e&&O()},selectedTag:U})]})}},9505:function(e,n,t){var l=t(29439),o=t(72791),s=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),a=(0,l.Z)(t,2),c=a[0],i=a[1];return[c,function(t,l,o){i(!0),s.Z.invoke(t,l,o).then((function(n){i(!1),e(n)})).catch((function(e){i(!1),n(e)}))}]}},42419:function(e,n,t){var l=t(95318);n.Z=void 0;var o=l(t(45649)),s=t(80184),a=(0,o.default)((0,s.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=a},29823:function(e,n,t){var l=t(95318);n.Z=void 0;var o=l(t(45649)),s=t(80184),a=(0,o.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");n.Z=a}}]); -//# sourceMappingURL=1705.b90dd0eb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.b90dd0eb.chunk.js.map b/portal-ui/build/static/js/1705.b90dd0eb.chunk.js.map deleted file mode 100644 index e6f15c370..000000000 --- a/portal-ui/build/static/js/1705.b90dd0eb.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1705.b90dd0eb.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/BucketTags.tsx","screens/Console/Common/Hooks/useApi.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/Close.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { Bucket } from \"../../../Watch/types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport useApi from \"../../../Common/Hooks/useApi\";\nimport { Box } from \"@mui/material\";\nimport { IAM_SCOPES } from \"../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport get from \"lodash/get\";\nimport Chip from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport withSuspense from \"../../../Common/Components/withSuspense\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nconst AddBucketTagModal = withSuspense(\n React.lazy(() => import(\"../AddBucketTagModal\"))\n);\nconst DeleteBucketTagModal = withSuspense(\n React.lazy(() => import(\"../DeleteBucketTagModal\"))\n);\n\ntype BucketTagProps = {\n setErrorSnackMessage: (err: ErrorResponseHandler) => void;\n bucketName: string;\n};\n\nconst BucketTags = ({ setErrorSnackMessage, bucketName }: BucketTagProps) => {\n const [tags, setTags] = useState(null);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [tagKeys, setTagKeys] = useState([]);\n const [selectedTag, setSelectedTag] = useState([\"\", \"\"]);\n const [deleteTagModalOpen, setDeleteTagModalOpen] = useState(false);\n\n const closeAddTagModal = (refresh: boolean) => {\n setTagModalOpen(false);\n if (refresh) {\n fetchTags();\n }\n };\n\n const deleteTag = (tagKey: string, tagLabel: string) => {\n setSelectedTag([tagKey, tagLabel]);\n setDeleteTagModalOpen(true);\n };\n\n const closeDeleteTagModal = (refresh: boolean) => {\n setDeleteTagModalOpen(false);\n\n if (refresh) {\n fetchTags();\n }\n };\n\n const onTagLoaded = (res: Bucket) => {\n if (res != null && res?.details != null) {\n setTags(res?.details?.tags);\n setTagKeys(Object.keys(res?.details?.tags));\n }\n };\n\n const onTagLoadFailed = (err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n };\n\n const [isLoading, invokeTagsApi] = useApi(onTagLoaded, onTagLoadFailed);\n\n const fetchTags = () => {\n invokeTagsApi(\"GET\", `/api/v1/buckets/${bucketName}`);\n };\n\n useEffect(() => {\n fetchTags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName]);\n\n return (\n \n {isLoading ? : null}\n \n \n \n {tagKeys &&\n tagKeys.map((tagKey: any, index: any) => {\n const tag = get(tags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n }\n onDelete={() => {\n deleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n\n \n }\n clickable\n size=\"small\"\n label=\"Add tag\"\n color=\"primary\"\n variant=\"outlined\"\n onClick={() => {\n setTagModalOpen(true);\n }}\n />\n \n \n \n\n {/** Modals **/}\n\n {tagModalOpen && (\n \n )}\n {deleteTagModalOpen && (\n \n )}\n \n );\n};\n\nexport default BucketTags;\n","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","\"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: \"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":["AddBucketTagModal","withSuspense","React","DeleteBucketTagModal","setErrorSnackMessage","bucketName","useState","tags","setTags","tagModalOpen","setTagModalOpen","tagKeys","setTagKeys","selectedTag","setSelectedTag","deleteTagModalOpen","setDeleteTagModalOpen","useApi","res","details","Object","keys","err","isLoading","invokeTagsApi","fetchTags","useEffect","style","width","height","scopes","IAM_SCOPES","resource","sx","display","flexFlow","map","tagKey","index","tag","get","matchAll","errorProps","deleteIcon","onDelete","textTransform","marginRight","size","label","color","tagLabel","deleteTag","disabled","onClick","maxWidth","marginTop","icon","clickable","variant","modalOpen","currentTags","onCloseAndUpdate","refresh","deleteOpen","onSuccess","onError","setIsLoading","method","url","data","api","then","catch","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1788.280ca1f4.chunk.js b/portal-ui/build/static/js/1788.280ca1f4.chunk.js new file mode 100644 index 000000000..1636c207c --- /dev/null +++ b/portal-ui/build/static/js/1788.280ca1f4.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1788],{98946:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline");t.Z=c},15146:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline");t.Z=c},77961:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");t.Z=c},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var o=n(4942),r=n(63366),i=n(87462),c=n(72791),a=n(90767),u=n(12065),l=n(97278),s=n(76189),d=n(80184),f=(0,s.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"),v=(0,s.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"),p=(0,s.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"),h=n(14036),m=n(93736),x=n(47630),Z=n(95159);function z(e){return(0,Z.Z)("MuiCheckbox",e)}var k=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),C=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],b=(0,x.ZP)(l.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,h.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,u.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(k.checked,", &.").concat(k.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(k.disabled),{color:n.palette.action.disabled}),t))})),M=(0,d.jsx)(v,{}),y=(0,d.jsx)(f,{}),S=(0,d.jsx)(p,{}),j=c.forwardRef((function(e,t){var n,o,u=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=u.checkedIcon,s=void 0===l?M:l,f=u.color,v=void 0===f?"primary":f,p=u.icon,x=void 0===p?y:p,Z=u.indeterminate,k=void 0!==Z&&Z,j=u.indeterminateIcon,w=void 0===j?S:j,g=u.inputProps,H=u.size,I=void 0===H?"medium":H,O=(0,r.Z)(u,C),T=k?w:x,P=k?w:s,E=(0,i.Z)({},u,{color:v,indeterminate:k,size:I}),B=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},c=(0,a.Z)(r,z,t);return(0,i.Z)({},t,c)}(E);return(0,d.jsx)(b,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":k},g),icon:c.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:I}),checkedIcon:c.cloneElement(P,{fontSize:null!=(o=P.props.fontSize)?o:I}),ownerState:E,ref:t},O,{classes:B}))}))},20821:function(e,t,n){var o=n(26050),r=/^\s+/;e.exports=function(e){return e?e.slice(0,o(e)+1).replace(r,""):e}},26050:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},48573:function(e,t,n){var o=n(8092),r=n(50072),i=n(42582),c=Math.max,a=Math.min;e.exports=function(e,t,n){var u,l,s,d,f,v,p=0,h=!1,m=!1,x=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function Z(t){var n=u,o=l;return u=l=void 0,p=t,d=e.apply(o,n)}function z(e){return p=e,f=setTimeout(C,t),h?Z(e):d}function k(e){var n=e-v;return void 0===v||n>=t||n<0||m&&e-p>=s}function C(){var e=r();if(k(e))return b(e);f=setTimeout(C,function(e){var n=t-(e-v);return m?a(n,s-(e-p)):n}(e))}function b(e){return f=void 0,x&&u?Z(e):(u=l=void 0,d)}function M(){var e=r(),n=k(e);if(u=arguments,l=this,v=e,n){if(void 0===f)return z(v);if(m)return clearTimeout(f),f=setTimeout(C,t),Z(v)}return void 0===f&&(f=setTimeout(C,t)),d}return t=i(t)||0,o(n)&&(h=!!n.leading,s=(m="maxWait"in n)?c(i(n.maxWait)||0,t):s,x="trailing"in n?!!n.trailing:x),M.cancel=function(){void 0!==f&&clearTimeout(f),p=0,u=v=l=f=void 0},M.flush=function(){return void 0===f?d:b(r())},M}},50072:function(e,t,n){var o=n(97009);e.exports=function(){return o.Date.now()}},42582:function(e,t,n){var o=n(20821),r=n(8092),i=n(70152),c=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=o(e);var n=a.test(e);return n||u.test(e)?l(e.slice(2),n?2:8):c.test(e)?NaN:+e}}}]); +//# sourceMappingURL=1788.280ca1f4.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1788.280ca1f4.chunk.js.map b/portal-ui/build/static/js/1788.280ca1f4.chunk.js.map new file mode 100644 index 000000000..9cd6caffc --- /dev/null +++ b/portal-ui/build/static/js/1788.280ca1f4.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1788.280ca1f4.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/CheckCircleOutline.js","../node_modules/@mui/icons-material/ErrorOutline.js","../node_modules/@mui/icons-material/Help.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/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.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.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'CheckCircleOutline');\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 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');\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.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\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 trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\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","trimmedEndIndex","reTrimStart","module","string","slice","replace","reWhitespace","index","length","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","value","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1829.202650e3.chunk.js b/portal-ui/build/static/js/1829.202650e3.chunk.js deleted file mode 100644 index 538afbea9..000000000 --- a/portal-ui/build/static/js/1829.202650e3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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(93656),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 diff --git a/portal-ui/build/static/js/1829.2cab6045.chunk.js b/portal-ui/build/static/js/1829.2cab6045.chunk.js new file mode 100644 index 000000000..5c44c41b6 --- /dev/null +++ b/portal-ui/build/static/js/1829.2cab6045.chunk.js @@ -0,0 +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),o=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)(o.ZP,{container:!0,children:[(0,r.jsxs)(o.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,r.jsx)(o.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},47986:function(e,n,t){t(72791);var a=t(61889),i=t(64554),o=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)(o.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),o=t(61889),r=t(94454),s=t(30829),c=t(20068),l=t(11135),d=t(25787),u=t(23814),f=t(84570),h=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,x=void 0!==u&&u,p=e.disabled,m=void 0!==p&&p,b=e.noTopMargin,g=void 0!==b&&b,j=e.tooltip,Z=void 0===j?"":j,v=e.overrideLabelClasses,S=void 0===v?"":v,k=e.classes;return(0,h.jsx)(i.Fragment,{children:(0,h.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(k.fieldContainer," ").concat(g?k.noTopMargin:""),children:[(0,h.jsx)("div",{children:(0,h.jsx)(r.Z,{name:d,id:l,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:x,onChange:t,checkedIcon:(0,h.jsx)("span",{className:k.checkedIcon}),icon:(0,h.jsx)("span",{className:k.unCheckedIcon}),disabled:m})}),""!==n&&(0,h.jsxs)(s.Z,{htmlFor:l,className:"".concat(k.noMinWidthLabel," ").concat(S),children:[(0,h.jsx)("span",{children:n}),""!==Z&&(0,h.jsx)("div",{className:k.tooltipContainer,children:(0,h.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,h.jsx)("div",{className:k.tooltip,children:(0,h.jsx)(f.Z,{})})})})]})]})})}))},61829:function(e,n,t){t.r(n);var a=t(29439),i=t(1413),o=t(72791),r=t(60364),s=t(28353),c=t(4834),l=t(61889),d=t(68096),u=t(58406),f=t(23786),h=t(27391),x=t(36151),p=t(95087),m=t(11135),b=t(25787),g=t(26824),j=t(45248),Z=t(23814),v=t(56087),S=t(93656),k=t(34866),C=t(32291),y=t(81207),N=t(74794),w=t(38442),H=t(47986),E=t(80184),I=(0,b.Z)((function(e){return(0,m.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),P=(0,r.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null);n.default=P((0,b.Z)((function(e){return(0,m.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,o.useState)(!1),r=(0,a.Z)(i,2),c=r[0],m=r[1],b=(0,o.useState)(""),Z=(0,a.Z)(b,2),P=Z[0],F=Z[1],B=(0,o.useState)([]),T=(0,a.Z)(B,2),D=T[0],R=T[1],z=(0,o.useState)(""),A=(0,a.Z)(z,2),G=A[0],M=A[1],L=(0,o.useState)(!1),Y=(0,a.Z)(L,2),O=Y[0],W=Y[1],_=(0,o.useState)(!1),q=(0,a.Z)(_,2),U=q[0],J=q[1],V=(0,o.useState)(!1),X=(0,a.Z)(V,2),$=X[0],K=X[1],Q=(0,o.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),ee=(0,a.Z)(Q,2),ne=ee[0],te=ee[1];(0,o.useEffect)((function(){y.Z.invoke("GET","/api/v1/buckets").then((function(e){var n=[];null!==e.buckets&&(n=e.buckets),R(n)})).catch((function(e){console.log(e)}))}),[]),(0,o.useEffect)((function(){!0===U&&K(!1)}),[U]),(0,o.useEffect)((function(){!0===$&&J(!1)}),[$]);var ae=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,o.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,o=(0,g.x2)(t.protocol),r=new p.w3cwebsocket("".concat(o,"://").concat(t.hostname,":").concat(i,"/ws/heal/").concat(P,"?prefix=").concat(G,"&recursive=").concat(O,"&force-start=").concat(U,"&force-stop=").concat($));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()),o=0,r=Object.entries(i.healthAfterCols);o.\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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","SelectStyled","lineHeight","spacing","input","InputBase","connector","connect","state","distributedSetup","system","graphContainer","padding","scanInfo","flexDirection","scanData","formBox","buttonBar","bucketField","flex","prefixField","searchField","marginLeft","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","console","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","Fragment","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","variant","e","displayEmpty","option","InputProps","disableUnderline","type","onClick","options","text","legend","position","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1836.083f36ae.chunk.js b/portal-ui/build/static/js/1836.083f36ae.chunk.js new file mode 100644 index 000000000..79f70e3cc --- /dev/null +++ b/portal-ui/build/static/js/1836.083f36ae.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1836],{56028:function(e,o,t){var i=t(29439),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),T=S[0],N=S[1];(0,n.useEffect)((function(){v("")}),[v]),(0,n.useEffect)((function(){if(b){if(""===b.message)return void N(!1);"error"!==b.type&&N(!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:T,className:u.snackBarModal,onClose:function(){N(!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})]}))})))},81836:function(e,o,t){t.r(o),t.d(o,{default:function(){return _}});var i=t(29439),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(93656),j=t(38442),k=t(56087),L=t(4942),S=t(18384),T=t(13967),N=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}],G=[E,C],M=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,T.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=G.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)(M,{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)(N.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)(M,{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)(N.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),G.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)(M,{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)(N.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),G.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],T=(0,n.useState)(),N=(0,i.Z)(T,2),A=N[0],I=N[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),G=O[0],M=O[1],F=(0,n.useState)(!0),D=(0,i.Z)(F,2),_=D[0],Y=D[1];(0,n.useState)(!1);var W=(0,n.useState)(!1),q=(0,i.Z)(W,2),V=q[0],X=q[1],K=(0,j.F)(k.C3,k.LC[k.gA.LICENSE],!0),Q=(0,n.useCallback)((function(){G||(K?(M(!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),M(!1)})).catch((function(){X(!1),M(!1)}))):M(!1))}),[G,K]);if((0,n.useEffect)((function(){_&&(Q(),Y(!1))}),[Q,_,Y]),G)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),Q()},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},95193:function(e,o,t){var i;t.d(o,{Z:function(){return p}});var r=t(29439),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.083f36ae.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1836.083f36ae.chunk.js.map b/portal-ui/build/static/js/1836.083f36ae.chunk.js.map new file mode 100644 index 000000000..85033c906 --- /dev/null +++ b/portal-ui/build/static/js/1836.083f36ae.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1836.083f36ae.chunk.js","mappings":"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","sources":["screens/Console/Common/ModalWrapper/ModalWrapper.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/material/useMediaQuery/useMediaQuery.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 .\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 { 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;","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":["connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","withStyles","theme","createStyles","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","children","classes","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","className","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","pageTitle","fontSize","marginBottom","textAlign","pageSubTitle","containerForHeader","spacing","closeModal","ModalWrapper","Grid","container","alignItems","item","xs","Typography","component","variant","subnetLicenseKey","target","href","rel","LICENSE_PLANS","FEATURE_ITEMS","label","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","sx","display","justifyContent","flexFlow","paddingLeft","borderLeft","paddingTop","marginTop","flex","marginLeft","height","fontWeight","marginRight","textTransform","cursor","borderTop","color","fill","background","FeatureTitleRowCmp","props","featureLabel","PricingFeatureItem","link","textDecoration","palette","info","main","linkButton","fontFamily","margin","tableContainer","detailsContainerBorder","detailsTitle","lineHeight","licenseInfo","setLicenseModal","operatorMode","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","currentPlan","isCommunityPlan","isStandardPlan","isEnterprisePlan","isPaidPlan","includes","xsPlanView","setXsPlanView","isXsViewCommunity","isXsViewStandard","isXsViewEnterprise","getButton","btnText","linkToNav","Button","paddingRight","disabled","e","preventDefault","window","onPlanClick","linkTracker","featureList","Fragment","border","overflow","overflowY","borderRadius","boxShadow","borderBottom","gridTemplateColumns","sm","minWidth","minHeight","maxHeight","backgroundColor","position","top","map","fi","idx","Tooltip","placement","stopPropagation","CheckCircle","listStyleType","float","licDet","linkMore","chooseFlavorText","openSourcePolicy","licenseInfoTitle","licenseInfoValue","subnetSubTitle","verifiedIcon","right","bottom","loadingLoginStrategy","mainContainer","icon","primary","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","left","_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/1836.761ade1e.chunk.js b/portal-ui/build/static/js/1836.761ade1e.chunk.js deleted file mode 100644 index 026023472..000000000 --- a/portal-ui/build/static/js/1836.761ade1e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(29439),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(93656),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(29439),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(93656),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(29439),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.761ade1e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1836.761ade1e.chunk.js.map b/portal-ui/build/static/js/1836.761ade1e.chunk.js.map deleted file mode 100644 index de7106a3f..000000000 --- a/portal-ui/build/static/js/1836.761ade1e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1836.761ade1e.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.92f7d06b.chunk.js b/portal-ui/build/static/js/191.92f7d06b.chunk.js deleted file mode 100644 index 1692791dc..000000000 --- a/portal-ui/build/static/js/191.92f7d06b.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","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(93656),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(29439),o=t(1413),i=t(72791),a=t(60364),s=t(11135),l=t(25787),c=t(61889),d=t(40986),u=t(93656),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/1955.27cc0d9b.chunk.js b/portal-ui/build/static/js/1955.27cc0d9b.chunk.js new file mode 100644 index 000000000..2cd54f5a3 --- /dev/null +++ b/portal-ui/build/static/js/1955.27cc0d9b.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1955,7923],{92217:function(e,n,t){"use strict";var o=t(93433),i=t(29439),r=t(1413),a=t(72791),c=t(61889),s=(t(2574),t(69874)),l=t(9461),d=t(73975),u=t(80745),m=t(30829),h=t(20068),p=t(64554),f=t(11135),x=t(25787),Z=t(84570),v=t(23814),b=t(93656),j=t(40603),g=t(78029),C=t.n(g),P=t(64294),S=t(80184),y={json:d.AV,yaml:function(){return l.i.define(u.r)}},k=P.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}),E=P.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,x.Z)((function(e){return(0,f.Z)((0,r.Z)({},v.YI))}))((function(e){var n=e.value,t=e.label,r=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,u=e.mode,f=void 0===u?"json":u,x=e.classes,v=e.onBeforeChange,g=e.readOnly,P=void 0!==g&&g,F=e.editorHeight,N=void 0===F?"250px":F,A=(0,a.useState)(!1),M=(0,i.Z)(A,2),T=M[0],R=M[1],I=[];return y[f]&&(I=[].concat((0,o.Z)(I),[y[f]()])),(0,S.jsxs)(a.Fragment,{children:[(0,S.jsxs)(m.Z,{className:x.inputLabel,children:[(0,S.jsx)("span",{children:r}),""!==d&&(0,S.jsx)("div",{className:x.tooltipContainer,children:(0,S.jsx)(h.Z,{title:d,placement:"top-start",children:(0,S.jsx)("div",{className:x.tooltip,children:(0,S.jsx)(Z.Z,{})})})})]}),(0,S.jsx)(c.ZP,{item:!0,xs:12,children:(0,S.jsx)("br",{})}),(0,S.jsxs)(c.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,S.jsx)(c.ZP,{item:!0,xs:12,children:(0,S.jsx)(s.ZP,{value:n,theme:T?E:k,extensions:I,editable:!P,basicSetup:!0,height:N,onChange:function(e,n){v(null,null,e)}})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:T?"#282c34":"#f7f7f7"},children:(0,S.jsxs)(p.Z,{className:T?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,S.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){R(!T)},text:"",icon:(0,S.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,S.jsx)(C(),{text:n,children:(0,S.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,S.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},50276:function(e,n,t){"use strict";var o=t(1413),i=t(29439),r=t(72791),a=t(64554),c=t(43896),s=t(83449),l=t(47283),d=t(82851),u=t(25787),m=t(13967),h=t(11135),p=t(95193),f=t(80184),x={minHeight:60};n.Z=(0,u.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,u=e.selectedTab,h=void 0===u?"0":u,Z=e.routes,v=e.isRouteTabs,b=r.useState(h),j=(0,i.Z)(b,2),g=j[0],C=j[1],P=(0,m.Z)(),S=(0,p.Z)(P.breakpoints.down("md")),y=[],k=[];return n?(n.forEach((function(e){y.push(e.tabConfig),k.push(e.content)})),(0,f.jsx)(s.ZP,{value:"".concat(g),children:(0,f.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,f.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,f.jsx)(l.Z,{onChange:function(e,n){C(n)},orientation:S?"horizontal":"vertical",variant:S?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:y.map((function(e,n){return e?(0,f.jsx)(c.Z,(0,o.Z)((0,o.Z)({className:t.tabHeader,value:"".concat(n),style:x},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,f.jsxs)(a.Z,{className:t.tabContentContainer,children:[v?null:k.map((function(e,n){return(0,f.jsx)(d.Z,{classes:(0,o.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),v?(0,f.jsx)("div",{className:t.tabPanel,children:Z}):null]})]})})):null}))},23533:function(e,n,t){"use strict";t.r(n);var o=t(29439),i=t(1413),r=t(72791),a=t(60364),c=t(11135),s=t(25787),l=t(23814),d=t(10703),u=t(61889),m=t(36151),h=t(40986),p=t(92983),f=t(81207),x=t(32291),Z=t(42649),v=t(92217),b=t(62666),j=t(63466),g=t(27391),C=t(14917),P=t(64244),S=t(28789),y=t(74900),k=t(54599),E=t(74794),F=t(50276),N=t(84669),A=t(56087),M=t(38442),T=t(75578),R=t(40603),I=t(80184),w=(0,T.Z)(r.lazy((function(){return t.e(312).then(t.bind(t,312))}))),B=(0,a.$j)((function(e){return{features:e.console.session.features}}),{setErrorSnackMessage:Z.Ih,setSnackBarMessage:Z.y1});n.default=(0,s.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.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"}},l.OR),l.qg),l.oO),(0,l.Bz)(e.spacing(4))))}))(B((function(e){var n=e.classes,t=e.match,i=e.setErrorSnackMessage,a=e.setSnackBarMessage,c=e.features,s=(0,r.useState)(null),l=(0,o.Z)(s,2),Z=l[0],T=l[1],B=(0,r.useState)([]),z=(0,o.Z)(B,2),L=z[0],O=z[1],_=(0,r.useState)([]),D=(0,o.Z)(_,2),U=D[0],G=D[1],H=(0,r.useState)([]),V=(0,o.Z)(H,2),Y=V[0],J=V[1],Q=(0,r.useState)(!1),W=(0,o.Z)(Q,2),q=W[0],K=W[1],$=(0,r.useState)(t.params[0]),X=(0,o.Z)($,2),ee=X[0],ne=X[1],te=(0,r.useState)(""),oe=(0,o.Z)(te,2),ie=oe[0],re=oe[1],ae=(0,r.useState)(!0),ce=(0,o.Z)(ae,2),se=ce[0],le=ce[1],de=(0,r.useState)(""),ue=(0,o.Z)(de,2),me=ue[0],he=ue[1],pe=(0,r.useState)(!0),fe=(0,o.Z)(pe,2),xe=fe[0],Ze=fe[1],ve=(0,r.useState)(""),be=(0,o.Z)(ve,2),je=be[0],ge=be[1],Ce=(0,r.useState)(!0),Pe=(0,o.Z)(Ce,2),Se=Pe[0],ye=Pe[1],ke=(0,r.useState)(!1),Ee=(0,o.Z)(ke,2),Fe=Ee[0],Ne=Ee[1],Ae=c&&c.includes("ldap-idp")||!1,Me=(0,M.F)(A.C3,[A.Ft.ADMIN_LIST_GROUPS,A.Ft.ADMIN_GET_GROUP],!0),Te=(0,M.F)(A.C3,[A.Ft.ADMIN_GET_GROUP]),Re=(0,M.F)(A.C3,[A.Ft.ADMIN_LIST_GROUPS]),Ie=(0,M.F)(A.C3,[A.Ft.ADMIN_GET_USER]),we=(0,M.F)(A.C3,[A.Ft.ADMIN_GET_POLICY]),Be=(0,M.F)(A.C3,[A.Ft.ADMIN_CREATE_POLICY]),ze=function(e){e.preventDefault(),q||(K(!0),Be?f.Z.invoke("POST","/api/v1/policies",{name:ee,policy:ie}).then((function(e){K(!1),a("Policy successfully updated")})).catch((function(e){K(!1),i(e)})):K(!1))};(0,r.useEffect)((function(){se&&(se&&(we?f.Z.invoke("GET","/api/v1/policy?name=".concat(encodeURIComponent(ee))).then((function(e){if(e){T(e),re(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);O(n.Statement)}le(!1)})).catch((function(e){i(e),le(!1)})):le(!1)),xe&&(Re&&!Ae?f.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/users")).then((function(e){G(e),Ze(!1)})).catch((function(e){i(e),Ze(!1)})):Ze(!1)),Se&&(Me&&!Ae?f.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/groups")).then((function(e){J(e),ye(!1)})).catch((function(e){i(e),ye(!1)})):ye(!1)))}),[ee,se,xe,Se,i,G,J,re,T,Ze,ye,Re,Me,we,Ae]);var Le=""!==ee.trim(),Oe=[{type:"view",onClick:function(e){b.Z.push("".concat(A.gA.USERS,"/").concat(e))},disableButtonFunction:function(){return!Ie}}],_e=U.filter((function(e){return e.includes(me)})),De=[{type:"view",onClick:function(e){b.Z.push("".concat(A.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!Te}}],Ue=Y.filter((function(e){return e.includes(je)}));return(0,I.jsxs)(r.Fragment,{children:[Fe&&(0,I.jsx)(w,{deleteOpen:Fe,selectedPolicy:ee,closeDeleteModalAndRefresh:function(e){Ne(!1),b.Z.push(A.gA.POLICIES)}}),(0,I.jsx)(x.Z,{label:(0,I.jsx)(r.Fragment,{children:(0,I.jsx)(N.Z,{to:A.gA.POLICIES,label:"Policy"})})}),(0,I.jsxs)(E.Z,{className:n.pageContainer,children:[(0,I.jsx)(u.ZP,{item:!0,xs:12,children:(0,I.jsx)(C.Z,{icon:(0,I.jsx)(r.Fragment,{children:(0,I.jsx)(P.Z,{width:40})}),title:ee,subTitle:(0,I.jsx)(r.Fragment,{children:"IAM Policy"}),actions:(0,I.jsxs)(r.Fragment,{children:[(0,I.jsx)(M.s,{scopes:[A.Ft.ADMIN_DELETE_POLICY],resource:A.C3,errorProps:{disabled:!0},children:(0,I.jsx)(R.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,I.jsx)(k.Z,{}),onClick:function(){Ne(!0)}})}),(0,I.jsx)(R.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,I.jsx)(S.default,{}),onClick:function(){Ze(!0),ye(!0),le(!0)}})]})})}),(0,I.jsxs)(F.Z,{children:[{tabConfig:{label:"Summary",disabled:!we},content:(0,I.jsxs)(r.Fragment,{children:[(0,I.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,I.jsx)(d.Z,{className:n.paperContainer,children:(0,I.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){ze(e)},children:(0,I.jsxs)(u.ZP,{container:!0,children:[(0,I.jsx)(u.ZP,{item:!0,xs:8,children:(0,I.jsx)("h4",{children:"Statements"})}),(0,I.jsx)(u.ZP,{item:!0,xs:4}),(0,I.jsx)(r.Fragment,{children:L.map((function(e,t){return(0,I.jsx)(u.ZP,{item:!0,xs:12,className:n.statement,children:(0,I.jsxs)(u.ZP,{container:!0,children:[(0,I.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Effect"}),(0,I.jsx)(u.ZP,{item:!0,xs:4,children:(0,I.jsx)(r.Fragment,{children:e.Effect})}),(0,I.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol}),(0,I.jsx)(u.ZP,{item:!0,xs:4}),(0,I.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Actions"}),(0,I.jsx)(u.ZP,{item:!0,xs:4,children:(0,I.jsx)("ul",{children:e.Action&&e.Action.map((function(e,n){return(0,I.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})}),(0,I.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Resources"}),(0,I.jsx)(u.ZP,{item:!0,xs:4,children:(0,I.jsx)("ul",{children:e.Resource&&e.Resource.map((function(e,n){return(0,I.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})})]})},"s-".concat(t))}))})]})})})]})},{tabConfig:{label:"Users",disabled:!Re||Ae},content:(0,I.jsxs)(r.Fragment,{children:[(0,I.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,I.jsxs)(u.ZP,{container:!0,children:[(0,I.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,I.jsx)(g.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){he(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,I.jsx)(j.Z,{position:"start",children:(0,I.jsx)(y.Z,{})})},variant:"standard"})}),(0,I.jsx)(p.Z,{itemActions:Oe,columns:[{label:"Name",elementKey:"name"}],isLoading:xe,records:_e,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Me||Ae},content:(0,I.jsxs)(r.Fragment,{children:[(0,I.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,I.jsxs)(u.ZP,{container:!0,children:[(0,I.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,I.jsx)(g.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){ge(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,I.jsx)(j.Z,{position:"start",children:(0,I.jsx)(y.Z,{})})},variant:"standard"})}),(0,I.jsx)(p.Z,{itemActions:De,columns:[{label:"Name",elementKey:"name"}],isLoading:Se,records:Ue,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!we},content:(0,I.jsxs)(r.Fragment,{children:[(0,I.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,I.jsx)(d.Z,{className:n.paperContainer,children:(0,I.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){ze(e)},children:(0,I.jsxs)(u.ZP,{container:!0,children:[(0,I.jsx)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,I.jsx)(v.Z,{readOnly:!Be,value:ie,onBeforeChange:function(e,n,t){re(t)},editorHeight:"350px"})}),(0,I.jsxs)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!Z&&(0,I.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){ne(""),re("")},children:"Clear"}),(0,I.jsx)(M.s,{scopes:[A.Ft.ADMIN_CREATE_POLICY],resource:A.C3,errorProps:{disabled:!0},children:(0,I.jsx)(m.Z,{type:"submit",variant:"contained",color:"primary",disabled:q||!Le,children:"Save"})})]}),q&&(0,I.jsx)(u.ZP,{item:!0,xs:12,children:(0,I.jsx)(h.Z,{})})]})})})]})}]})]})]})})))},26759:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var i=o(t(45649)),r=t(80184),a=(0,i.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var i=o(t(45649)),r=t(80184),a=(0,i.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var i=o(t(45649)),r=t(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return c},_i:function(){return s},pQ:function(){return d},uU:function(){return l}});var o=t(29439),i=t(72791),r=t(80184),a=i.createContext(null);function c(e){var n=e.children,t=e.value,c=function(){var e=i.useState(null),n=(0,o.Z)(e,2),t=n[0],r=n[1];return i.useEffect((function(){r("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),s=i.useMemo((function(){return{idPrefix:c,value:t}}),[c,t]);return(0,r.jsx)(a.Provider,{value:s,children:n})}function s(){return i.useContext(a)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function d(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var o=t(87462),i=t(63366),r=t(72791),a=t(18073),c=t(83449),s=t(80184),l=["children"],d=r.forwardRef((function(e,n){var t=e.children,d=(0,i.Z)(e,l),u=(0,c._i)();if(null===u)throw new TypeError("No TabContext provided");var m=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":(0,c.uU)(u,e.props.value),id:(0,c.pQ)(u,e.props.value)}):null}));return(0,s.jsx)(a.Z,(0,o.Z)({},d,{ref:n,value:u.value,children:m}))}));n.Z=d},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return x}});var o=t(87462),i=t(63366),r=t(72791),a=t(28182),c=t(47630),s=t(93736),l=t(90767),d=t(95159);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var m=t(83449),h=t(80184),p=["children","className","value"],f=(0,c.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),x=r.forwardRef((function(e,n){var t=(0,s.Z)({props:e,name:"MuiTabPanel"}),r=t.children,c=t.className,d=t.value,x=(0,i.Z)(t,p),Z=(0,o.Z)({},t),v=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},u,n)}(Z),b=(0,m._i)();if(null===b)throw new TypeError("No TabContext provided");var j=(0,m.uU)(b,d),g=(0,m.pQ)(b,d);return(0,h.jsx)(f,(0,o.Z)({"aria-labelledby":g,className:(0,a.Z)(v.root,c),hidden:d!==b.value,id:j,ref:n,role:"tabpanel",ownerState:Z},x,{children:d===b.value&&r}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return k}});var o=t(4942),i=t(63366),r=t(87462),a=t(72791),c=t(90767),s=t(12065),l=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"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),p=(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=t(14036),x=t(93736),Z=t(47630),v=t(95159);function b(e){return(0,v.Z)("MuiCheckbox",e)}var j=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),g=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(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,f.Z)(t.color))]]}})((function(e){var n,t=e.theme,i=e.ownerState;return(0,r.Z)({color:t.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===i.color?t.palette.action.active:t.palette[i.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(n={},(0,o.Z)(n,"&.".concat(j.checked,", &.").concat(j.indeterminate),{color:t.palette[i.color].main}),(0,o.Z)(n,"&.".concat(j.disabled),{color:t.palette.action.disabled}),n))})),P=(0,u.jsx)(h,{}),S=(0,u.jsx)(m,{}),y=(0,u.jsx)(p,{}),k=a.forwardRef((function(e,n){var t,o,s=(0,x.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?P:l,m=s.color,h=void 0===m?"primary":m,p=s.icon,Z=void 0===p?S:p,v=s.indeterminate,j=void 0!==v&&v,k=s.indeterminateIcon,E=void 0===k?y:k,F=s.inputProps,N=s.size,A=void 0===N?"medium":N,M=(0,i.Z)(s,g),T=j?E:Z,R=j?E:d,I=(0,r.Z)({},s,{color:h,indeterminate:j,size:A}),w=function(e){var n=e.classes,t=e.indeterminate,o=e.color,i={root:["root",t&&"indeterminate","color".concat((0,f.Z)(o))]},a=(0,c.Z)(i,b,n);return(0,r.Z)({},n,a)}(I);return(0,u.jsx)(C,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":j},F),icon:a.cloneElement(T,{fontSize:null!=(t=T.props.fontSize)?t:A}),checkedIcon:a.cloneElement(R,{fontSize:null!=(o=R.props.fontSize)?o:A}),ownerState:I,ref:n},M,{classes:w}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var o=t(4942),i=t(63366),r=t(87462),a=t(72791),c=t(28182),s=t(90767),l=t(14036),d=t(20890),u=t(93840),m=t(52930),h=t(47630),p=t(95159);function f(e){return(0,p.Z)("MuiInputAdornment",e)}var x,Z=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),v=t(93736),b=t(80184),j=["children","className","component","disablePointerEvents","disableTypography","position","variant"],g=(0,h.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,r.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"})})),C=a.forwardRef((function(e,n){var t=(0,v.Z)({props:e,name:"MuiInputAdornment"}),o=t.children,h=t.className,p=t.component,Z=void 0===p?"div":p,C=t.disablePointerEvents,P=void 0!==C&&C,S=t.disableTypography,y=void 0!==S&&S,k=t.position,E=t.variant,F=(0,i.Z)(t,j),N=(0,m.Z)()||{},A=E;E&&N.variant,N&&!A&&(A=N.variant);var M=(0,r.Z)({},t,{hiddenLabel:N.hiddenLabel,size:N.size,disablePointerEvents:P,position:k,variant:A}),T=function(e){var n=e.classes,t=e.disablePointerEvents,o=e.hiddenLabel,i=e.position,r=e.size,a=e.variant,c={root:["root",t&&"disablePointerEvents",i&&"position".concat((0,l.Z)(i)),a,o&&"hiddenLabel",r&&"size".concat((0,l.Z)(r))]};return(0,s.Z)(c,f,n)}(M);return(0,b.jsx)(u.Z.Provider,{value:null,children:(0,b.jsx)(g,(0,r.Z)({as:Z,ownerState:M,className:(0,c.Z)(T.root,h),ref:n},F,{children:"string"!==typeof o||y?(0,b.jsxs)(a.Fragment,{children:["start"===k?x||(x=(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),i=t(93629),r=t(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&r(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=1955.27cc0d9b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.27cc0d9b.chunk.js.map b/portal-ui/build/static/js/1955.27cc0d9b.chunk.js.map new file mode 100644 index 000000000..d4a9db87b --- /dev/null +++ b/portal-ui/build/static/js/1955.27cc0d9b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1955.27cc0d9b.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","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/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 });\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 { 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 tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n
    Groups
    \n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n \n
    \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n
    Raw Policy
    \n \n ) => {\n 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 PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. 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":["langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","color","border","borderRight","fontSize","fontWeight","dark","darkTheme","withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","className","inputLabel","tooltipContainer","title","placement","item","xs","sx","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","background","display","alignItems","padding","paddingRight","justifyContent","width","marginLeft","onClick","text","icon","variant","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","flexFlow","borderBottom","marginRight","marginBottom","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","style","disableRipple","disableTouchRipple","focusRipple","DeletePolicy","withSuspense","connector","connect","state","features","console","session","setErrorSnackMessage","setSnackBarMessage","buttonContainer","textAlign","pageContainer","paperContainer","breadcrumLink","textDecoration","statement","borderRadius","labelCol","actionsTray","searchField","modalBasic","containerForHeader","spacing","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","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","saveRecord","preventDefault","api","name","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","Fragment","selectedPolicy","closeDeleteModalAndRefresh","refresh","to","subTitle","actions","scopes","resource","errorProps","disabled","sectionTitle","noValidate","autoComplete","onSubmit","e","container","stmt","i","Effect","Action","act","actIndex","Resource","res","resIndex","placeholder","id","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","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","root","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","palette","secondary","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","slots","composedClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","whiteSpace","inputAdornmentClasses","marginTop","pointerEvents","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.95db0000.chunk.js b/portal-ui/build/static/js/1955.95db0000.chunk.js deleted file mode 100644 index f94643924..000000000 --- a/portal-ui/build/static/js/1955.95db0000.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(93656),s=t(64554),c=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,l=e.executeOnClick;return(0,c.jsx)(s.Z,{sx:{display:"flex",alignItems:"center"},children:(0,c.jsx)(i.rU,{to:n,className:"".concat(o.link," ").concat(r||""),onClick:function(){l&&l()},children:(0,c.jsxs)("div",{className:o.iconBox,children:[(0,c.jsx)("div",{className:o.icon,children:(0,c.jsx)(a.xN,{})}),(0,c.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),c=["onClick","text","disabled","tooltip","icon","className"],l=(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=l(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,c);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),c=t(13400),l=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)(c.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)(l.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,t){"use strict";var i=t(93433),o=t(29439),r=t(1413),a=t(72791),s=t(61889),c=(t(2574),t(69874)),l=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(93656),v=t(40603),j=t(78029),C=t.n(j),y=t(64294),P=t(80184),k={json:d.AV,yaml:function(){return l.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}),S=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)({},Z.YI))}))((function(e){var n=e.value,t=e.label,r=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,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,F=(0,a.useState)(!1),I=(0,o.Z)(F,2),T=I[0],A=I[1],M=[];return k[x]&&(M=[].concat((0,i.Z)(M),[k[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)(c.ZP,{value:n,theme:T?S: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:T?"#282c34":"#f7f7f7"},children:(0,P.jsxs)(h.Z,{className:T?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,P.jsx)(v.Z,{tooltip:"Change theme",onClick:function(){A(!T)},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),c=t(20890),l=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(93656),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)(c.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)(l.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,c=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(c||""),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 A}});var i=t(1413),o=t(29439),r=t(72791),a=t(64554),s=t(43896),c=t(80184),l=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,c.jsx)(l.Provider,{value:a,children:n})}function u(){return r.useContext(l)}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,c.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 k=["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)}})),S=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,k),s=(0,h.Z)({},t),l=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,c.jsx)(N,(0,h.Z)({"aria-labelledby":b,className:(0,g.Z)(l.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),F=t(11135),I=t(95193),T={minHeight:60},A=(0,E.Z)((function(e){return(0,F.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,l=e.selectedTab,u=void 0===l?"0":l,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,I.Z)(g.breakpoints.down("md")),j=[],C=[];return n?(n.forEach((function(e){j.push(e.tabConfig),C.push(e.content)})),(0,c.jsx)(d,{value:"".concat(f),children:(0,c.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,c.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,c.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,c.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:T},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,c.jsxs)(a.Z,{className:t.tabContentContainer,children:[p?null:C.map((function(e,n){return(0,c.jsx)(S,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,c.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},23533:function(e,n,t){"use strict";t.r(n);var i=t(29439),o=t(1413),r=t(72791),a=t(60364),s=t(11135),c=t(25787),l=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),k=t(74900),N=t(54599),S=t(74794),E=t(14662),w=t(84669),F=t(56087),I=t(38442),T=t(75578),A=t(40603),M=t(80184),R=(0,T.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,c.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"}},l.OR),l.qg),l.oO),(0,l.Bz)(e.spacing(4))))}))(B((function(e){var n=e.classes,t=e.match,o=e.setErrorSnackMessage,a=e.setSnackBarMessage,s=e.features,c=(0,r.useState)(null),l=(0,i.Z)(c,2),b=l[0],T=l[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),ce=se[0],le=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],ke=ye[1],Ne=(0,r.useState)(!1),Se=(0,i.Z)(Ne,2),Ee=Se[0],we=Se[1],Fe=s&&s.includes("ldap-idp")||!1,Ie=(0,I.F)(F.C3,[F.Ft.ADMIN_LIST_GROUPS,F.Ft.ADMIN_GET_GROUP],!0),Te=(0,I.F)(F.C3,[F.Ft.ADMIN_GET_GROUP]),Ae=(0,I.F)(F.C3,[F.Ft.ADMIN_LIST_GROUPS]),Me=(0,I.F)(F.C3,[F.Ft.ADMIN_GET_USER]),Re=(0,I.F)(F.C3,[F.Ft.ADMIN_GET_POLICY]),Be=(0,I.F)(F.C3,[F.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(){ce&&(ce&&(Re?x.Z.invoke("GET","/api/v1/policy?name=".concat(encodeURIComponent(ee))).then((function(e){if(e){T(e),re(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);z(n.Statement)}le(!1)})).catch((function(e){o(e),le(!1)})):le(!1)),fe&&(Ae&&!Fe?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&&(Ie&&!Fe?x.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/groups")).then((function(e){Y(e),ke(!1)})).catch((function(e){o(e),ke(!1)})):ke(!1)))}),[ee,ce,fe,Pe,o,G,Y,re,T,be,ke,Ae,Ie,Re,Fe]);var Oe=""!==ee.trim(),ze=[{type:"view",onClick:function(e){g.Z.push("".concat(F.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(F.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!Te}}],_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(F.gA.POLICIES)}}),(0,M.jsx)(f.Z,{label:(0,M.jsx)(r.Fragment,{children:(0,M.jsx)(w.Z,{to:F.gA.POLICIES,label:"Policy"})})}),(0,M.jsxs)(S.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)(I.s,{scopes:[F.Ft.ADMIN_DELETE_POLICY],resource:F.C3,errorProps:{disabled:!0},children:(0,M.jsx)(A.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,M.jsx)(N.Z,{}),onClick:function(){we(!0)}})}),(0,M.jsx)(A.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,M.jsx)(P.default,{}),onClick:function(){be(!0),ke(!0),le(!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:!Ae||Fe},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)(k.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:!Ie||Fe},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)(k.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)(I.s,{scopes:[F.Ft.ADMIN_CREATE_POLICY],resource:F.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),c=t(12065),l=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)(l.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,c.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,{}),k=(0,u.jsx)(h,{}),N=a.forwardRef((function(e,n){var t,i,c=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?y:l,m=c.color,p=void 0===m?"primary":m,h=c.icon,b=void 0===h?P:h,Z=c.indeterminate,v=void 0!==Z&&Z,N=c.indeterminateIcon,S=void 0===N?k:N,E=c.inputProps,w=c.size,F=void 0===w?"medium":w,I=(0,o.Z)(c,j),T=v?S:b,A=v?S:d,M=(0,r.Z)({},c,{color:p,indeterminate:v,size:F}),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(T,{fontSize:null!=(t=T.props.fontSize)?t:F}),checkedIcon:a.cloneElement(A,{fontSize:null!=(i=A.props.fontSize)?i:F}),ownerState:M,ref:n},I,{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),c=t(90767),l=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,l.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,k=void 0!==P&&P,N=t.position,S=t.variant,E=(0,o.Z)(t,v),w=(0,m.Z)()||{},F=S;S&&w.variant,w&&!F&&(F=w.variant);var I=(0,r.Z)({},t,{hiddenLabel:w.hiddenLabel,size:w.size,disablePointerEvents:y,position:N,variant:F}),T=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,l.Z)(o)),a,i&&"hiddenLabel",r&&"size".concat((0,l.Z)(r))]};return(0,c.Z)(s,x,n)}(I);return(0,g.jsx)(u.Z.Provider,{value:null,children:(0,g.jsx)(j,(0,r.Z)({as:b,ownerState:I,className:(0,s.Z)(T.root,p),ref:n},E,{children:"string"!==typeof i||k?(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.95db0000.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.95db0000.chunk.js.map b/portal-ui/build/static/js/1955.95db0000.chunk.js.map deleted file mode 100644 index dccd885d5..000000000 --- a/portal-ui/build/static/js/1955.95db0000.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1955.95db0000.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 });\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","value","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","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/5315.f76aa5f9.chunk.js b/portal-ui/build/static/js/2011.53c6f61f.chunk.js similarity index 99% rename from portal-ui/build/static/js/5315.f76aa5f9.chunk.js rename to portal-ui/build/static/js/2011.53c6f61f.chunk.js index 8e2805ff1..e4c01d9a9 100644 --- a/portal-ui/build/static/js/5315.f76aa5f9.chunk.js +++ b/portal-ui/build/static/js/2011.53c6f61f.chunk.js @@ -1,3 +1,3 @@ -/*! For license information please see 5315.f76aa5f9.chunk.js.LICENSE.txt */ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5315],{81694:function(t,e){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var t=[],e=0;eo)if(Math.abs(h*s-l*f)>o&&a){var d=r-u,y=i-c,v=s*s+l*l,g=d*d+y*y,m=Math.sqrt(v),b=Math.sqrt(p),x=a*Math.tan((n-Math.acos((v+p-g)/(2*m*b)))/2),w=x/b,O=x/m;Math.abs(w-1)>o&&(this._+="L"+(t+w*f)+","+(e+w*h)),this._+="A"+a+","+a+",0,0,"+ +(h*d>f*y)+","+(this._x1=t+O*s)+","+(this._y1=e+O*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,a,u,c,s){t=+t,e=+e,s=!!s;var l=(a=+a)*Math.cos(u),f=a*Math.sin(u),h=t+l,p=e+f,d=1^s,y=s?u-c:c-u;if(a<0)throw new Error("negative radius: "+a);null===this._x1?this._+="M"+h+","+p:(Math.abs(this._x1-h)>o||Math.abs(this._y1-p)>o)&&(this._+="L"+h+","+p),a&&(y<0&&(y=y%r+r),y>i?this._+="A"+a+","+a+",0,1,"+d+","+(t-l)+","+(e-f)+"A"+a+","+a+",0,1,"+d+","+(this._x1=h)+","+(this._y1=p):y>o&&(this._+="A"+a+","+a+",0,"+ +(y>=n)+","+d+","+(this._x1=t+a*Math.cos(c))+","+(this._y1=e+a*Math.sin(c))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}},e.Z=u},1925:function(t,e,n){"use strict";n.d(e,{Z:function(){return u},x:function(){return s}});var r=n(29439);function o(t,e,n){t=+t,e=+e,n=(o=arguments.length)<2?(e=t,t=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((e-t)/n)),i=new Array(o);++r(u=(a=Math.ceil(h/7))>u?a+1:u+1)&&(i=u,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((u=s.length)-(i=l.length)<0&&(i=u,r=l,l=s,s=r),n=0;i;)n=(s[--i]=s[i]+l[i]+n)/y|0,s[i]%=y;for(n&&(s.unshift(n),++o),u=s.length;0==s[--u];)s.pop();return e.d=s,e.e=o,c?A(e,h):e}function x(t,e,n){if(t!==~~t||tn)throw Error(l+t)}function w(t){var e,n,r,o=t.length-1,i="",a=t[0];if(o>0){for(i+=a,e=1;et.e^i.s<0?1:-1;for(e=0,n=(r=i.d.length)<(o=t.d.length)?r:o;et.d[e]^i.s<0?1:-1;return r===o?0:r>o^i.s<0?1:-1},m.decimalPlaces=m.dp=function(){var t=this,e=t.d.length-1,n=7*(e-t.e);if(e=t.d[e])for(;e%10==0;e/=10)n--;return n<0?0:n},m.dividedBy=m.div=function(t){return O(this,new this.constructor(t))},m.dividedToIntegerBy=m.idiv=function(t){var e=this.constructor;return A(O(this,new e(t),0,1),e.precision)},m.equals=m.eq=function(t){return!this.cmp(t)},m.exponent=function(){return E(this)},m.greaterThan=m.gt=function(t){return this.cmp(t)>0},m.greaterThanOrEqualTo=m.gte=function(t){return this.cmp(t)>=0},m.isInteger=m.isint=function(){return this.e>this.d.length-2},m.isNegative=m.isneg=function(){return this.s<0},m.isPositive=m.ispos=function(){return this.s>0},m.isZero=function(){return 0===this.s},m.lessThan=m.lt=function(t){return this.cmp(t)<0},m.lessThanOrEqualTo=m.lte=function(t){return this.cmp(t)<1},m.logarithm=m.log=function(t){var e,n=this,r=n.constructor,o=r.precision,a=o+5;if(void 0===t)t=new r(10);else if((t=new r(t)).s<1||t.eq(i))throw Error(s+"NaN");if(n.s<1)throw Error(s+(n.s?"NaN":"-Infinity"));return n.eq(i)?new r(0):(c=!1,e=O(M(n,a),M(t,a),a),c=!0,A(e,o))},m.minus=m.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?P(e,t):b(e,(t.s=-t.s,t))},m.modulo=m.mod=function(t){var e,n=this,r=n.constructor,o=r.precision;if(!(t=new r(t)).s)throw Error(s+"NaN");return n.s?(c=!1,e=O(n,t,0,1).times(t),c=!0,n.minus(e)):A(new r(n),o)},m.naturalExponential=m.exp=function(){return _(this)},m.naturalLogarithm=m.ln=function(){return M(this)},m.negated=m.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t},m.plus=m.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?b(e,t):P(e,(t.s=-t.s,t))},m.precision=m.sd=function(t){var e,n,r,o=this;if(void 0!==t&&t!==!!t&&1!==t&&0!==t)throw Error(l+t);if(e=E(o)+1,n=7*(r=o.d.length-1)+1,r=o.d[r]){for(;r%10==0;r/=10)n--;for(r=o.d[0];r>=10;r/=10)n++}return t&&e>n?e:n},m.squareRoot=m.sqrt=function(){var t,e,n,r,o,i,a,u=this,l=u.constructor;if(u.s<1){if(!u.s)return new l(0);throw Error(s+"NaN")}for(t=E(u),c=!1,0==(o=Math.sqrt(+u))||o==1/0?(((e=w(u.d)).length+t)%2==0&&(e+="0"),o=Math.sqrt(e),t=h((t+1)/2)-(t<0||t%2),r=new l(e=o==1/0?"5e"+t:(e=o.toExponential()).slice(0,e.indexOf("e")+1)+t)):r=new l(o.toString()),o=a=(n=l.precision)+3;;)if(r=(i=r).plus(O(u,i,a+2)).times(.5),w(i.d).slice(0,a)===(e=w(r.d)).slice(0,a)){if(e=e.slice(a-3,a+1),o==a&&"4999"==e){if(A(i,n+1,0),i.times(i).eq(u)){r=i;break}}else if("9999"!=e)break;a+=4}return c=!0,A(r,n)},m.times=m.mul=function(t){var e,n,r,o,i,a,u,s,l,f=this,h=f.constructor,p=f.d,d=(t=new h(t)).d;if(!f.s||!t.s)return new h(0);for(t.s*=f.s,n=f.e+t.e,(s=p.length)<(l=d.length)&&(i=p,p=d,d=i,a=s,s=l,l=a),i=[],r=a=s+l;r--;)i.push(0);for(r=l;--r>=0;){for(e=0,o=s+r;o>r;)u=i[o]+d[r]*p[o-r-1]+e,i[o--]=u%y|0,e=u/y|0;i[o]=(i[o]+e)%y|0}for(;!i[--a];)i.pop();return e?++n:i.shift(),t.d=i,t.e=n,c?A(t,h.precision):t},m.toDecimalPlaces=m.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),void 0===t?n:(x(t,0,a),void 0===e?e=r.rounding:x(e,0,8),A(n,t+E(n)+1,e))},m.toExponential=function(t,e){var n,r=this,o=r.constructor;return void 0===t?n=T(r,!0):(x(t,0,a),void 0===e?e=o.rounding:x(e,0,8),n=T(r=A(new o(r),t+1,e),!0,t+1)),n},m.toFixed=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?T(o):(x(t,0,a),void 0===e?e=i.rounding:x(e,0,8),n=T((r=A(new i(o),t+E(o)+1,e)).abs(),!1,t+E(r)+1),o.isneg()&&!o.isZero()?"-"+n:n)},m.toInteger=m.toint=function(){var t=this,e=t.constructor;return A(new e(t),E(t)+1,e.rounding)},m.toNumber=function(){return+this},m.toPower=m.pow=function(t){var e,n,r,o,a,u,l=this,f=l.constructor,p=+(t=new f(t));if(!t.s)return new f(i);if(!(l=new f(l)).s){if(t.s<1)throw Error(s+"Infinity");return l}if(l.eq(i))return l;if(r=f.precision,t.eq(i))return A(l,r);if(u=(e=t.e)>=(n=t.d.length-1),a=l.s,u){if((n=p<0?-p:p)<=v){for(o=new f(i),e=Math.ceil(r/7+4),c=!1;n%2&&C((o=o.times(l)).d,e),0!==(n=h(n/2));)C((l=l.times(l)).d,e);return c=!0,t.s<0?new f(i).div(o):A(o,r)}}else if(a<0)throw Error(s+"NaN");return a=a<0&&1&t.d[Math.max(e,n)]?-1:1,l.s=1,c=!1,o=t.times(M(l,r+12)),c=!0,(o=_(o)).s=a,o},m.toPrecision=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?r=T(o,(n=E(o))<=i.toExpNeg||n>=i.toExpPos):(x(t,1,a),void 0===e?e=i.rounding:x(e,0,8),r=T(o=A(new i(o),t,e),t<=(n=E(o))||n<=i.toExpNeg,t)),r},m.toSignificantDigits=m.tosd=function(t,e){var n=this.constructor;return void 0===t?(t=n.precision,e=n.rounding):(x(t,1,a),void 0===e?e=n.rounding:x(e,0,8)),A(new n(this),t,e)},m.toString=m.valueOf=m.val=m.toJSON=function(){var t=this,e=E(t),n=t.constructor;return T(t,e<=n.toExpNeg||e>=n.toExpPos)};var O=function(){function t(t,e){var n,r=0,o=t.length;for(t=t.slice();o--;)n=t[o]*e+r,t[o]=n%y|0,r=n/y|0;return r&&t.unshift(r),t}function e(t,e,n,r){var o,i;if(n!=r)i=n>r?1:-1;else for(o=i=0;oe[o]?1:-1;break}return i}function n(t,e,n){for(var r=0;n--;)t[n]-=r,r=t[n]1;)t.shift()}return function(r,o,i,a){var u,c,l,f,h,p,d,v,g,m,b,x,w,O,_,k,S,M,j=r.constructor,P=r.s==o.s?1:-1,T=r.d,C=o.d;if(!r.s)return new j(r);if(!o.s)throw Error(s+"Division by zero");for(c=r.e-o.e,S=C.length,_=T.length,v=(d=new j(P)).d=[],l=0;C[l]==(T[l]||0);)++l;if(C[l]>(T[l]||0)&&--c,(x=null==i?i=j.precision:a?i+(E(r)-E(o))+1:i)<0)return new j(0);if(x=x/7+2|0,l=0,1==S)for(f=0,C=C[0],x++;(l<_||f)&&x--;l++)w=f*y+(T[l]||0),v[l]=w/C|0,f=w%C|0;else{for((f=y/(C[0]+1)|0)>1&&(C=t(C,f),T=t(T,f),S=C.length,_=T.length),O=S,m=(g=T.slice(0,S)).length;m=y/2&&++k;do{f=0,(u=e(C,g,S,m))<0?(b=g[0],S!=m&&(b=b*y+(g[1]||0)),(f=b/k|0)>1?(f>=y&&(f=y-1),1==(u=e(h=t(C,f),g,p=h.length,m=g.length))&&(f--,n(h,S16)throw Error(f+E(t));if(!t.s)return new h(i);for(null==e?(c=!1,u=d):u=e,a=new h(.03125);t.abs().gte(.1);)t=t.times(a),l+=5;for(u+=Math.log(p(2,l))/Math.LN10*2+5|0,n=r=o=new h(i),h.precision=u;;){if(r=A(r.times(t),u),n=n.times(++s),w((a=o.plus(O(r,n,u))).d).slice(0,u)===w(o.d).slice(0,u)){for(;l--;)o=A(o.times(o),u);return h.precision=d,null==e?(c=!0,A(o,d)):o}o=a}}function E(t){for(var e=7*t.e,n=t.d[0];n>=10;n/=10)e++;return e}function k(t,e,n){if(e>t.LN10.sd())throw c=!0,n&&(t.precision=n),Error(s+"LN10 precision limit exceeded");return A(new t(t.LN10),e)}function S(t){for(var e="";t--;)e+="0";return e}function M(t,e){var n,r,o,a,u,l,f,h,p,d=1,y=t,v=y.d,g=y.constructor,m=g.precision;if(y.s<1)throw Error(s+(y.s?"NaN":"-Infinity"));if(y.eq(i))return new g(0);if(null==e?(c=!1,h=m):h=e,y.eq(10))return null==e&&(c=!0),k(g,h);if(h+=10,g.precision=h,r=(n=w(v)).charAt(0),a=E(y),!(Math.abs(a)<15e14))return f=k(g,h+2,m).times(a+""),y=M(new g(r+"."+n.slice(1)),h-10).plus(f),g.precision=m,null==e?(c=!0,A(y,m)):y;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=w((y=y.times(t)).d)).charAt(0),d++;for(a=E(y),r>1?(y=new g("0."+n),a++):y=new g(r+"."+n.slice(1)),l=u=y=O(y.minus(i),y.plus(i),h),p=A(y.times(y),h),o=3;;){if(u=A(u.times(p),h),w((f=l.plus(O(u,new g(o),h))).d).slice(0,h)===w(l.d).slice(0,h))return l=l.times(2),0!==a&&(l=l.plus(k(g,h+2,m).times(a+""))),l=O(l,new g(d),h),g.precision=m,null==e?(c=!0,A(l,m)):l;l=f,o+=2}}function j(t,e){var n,r,o;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;48===e.charCodeAt(r);)++r;for(o=e.length;48===e.charCodeAt(o-1);)--o;if(e=e.slice(r,o)){if(o-=r,n=n-r-1,t.e=h(n/7),t.d=[],r=(n+1)%7,n<0&&(r+=7),rg||t.e<-g))throw Error(f+n)}else t.s=0,t.e=0,t.d=[0];return t}function A(t,e,n){var r,o,i,a,u,s,l,d,v=t.d;for(a=1,i=v[0];i>=10;i/=10)a++;if((r=e-a)<0)r+=7,o=e,l=v[d=0];else{if((d=Math.ceil((r+1)/7))>=(i=v.length))return t;for(l=i=v[d],a=1;i>=10;i/=10)a++;o=(r%=7)-7+a}if(void 0!==n&&(u=l/(i=p(10,a-o-1))%10|0,s=e<0||void 0!==v[d+1]||l%i,s=n<4?(u||s)&&(0==n||n==(t.s<0?3:2)):u>5||5==u&&(4==n||s||6==n&&(r>0?o>0?l/p(10,a-o):0:v[d-1])%10&1||n==(t.s<0?8:7))),e<1||!v[0])return s?(i=E(t),v.length=1,e=e-i-1,v[0]=p(10,(7-e%7)%7),t.e=h(-e/7)||0):(v.length=1,v[0]=t.e=t.s=0),t;if(0==r?(v.length=d,i=1,d--):(v.length=d+1,i=p(10,7-r),v[d]=o>0?(l/p(10,a-o)%p(10,o)|0)*i:0),s)for(;;){if(0==d){(v[0]+=i)==y&&(v[0]=1,++t.e);break}if(v[d]+=i,v[d]!=y)break;v[d--]=0,i=1}for(r=v.length;0===v[--r];)v.pop();if(c&&(t.e>g||t.e<-g))throw Error(f+E(t));return t}function P(t,e){var n,r,o,i,a,u,s,l,f,h,p=t.constructor,d=p.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new p(t),c?A(e,d):e;if(s=t.d,h=e.d,r=e.e,l=t.e,s=s.slice(),a=l-r){for((f=a<0)?(n=s,a=-a,u=h.length):(n=h,r=l,u=s.length),a>(o=Math.max(Math.ceil(d/7),u)+2)&&(a=o,n.length=1),n.reverse(),o=a;o--;)n.push(0);n.reverse()}else{for((f=(o=s.length)<(u=h.length))&&(u=o),o=0;o0;--o)s[u++]=0;for(o=h.length;o>a;){if(s[--o]0?i=i.charAt(0)+"."+i.slice(1)+S(r):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(o<0?"e":"e+")+o):o<0?(i="0."+S(-o-1)+i,n&&(r=n-a)>0&&(i+=S(r))):o>=a?(i+=S(o+1-a),n&&(r=n-o-1)>0&&(i=i+"."+S(r))):((r=o+1)0&&(o+1===a&&(i+="."),i+=S(r))),t.s<0?"-"+i:i}function C(t,e){if(t.length>e)return t.length=e,!0}function I(t){if(!t||"object"!==typeof t)throw Error(s+"Object expected");var e,n,r,o=["precision",1,a,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e=o[e+1]&&r<=o[e+2]))throw Error(l+n+": "+r);this[n]=r}if(void 0!==(r=t[n="LN10"])){if(r!=Math.LN10)throw Error(l+n+": "+r);this[n]=new this(r)}return this}u=function t(e){var n,r,o;function i(t){var e=this;if(!(e instanceof i))return new i(t);if(e.constructor=i,t instanceof i)return e.s=t.s,e.e=t.e,void(e.d=(t=t.d)?t.slice():t);if("number"===typeof t){if(0*t!==0)throw Error(l+t);if(t>0)e.s=1;else{if(!(t<0))return e.s=0,e.e=0,void(e.d=[0]);t=-t,e.s=-1}return t===~~t&&t<1e7?(e.e=0,void(e.d=[t])):j(e,t.toString())}if("string"!==typeof t)throw Error(l+t);if(45===t.charCodeAt(0)?(t=t.slice(1),e.s=-1):e.s=1,!d.test(t))throw Error(l+t);j(e,t)}if(i.prototype=m,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=t,i.config=i.set=I,void 0===e&&(e={}),e)for(o=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n-1}},32683:function(t){t.exports=function(t,e,n){for(var r=-1,o=null==t?0:t.length;++r0&&i(l)?n>1?t(l,n-1,i,a,u):r(u,l):a||(u[u.length]=l)}return u}},81954:function(t){t.exports=function(t,e){return t>e}},24842:function(t,e,n){var r=n(2045),o=n(50505),i=n(77167);t.exports=function(t,e,n){return e===e?i(t,e,n):r(t,o,n)}},50505:function(t){t.exports=function(t){return t!==t}},92580:function(t){t.exports=function(t,e){return to?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var i=Array(o);++r=200){var y=e?null:u(t);if(y)return c(y);h=!1,l=a,d=new r}else d=e?[]:p;t:for(;++s=o?t:r(t,e,n)}},88558:function(t,e,n){var r=n(70152);t.exports=function(t,e){if(t!==e){var n=void 0!==t,o=null===t,i=t===t,a=r(t),u=void 0!==e,c=null===e,s=e===e,l=r(e);if(!c&&!l&&!a&&t>e||a&&u&&s&&!c&&!l||o&&u&&s||!n&&s||!i)return 1;if(!o&&!a&&!l&&t=c?s:s*("desc"==n[o]?-1:1)}return t.index-e.index}},10322:function(t,e,n){var r=n(69813),o=n(47302),i=n(27580),a=n(63518);t.exports=function(t){return function(e){e=a(e);var n=o(e)?i(e):void 0,u=n?n[0]:e.charAt(0),c=n?r(n,1).join(""):e.slice(1);return u[t]()+c}}},95481:function(t,e,n){var r=n(56025),o=n(21473),i=n(12742);t.exports=function(t){return function(e,n,a){var u=Object(e);if(!o(e)){var c=r(n,3);e=i(e),n=function(t){return c(u[t],t,u)}}var s=t(e,n,a);return s>-1?u[c?e[s]:s]:void 0}}},56381:function(t,e,n){var r=n(7255),o=n(3195),i=n(91495);t.exports=function(t){return function(e,n,a){return a&&"number"!=typeof a&&o(e,n,a)&&(n=a=void 0),e=i(e),void 0===n?(n=e,e=0):n=i(n),a=void 0===a?e0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},77167:function(t){t.exports=function(t,e,n){for(var r=n-1,o=t.length;++r=e||n<0||v&&t-d>=l}function w(){var t=o();if(x(t))return O(t);h=setTimeout(w,function(t){var n=e-(t-p);return v?u(n,l-(t-d)):n}(t))}function O(t){return h=void 0,g&&c?m(t):(c=s=void 0,f)}function _(){var t=o(),n=x(t);if(c=arguments,s=this,p=t,n){if(void 0===h)return b(p);if(v)return clearTimeout(h),h=setTimeout(w,e),m(p)}return void 0===h&&(h=setTimeout(w,e)),f}return e=i(e)||0,r(n)&&(y=!!n.leading,l=(v="maxWait"in n)?a(i(n.maxWait)||0,e):l,g="trailing"in n?!!n.trailing:g),_.cancel=function(){void 0!==h&&clearTimeout(h),d=0,c=p=s=h=void 0},_.flush=function(){return void 0===h?f:O(o())},_}},82730:function(t,e,n){var r=n(18573),o=n(39863),i=n(56025),a=n(93629),u=n(3195);t.exports=function(t,e,n){var c=a(t)?r:o;return n&&u(t,e,n)&&(e=void 0),c(t,i(e,3))}},61211:function(t,e,n){var r=n(95481)(n(51475));t.exports=r},51475:function(t,e,n){var r=n(2045),o=n(56025),i=n(39753),a=Math.max;t.exports=function(t,e,n){var u=null==t?0:t.length;if(!u)return-1;var c=null==n?0:i(n);return c<0&&(c=a(u+c,0)),r(t,o(e,3),c)}},5008:function(t,e,n){var r=n(55182),o=n(72034);t.exports=function(t,e){return r(o(t,e),1)}},65127:function(t,e,n){var r=n(39066),o=n(43141);t.exports=function(t){return!0===t||!1===t||o(t)&&"[object Boolean]"==r(t)}},82066:function(t,e,n){var r=n(30298);t.exports=function(t){return r(t)&&t!=+t}},42854:function(t){t.exports=function(t){return null==t}},30298:function(t,e,n){var r=n(39066),o=n(43141);t.exports=function(t){return"number"==typeof t||o(t)&&"[object Number]"==r(t)}},26769:function(t,e,n){var r=n(39066),o=n(93629),i=n(43141);t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&"[object String]"==r(t)}},15727:function(t){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},72034:function(t,e,n){var r=n(68950),o=n(56025),i=n(53849),a=n(93629);t.exports=function(t,e){return(a(t)?r:i)(t,o(e,3))}},37702:function(t,e,n){var r=n(32526),o=n(15358),i=n(56025);t.exports=function(t,e){var n={};return e=i(e,3),o(t,(function(t,o,i){r(n,o,e(t,o,i))})),n}},29627:function(t,e,n){var r=n(43079),o=n(81954),i=n(2100);t.exports=function(t){return t&&t.length?r(t,i,o):void 0}},66452:function(t,e,n){var r=n(43079),o=n(92580),i=n(2100);t.exports=function(t){return t&&t.length?r(t,i,o):void 0}},19694:function(t){t.exports=function(){}},50072:function(t,e,n){var r=n(97009);t.exports=function(){return r.Date.now()}},66222:function(t,e,n){var r=n(56381)();t.exports=r},14064:function(t,e,n){var r=n(47897),o=n(56025),i=n(59204),a=n(93629),u=n(3195);t.exports=function(t,e,n){var c=a(t)?r:i;return n&&u(t,e,n)&&(e=void 0),c(t,o(e,3))}},64286:function(t,e,n){var r=n(55182),o=n(93226),i=n(58794),a=n(3195),u=i((function(t,e){if(null==t)return[];var n=e.length;return n>1&&a(t,e[0],e[1])?e=[]:n>2&&a(e[0],e[1],e[2])&&(e=[e[0]]),o(t,r(e,1),[])}));t.exports=u},33038:function(t,e,n){var r=n(48573),o=n(8092);t.exports=function(t,e,n){var i=!0,a=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return o(n)&&(i="leading"in n?!!n.leading:i,a="trailing"in n?!!n.trailing:a),r(t,e,{leading:i,maxWait:e,trailing:a})}},91495:function(t,e,n){var r=n(42582),o=1/0;t.exports=function(t){return t?(t=r(t))===o||t===-1/0?17976931348623157e292*(t<0?-1:1):t===t?t:0:0===t?t:0}},39753:function(t,e,n){var r=n(91495);t.exports=function(t){var e=r(t),n=e%1;return e===e?n?e-n:e:0}},42582:function(t,e,n){var r=n(20821),o=n(8092),i=n(70152),a=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=u.test(t);return n||c.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}},66339:function(t,e,n){var r=n(56025),o=n(39602);t.exports=function(t,e){return t&&t.length?o(t,r(e,2)):[]}},52085:function(t,e,n){var r=n(10322)("toUpperCase");t.exports=r},48872:function(t){(function(){var e,n,r,o,i,a;"undefined"!==typeof performance&&null!==performance&&performance.now?t.exports=function(){return performance.now()}:"undefined"!==typeof process&&null!==process&&process.hrtime?(t.exports=function(){return(e()-i)/1e6},n=process.hrtime,o=(e=function(){var t;return 1e9*(t=n())[0]+t[1]})(),a=1e9*process.uptime(),i=o-a):Date.now?(t.exports=function(){return Date.now()-r},r=Date.now()):(t.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)},55475:function(t,e,n){for(var r=n(48872),o="undefined"===typeof window?n.g:window,i=["moz","webkit"],a="AnimationFrame",u=o["request"+a],c=o["cancel"+a]||o["cancelRequest"+a],s=0;!u&&s1&&void 0!==arguments[1]?arguments[1]:0,n=-1,r=function r(o){n<0&&(n=o),o-n>e?(t(o),n=-1):c()(r)};c()(r)}function l(t){return l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l(t)}function f(t){return function(t){if(Array.isArray(t))return t}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(t,e)}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0&&t<=1}));var l=T(r,i),f=T(o,a),h=C(r,i),p=function(t){return t>1?1:t<0?0:t},d=function(t){for(var e=t>1?1:t,n=e,r=0;r<8;++r){var o=l(n)-e,i=h(n);if(Math.abs(o-e)0&&void 0!==arguments[0]?arguments[0]:{},e=t.stiff,n=void 0===e?100:e,r=t.damping,o=void 0===r?8:r,i=t.dt,a=void 0===i?17:i,u=function(t,e,r){var i=r+(-(t-e)*n-r*o)*a/1e3,u=r*a/1e3+t;return Math.abs(u-e)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function X(t){return function(t){if(Array.isArray(t))return Y(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return Y(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Y(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Y(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?n[o-1]:r,h=s||Object.keys(c);if("function"===typeof u||"spring"===u)return[].concat(X(t),[e.runJSAnimation.bind(e,{from:f.style,to:c,duration:i,easing:u}),i]);var p=_(h,i,u),d=K(K(K({},f.style),c),{},{transition:p});return[].concat(X(t),[d,i,l]).filter(x)}),[a,Math.max(c,r)])),[t.onAnimationEnd]))}},{key:"runAnimation",value:function(t){this.manager||(this.manager=p());var e=t.begin,n=t.duration,r=t.attributeName,o=t.to,i=t.easing,a=t.onAnimationStart,u=t.onAnimationEnd,c=t.steps,s=t.children,l=this.manager;if(this.unSubscribe=l.subscribe(this.handleStyleChange),"function"!==typeof i&&"function"!==typeof s&&"spring"!==i)if(c.length>1)this.runStepAnimation(t);else{var f=r?J({},r,o):o,h=_(Object.keys(f),n,i);l.start([a,e,K(K({},f),{},{transition:h}),n,u])}else this.runJSAnimation(t)}},{key:"handleStyleChange",value:function(t){this.changeStyle(t)}},{key:"changeStyle",value:function(t){this.mounted&&this.setState({style:t})}},{key:"render",value:function(){var t=this.props,e=t.children,n=(t.begin,t.duration,t.attributeName,t.easing,t.isActive),o=(t.steps,t.from,t.to,t.canBegin,t.onAnimationEnd,t.shouldReAnimate,t.onAnimationReStart,W(t,["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"])),i=r.Children.count(e),a=O(this.state.style);if("function"===typeof e)return e(a);if(!n||0===i)return e;var u=function(t){var e=t.props,n=e.style,i=void 0===n?{}:n,u=e.className;return(0,r.cloneElement)(t,K(K({},o),{},{style:K(K({},i),a),className:u}))};return 1===i?u(r.Children.only(e)):r.createElement("div",null,r.Children.map(e,(function(t){return u(t)})))}}],n&&Q(e.prototype,n),o&&Q(e,o),u}(r.PureComponent);it.displayName="Animate",it.propTypes={from:i().oneOfType([i().object,i().string]),to:i().oneOfType([i().object,i().string]),attributeName:i().string,duration:i().number,begin:i().number,easing:i().oneOfType([i().string,i().func]),steps:i().arrayOf(i().shape({duration:i().number.isRequired,style:i().object.isRequired,easing:i().oneOfType([i().oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),i().func]),properties:i().arrayOf("string"),onAnimationEnd:i().func})),children:i().oneOfType([i().node,i().func]),isActive:i().bool,canBegin:i().bool,onAnimationEnd:i().func,shouldReAnimate:i().bool,onAnimationStart:i().func,onAnimationReStart:i().func},it.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};var at=it,ut=n(25937);function ct(t){return ct="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function st(){return st=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ft(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ht(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.steps,n=t.duration;return e&&e.length?e.reduce((function(t,e){return t+(Number.isFinite(e.duration)&&e.duration>0?e.duration:0)}),0):Number.isFinite(n)?n:0},wt=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&vt(t,e)}(a,t);var e,n,o,i=gt(a);function a(){var t;dt(this,a);for(var e=arguments.length,n=new Array(e),r=0;r=0||(o[n]=t[n]);return o}(t,["children","in"]),a=r.default.Children.toArray(e),u=a[0],c=a[1];return delete o.onEnter,delete o.onEntering,delete o.onEntered,delete o.onExit,delete o.onExiting,delete o.onExited,r.default.createElement(i.default,o,n?r.default.cloneElement(u,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):r.default.cloneElement(c,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},a}(r.default.Component);u.propTypes={};var c=u;e.default=c,t.exports=e.default},55580:function(t,e,n){"use strict";e.__esModule=!0,e.default=e.EXITING=e.ENTERED=e.ENTERING=e.EXITED=e.UNMOUNTED=void 0;var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};r.get||r.set?Object.defineProperty(e,n,r):e[n]=t[n]}return e.default=t,e}(n(52007)),o=u(n(72791)),i=u(n(54164)),a=n(23688);n(74987);function u(t){return t&&t.__esModule?t:{default:t}}var c="unmounted";e.UNMOUNTED=c;var s="exited";e.EXITED=s;var l="entering";e.ENTERING=l;var f="entered";e.ENTERED=f;var h="exiting";e.EXITING=h;var p=function(t){var e,n;function r(e,n){var r;r=t.call(this,e,n)||this;var o,i=n.transitionGroup,a=i&&!i.isMounting?e.enter:e.appear;return r.appearStatus=null,e.in?a?(o=s,r.appearStatus=l):o=f:o=e.unmountOnExit||e.mountOnEnter?c:s,r.state={status:o},r.nextCallback=null,r}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var a=r.prototype;return a.getChildContext=function(){return{transitionGroup:null}},r.getDerivedStateFromProps=function(t,e){return t.in&&e.status===c?{status:s}:null},a.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},a.componentDidUpdate=function(t){var e=null;if(t!==this.props){var n=this.state.status;this.props.in?n!==l&&n!==f&&(e=l):n!==l&&n!==f||(e=h)}this.updateStatus(!1,e)},a.componentWillUnmount=function(){this.cancelNextCallback()},a.getTimeouts=function(){var t,e,n,r=this.props.timeout;return t=e=n=r,null!=r&&"number"!==typeof r&&(t=r.exit,e=r.enter,n=void 0!==r.appear?r.appear:e),{exit:t,enter:e,appear:n}},a.updateStatus=function(t,e){if(void 0===t&&(t=!1),null!==e){this.cancelNextCallback();var n=i.default.findDOMNode(this);e===l?this.performEnter(n,t):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===s&&this.setState({status:c})},a.performEnter=function(t,e){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:e,i=this.getTimeouts(),a=o?i.appear:i.enter;e||r?(this.props.onEnter(t,o),this.safeSetState({status:l},(function(){n.props.onEntering(t,o),n.onTransitionEnd(t,a,(function(){n.safeSetState({status:f},(function(){n.props.onEntered(t,o)}))}))}))):this.safeSetState({status:f},(function(){n.props.onEntered(t)}))},a.performExit=function(t){var e=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(t),this.safeSetState({status:h},(function(){e.props.onExiting(t),e.onTransitionEnd(t,r.exit,(function(){e.safeSetState({status:s},(function(){e.props.onExited(t)}))}))}))):this.safeSetState({status:s},(function(){e.props.onExited(t)}))},a.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},a.safeSetState=function(t,e){e=this.setNextCallback(e),this.setState(t,e)},a.setNextCallback=function(t){var e=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,e.nextCallback=null,t(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},a.onTransitionEnd=function(t,e,n){this.setNextCallback(n);var r=null==e&&!this.props.addEndListener;t&&!r?(this.props.addEndListener&&this.props.addEndListener(t,this.nextCallback),null!=e&&setTimeout(this.nextCallback,e)):setTimeout(this.nextCallback,0)},a.render=function(){var t=this.state.status;if(t===c)return null;var e=this.props,n=e.children,r=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(e,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"===typeof n)return n(t,r);var i=o.default.Children.only(n);return o.default.cloneElement(i,r)},r}(o.default.Component);function d(){}p.contextTypes={transitionGroup:r.object},p.childContextTypes={transitionGroup:function(){}},p.propTypes={},p.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:d,onEntering:d,onEntered:d,onExit:d,onExiting:d,onExited:d},p.UNMOUNTED=0,p.EXITED=1,p.ENTERING=2,p.ENTERED=3,p.EXITING=4;var y=(0,a.polyfill)(p);e.default=y},50294:function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=u(n(52007)),o=u(n(72791)),i=n(23688),a=n(46970);function u(t){return t&&t.__esModule?t:{default:t}}function c(){return c=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,["component","childFactory"]),i=l(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===e?i:o.default.createElement(e,r,i)},r}(o.default.Component);f.childContextTypes={transitionGroup:r.default.object.isRequired},f.propTypes={},f.defaultProps={component:"div",childFactory:function(t){return t}};var h=(0,i.polyfill)(f);e.default=h,t.exports=e.default},25937:function(t,e,n){"use strict";var r=u(n(59745)),o=u(n(66492)),i=u(n(50294)),a=u(n(55580));function u(t){return t&&t.__esModule?t:{default:t}}t.exports={Transition:a.default,TransitionGroup:i.default,ReplaceTransition:o.default,CSSTransition:r.default}},46970:function(t,e,n){"use strict";e.__esModule=!0,e.getChildMapping=o,e.mergeChildMappings=i,e.getInitialChildMapping=function(t,e){return o(t.children,(function(n){return(0,r.cloneElement)(n,{onExited:e.bind(null,n),in:!0,appear:a(n,"appear",t),enter:a(n,"enter",t),exit:a(n,"exit",t)})}))},e.getNextChildMapping=function(t,e,n){var u=o(t.children),c=i(e,u);return Object.keys(c).forEach((function(o){var i=c[o];if((0,r.isValidElement)(i)){var s=o in e,l=o in u,f=e[o],h=(0,r.isValidElement)(f)&&!f.props.in;!l||s&&!h?l||!s||h?l&&s&&(0,r.isValidElement)(f)&&(c[o]=(0,r.cloneElement)(i,{onExited:n.bind(null,i),in:f.props.in,exit:a(i,"exit",t),enter:a(i,"enter",t)})):c[o]=(0,r.cloneElement)(i,{in:!1}):c[o]=(0,r.cloneElement)(i,{onExited:n.bind(null,i),in:!0,exit:a(i,"exit",t),enter:a(i,"enter",t)})}})),c};var r=n(72791);function o(t,e){var n=Object.create(null);return t&&r.Children.map(t,(function(t){return t})).forEach((function(t){n[t.key]=function(t){return e&&(0,r.isValidElement)(t)?e(t):t}(t)})),n}function i(t,e){function n(n){return n in e?e[n]:t[n]}t=t||{},e=e||{};var r,o=Object.create(null),i=[];for(var a in t)a in e?i.length&&(o[a]=i,i=[]):i.push(a);var u={};for(var c in e){if(o[c])for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function rt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ot(t,e){for(var n=0;n=2?(0,T.uY)(v[1].coordinate-v[0].coordinate):1;if(1===b?(n="width"===y?f:h,r="width"===y?f+p:h+d):(n="width"===y?f+p:h+d,r="width"===y?f:h),e){var x=o[m-1],w=c()(i)?i(x.value,m-1):x.value,O=(0,W.xE)(w)[y]+g,_=b*(x.coordinate+b*O/2-r);v[m-1]=x=tt(tt({},x),{},{tickCoord:_>0?x.coordinate-_*b:x.coordinate}),b*(x.tickCoord-b*O/2-n)>=0&&b*(x.tickCoord+b*O/2-r)<=0&&(r=x.tickCoord-b*(O/2+s),v[m-1]=tt(tt({},x),{},{isShow:!0}))}for(var E=e?m-1:m,k=0;k=0&&b*(S.tickCoord+b*j/2-r)<=0&&(n=S.tickCoord+b*(j/2+s),v[k]=tt(tt({},S),{},{isShow:!0}))}return v.filter((function(t){return t.isShow}))}},{key:"getTicksEnd",value:function(t){var e,n,r=t.ticks,o=t.tickFormatter,i=t.viewBox,a=t.orientation,u=t.minTickGap,s=t.unit,l=i.x,f=i.y,h=i.width,p=i.height,d="top"===a||"bottom"===a?"width":"height",y=s&&"width"===d?(0,W.xE)(s)[d]:0,v=(r||[]).slice(),g=v.length,m=g>=2?(0,T.uY)(v[1].coordinate-v[0].coordinate):1;1===m?(e="width"===d?l:f,n="width"===d?l+h:f+p):(e="width"===d?l+h:f+p,n="width"===d?l:f);for(var b=g-1;b>=0;b--){var x=v[b],w=c()(o)?o(x.value,g-b-1):x.value,O=(0,W.xE)(w)[d]+y;if(b===g-1){var _=m*(x.coordinate+m*O/2-n);v[b]=x=tt(tt({},x),{},{tickCoord:_>0?x.coordinate-_*m:x.coordinate})}else v[b]=x=tt(tt({},x),{},{tickCoord:x.coordinate});m*(x.tickCoord-m*O/2-e)>=0&&m*(x.tickCoord+m*O/2-n)<=0&&(n=x.tickCoord-m*(O/2+u),v[b]=tt(tt({},x),{},{isShow:!0}))}return v.filter((function(t){return t.isShow}))}},{key:"renderTickItem",value:function(t,e,n){return _.isValidElement(t)?_.cloneElement(t,e):c()(t)?t(e):_.createElement(X.x,J({},e,{className:"recharts-cartesian-axis-tick-value"}),n)}}],(n=[{key:"shouldComponentUpdate",value:function(t){var e=t.viewBox,n=nt(t,["viewBox"]),r=this.props,o=r.viewBox,i=nt(r,["viewBox"]);return!(0,Z.w)(e,o)||!(0,Z.w)(n,i)}},{key:"getTickLineCoord",value:function(t){var e,n,r,o,i,a,u=this.props,c=u.x,s=u.y,l=u.width,f=u.height,h=u.orientation,p=u.tickSize,d=u.mirror,y=u.tickMargin,v=d?-1:1,g=t.tickSize||p,m=(0,T.hj)(t.tickCoord)?t.tickCoord:t.coordinate;switch(h){case"top":e=n=t.coordinate,a=(r=(o=s+ +!d*f)-v*g)-v*y,i=m;break;case"left":r=o=t.coordinate,i=(e=(n=c+ +!d*l)-v*g)-v*y,a=m;break;case"right":r=o=t.coordinate,i=(e=(n=c+ +d*l)+v*g)+v*y,a=m;break;default:e=n=t.coordinate,a=(r=(o=s+ +d*f)+v*g)+v*y,i=m}return{line:{x1:e,y1:r,x2:n,y2:o},tick:{x:i,y:a}}}},{key:"getTickTextAnchor",value:function(){var t,e=this.props,n=e.orientation,r=e.mirror;switch(n){case"left":t=r?"start":"end";break;case"right":t=r?"end":"start";break;default:t="middle"}return t}},{key:"getTickVerticalAnchor",value:function(){var t=this.props,e=t.orientation,n=t.mirror,r="end";switch(e){case"left":case"right":r="middle";break;case"top":r=n?"start":"end";break;default:r=n?"end":"start"}return r}},{key:"renderAxisLine",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.orientation,a=t.mirror,u=t.axisLine,c=tt(tt(tt({},(0,C.L6)(this.props)),(0,C.L6)(u)),{},{fill:"none"});if("top"===i||"bottom"===i){var s=+("top"===i&&!a||"bottom"===i&&a);c=tt(tt({},c),{},{x1:e,y1:n+s*o,x2:e+r,y2:n+s*o})}else{var l=+("left"===i&&!a||"right"===i&&a);c=tt(tt({},c),{},{x1:e+l*r,y1:n,x2:e+l*r,y2:n+o})}return _.createElement("line",J({},c,{className:k()("recharts-cartesian-axis-line",d()(u,"className"))}))}},{key:"renderTicks",value:function(t){var e=this,n=this.props,r=n.tickLine,o=n.stroke,a=n.tick,u=n.tickFormatter,s=n.unit,l=i.getTicks(tt(tt({},this.props),{},{ticks:t})),f=this.getTickTextAnchor(),h=this.getTickVerticalAnchor(),p=(0,C.L6)(this.props),y=(0,C.L6)(a),v=tt(tt({},p),{},{fill:"none"},(0,C.L6)(r)),g=l.map((function(t,n){var g=e.getTickLineCoord(t),m=g.line,b=g.tick,x=tt(tt(tt(tt({textAnchor:f,verticalAnchor:h},p),{},{stroke:"none",fill:o},y),b),{},{index:n,payload:t,visibleTicksCount:l.length,tickFormatter:u});return _.createElement(M.m,J({className:"recharts-cartesian-axis-tick",key:"tick-".concat(n)},(0,C.bw)(e.props,t,n)),r&&_.createElement("line",J({},v,m,{className:k()("recharts-cartesian-axis-tick-line",d()(r,"className"))})),a&&i.renderTickItem(a,x,"".concat(c()(u)?u(t.value,n):t.value).concat(s||"")))}));return _.createElement("g",{className:"recharts-cartesian-axis-ticks"},g)}},{key:"render",value:function(){var t=this.props,e=t.axisLine,n=t.width,r=t.height,o=t.ticksGenerator,i=t.className;if(t.hide)return null;var a=this.props,u=a.ticks,s=nt(a,["ticks"]),l=u;return c()(o)&&(l=u&&u.length>0?o(this.props):o(s)),n<=0||r<=0||!l||!l.length?null:_.createElement(M.m,{className:k()("recharts-cartesian-axis",i)},e&&this.renderAxisLine(),this.renderTicks(l),Y._.renderCallByParent(this.props))}}])&&ot(e.prototype,n),r&&ot(e,r),i}(_.Component);st.displayName="CartesianAxis",st.defaultProps={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"};var lt=n(1925),ft=n(56926);function ht(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function pt(t){for(var e=1;e0&&e.handleDrag(t.changedTouches[0])},e.handleDragEnd=function(){e.setState({isTravellerMoving:!1,isSlideMoving:!1}),e.detachDragEndListener()},e.handleLeaveWrapper=function(){(e.state.isTravellerMoving||e.state.isSlideMoving)&&(e.leaveTimer=window.setTimeout(e.handleDragEnd,e.props.leaveTimeOut))},e.handleEnterSlideOrTraveller=function(){e.setState({isTextActive:!0})},e.handleLeaveSlideOrTraveller=function(){e.setState({isTextActive:!1})},e.handleSlideDragStart=function(t){var n=Mt(t)?t.changedTouches[0]:t;e.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:n.pageX}),e.attachDragEndListener()},e.travellerDragStartHandlers={startX:e.handleTravellerDragStart.bind(kt(e),"startX"),endX:e.handleTravellerDragStart.bind(kt(e),"endX")},e.state={},e}return e=i,r=[{key:"renderDefaultTraveller",value:function(t){var e=t.x,n=t.y,r=t.width,o=t.height,i=t.stroke,a=Math.floor(n+o/2)-1;return _.createElement(_.Fragment,null,_.createElement("rect",{x:e,y:n,width:r,height:o,fill:i,stroke:"none"}),_.createElement("line",{x1:e+1,y1:a,x2:e+r-1,y2:a,fill:"none",stroke:"#fff"}),_.createElement("line",{x1:e+1,y1:a+2,x2:e+r-1,y2:a+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(t,e){return _.isValidElement(t)?_.cloneElement(t,e):c()(t)?t(e):i.renderDefaultTraveller(e)}},{key:"getDerivedStateFromProps",value:function(t,e){var n=t.data,r=t.width,o=t.x,i=t.travellerWidth,a=t.updateId,u=t.startIndex,c=t.endIndex;if(n!==e.prevData||a!==e.prevUpdateId)return bt({prevData:n,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:r},n&&n.length?function(t){var e=t.data,n=t.startIndex,r=t.endIndex,o=t.x,i=t.width,a=t.travellerWidth;if(!e||!e.length)return{};var u=e.length,c=(0,lt.x)().domain(v()(0,u)).range([o,o+i-a]),s=c.domain().map((function(t){return c(t)}));return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,startX:c(n),endX:c(r),scale:c,scaleValues:s}}({data:n,width:r,x:o,travellerWidth:i,startIndex:u,endIndex:c}):{scale:null,scaleValues:null});if(e.scale&&(r!==e.prevWidth||o!==e.prevX||i!==e.prevTravellerWidth)){e.scale.range([o,o+r-i]);var s=e.scale.domain().map((function(t){return e.scale(t)}));return{prevData:n,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:r,startX:e.scale(t.startIndex),endX:e.scale(t.endIndex),scaleValues:s}}return null}},{key:"getIndexInRange",value:function(t,e){for(var n=0,r=t.length-1;r-n>1;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o}return e>=t[r]?r:n}}],(n=[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(t){var e=t.startX,n=t.endX,r=this.state.scaleValues,o=this.props,a=o.gap,u=o.data.length-1,c=Math.min(e,n),s=Math.max(e,n),l=i.getIndexInRange(r,c),f=i.getIndexInRange(r,s);return{startIndex:l-l%a,endIndex:f===u?u:f-f%a}}},{key:"getTextOfTick",value:function(t){var e=this.props,n=e.data,r=e.tickFormatter,o=e.dataKey,i=(0,ft.F$)(n[t],o,t);return c()(r)?r(i,t):i}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0)}},{key:"handleSlideDrag",value:function(t){var e=this.state,n=e.slideMoveStartX,r=e.startX,o=e.endX,i=this.props,a=i.x,u=i.width,c=i.travellerWidth,s=i.startIndex,l=i.endIndex,f=i.onChange,h=t.pageX-n;h>0?h=Math.min(h,a+u-c-o,a+u-c-r):h<0&&(h=Math.max(h,a-r,a-o));var p=this.getIndex({startX:r+h,endX:o+h});p.startIndex===s&&p.endIndex===l||!f||f(p),this.setState({startX:r+h,endX:o+h,slideMoveStartX:t.pageX})}},{key:"handleTravellerDragStart",value:function(t,e){var n=Mt(e)?e.changedTouches[0]:e;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:t,brushMoveStartX:n.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(t){var e,n=this.state,r=n.brushMoveStartX,o=n.movingTravellerId,i=n.endX,a=n.startX,u=this.state[o],c=this.props,s=c.x,l=c.width,f=c.travellerWidth,h=c.onChange,p=c.gap,d=c.data,y={startX:this.state.startX,endX:this.state.endX},v=t.pageX-r;v>0?v=Math.min(v,s+l-f-u):v<0&&(v=Math.max(v,s-u)),y[o]=u+v;var g=this.getIndex(y),m=g.startIndex,b=g.endIndex;this.setState((xt(e={},o,u+v),xt(e,"brushMoveStartX",t.pageX),e),(function(){h&&function(){var t=d.length-1;return"startX"===o&&(i>a?m%p===0:b%p===0)||ia?b%p===0:m%p===0)||i>a&&b===t}()&&h(g)}))}},{key:"renderBackground",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.fill,a=t.stroke;return _.createElement("rect",{stroke:a,fill:i,x:e,y:n,width:r,height:o})}},{key:"renderPanorama",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.data,a=t.children,u=t.padding,c=_.Children.only(a);return c?_.cloneElement(c,{x:e,y:n,width:r,height:o,margin:u,compact:!0,data:i}):null}},{key:"renderTravellerLayer",value:function(t,e){var n=this.props,r=n.y,o=n.travellerWidth,a=n.height,u=n.traveller,c=Math.max(t,this.props.x),s=bt(bt({},(0,C.L6)(this.props)),{},{x:c,y:r,width:o,height:a});return _.createElement(M.m,{className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[e],onTouchStart:this.travellerDragStartHandlers[e],style:{cursor:"col-resize"}},i.renderTraveller(u,s))}},{key:"renderSlide",value:function(t,e){var n=this.props,r=n.y,o=n.height,i=n.stroke,a=n.travellerWidth,u=Math.min(t,e)+a,c=Math.max(Math.abs(e-t)-a,0);return _.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:i,fillOpacity:.2,x:u,y:r,width:c,height:o})}},{key:"renderText",value:function(){var t=this.props,e=t.startIndex,n=t.endIndex,r=t.y,o=t.height,i=t.travellerWidth,a=t.stroke,u=this.state,c=u.startX,s=u.endX,l={pointerEvents:"none",fill:a};return _.createElement(M.m,{className:"recharts-brush-texts"},_.createElement(X.x,gt({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,s)-5,y:r+o/2},l),this.getTextOfTick(e)),_.createElement(X.x,gt({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,s)+i+5,y:r+o/2},l),this.getTextOfTick(n)))}},{key:"render",value:function(){var t=this.props,e=t.data,n=t.className,r=t.children,o=t.x,i=t.y,a=t.width,u=t.height,c=t.alwaysShowText,s=this.state,l=s.startX,f=s.endX,h=s.isTextActive,p=s.isSlideMoving,d=s.isTravellerMoving;if(!e||!e.length||!(0,T.hj)(o)||!(0,T.hj)(i)||!(0,T.hj)(a)||!(0,T.hj)(u)||a<=0||u<=0)return null;var y=k()("recharts-brush",n),v=1===_.Children.count(r),g=function(t,e){if(!t)return null;var n=t.replace(/(\w)/,(function(t){return t.toUpperCase()})),r=yt.reduce((function(t,r){return pt(pt({},t),{},dt({},r+n,e))}),{});return r[t]=e,r}("userSelect","none");return _.createElement(M.m,{className:y,onMouseMove:this.handleDrag,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:g},this.renderBackground(),v&&this.renderPanorama(),this.renderSlide(l,f),this.renderTravellerLayer(l,"startX"),this.renderTravellerLayer(f,"endX"),(h||p||d||c)&&this.renderText())}}])&&wt(e.prototype,n),r&&wt(e,r),i}(_.PureComponent);jt.displayName="Brush",jt.defaultProps={height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1};var At=function(t,e){var n=t.alwaysShow,r=t.ifOverflow;return n&&(r="extendDomain"),r===e},Pt=n(93137),Tt=n(15303);function Ct(){return Ct=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ae(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?a:n&&n.props&&n.props.data&&n.props.data.length>0?n.props.data:t&&t.length&&(0,T.hj)(o)&&(0,T.hj)(i)?t.slice(o,i+1):[]},Ee=function(t,e,n,r){var o=t.graphicalItems,i=t.tooltipAxis,a=_e(e,t);return n<0||!o||!o.length||n>=a.length?null:o.reduce((function(t,e){if(e.props.hide)return t;var o,u=e.props.data;if(i.dataKey&&!i.allowDuplicatedCategory){var c=void 0===u?a:u;o=(0,T.Ap)(c,i.dataKey,r)}else o=u&&u[n]||a[n];return o?[].concat(he(t),[(0,ft.Qo)(e,o)]):t}),[])},ke=function(t,e,n,r){var o=r||{x:t.chartX,y:t.chartY},i=function(t,e){return"horizontal"===e?t.x:"vertical"===e?t.y:"centric"===e?t.angle:t.radius}(o,n),a=t.orderedTooltipTicks,u=t.tooltipAxis,c=t.tooltipTicks,s=(0,ft.VO)(i,a,c,u);if(s>=0&&c){var l=c[s]&&c[s].value,f=Ee(t,e,s,l),h=function(t,e,n,r){var o=e.find((function(t){return t&&t.index===n}));if(o){if("horizontal"===t)return{x:o.coordinate,y:r.y};if("vertical"===t)return{x:r.x,y:o.coordinate};if("centric"===t){var i=o.coordinate,a=r.radius;return ve(ve(ve({},r),(0,Jt.op)(r.cx,r.cy,a,i)),{},{angle:i,radius:a})}var u=o.coordinate,c=r.angle;return ve(ve(ve({},r),(0,Jt.op)(r.cx,r.cy,u,c)),{},{angle:c,radius:u})}return be}(n,a,s,o);return{activeTooltipIndex:s,activeLabel:l,activePayload:f,activeCoordinate:h}}return null},Se=function(t,e){var n=e.axisType,r=void 0===n?"xAxis":n,o=e.AxisComp,i=e.graphicalItems,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.children,l="".concat(r,"Id"),f=(0,H.NN)(s,o),h={};return f&&f.length?h=function(t,e){var n=e.axes,r=e.graphicalItems,o=e.axisType,i=e.axisIdKey,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.layout,l=t.children,f=t.stackOffset,h=(0,ft.NA)(s,o);return n.reduce((function(e,n){var p=n.props,d=p.type,y=p.dataKey,g=p.allowDataOverflow,b=p.allowDuplicatedCategory,x=p.scale,w=p.ticks,O=n.props[i],_=_e(t.data,{graphicalItems:r.filter((function(t){return t.props[i]===O})),dataStartIndex:u,dataEndIndex:c}),E=_.length;if(!e[O]){var k,S,M;if(y){if(k=(0,ft.gF)(_,y,d),"category"===d&&h){var j=(0,T.bv)(k);b&&j?(S=k,k=v()(0,E)):b||(k=(0,ft.ko)(n.props.domain,k,n).reduce((function(t,e){return t.indexOf(e)>=0?t:[].concat(he(t),[e])}),[]))}else if("category"===d)k=b?k.filter((function(t){return""!==t&&!m()(t)})):(0,ft.ko)(n.props.domain,k,n).reduce((function(t,e){return t.indexOf(e)>=0||""===e||m()(e)?t:[].concat(he(t),[e])}),[]);else if("number"===d){var A=(0,ft.ZI)(_,r.filter((function(t){return t.props[i]===O&&!t.props.hide})),y,o);A&&(k=A)}!h||"number"!==d&&"auto"===x||(M=(0,ft.gF)(_,y,"category"))}else k=h?v()(0,E):a&&a[O]&&a[O].hasStack&&"number"===d?"expand"===f?[0,1]:(0,ft.EB)(a[O].stackGroups,u,c):(0,ft.s6)(_,r.filter((function(t){return t.props[i]===O&&!t.props.hide})),d,!0);if("number"===d)k=Kt(l,k,O,o,w),n.props.domain&&(k=(0,ft.LG)(n.props.domain,k,g));else if("category"===d&&n.props.domain){var P=n.props.domain;k.every((function(t){return P.indexOf(t)>=0}))&&(k=P)}return ve(ve({},e),{},ge({},O,ve(ve({},n.props),{},{axisType:o,domain:k,categoricalDomain:M,duplicateDomain:S,originalDomain:n.props.domain,isCategorical:h,layout:s})))}return e}),{})}(t,{axes:f,graphicalItems:i,axisType:r,axisIdKey:l,stackGroups:a,dataStartIndex:u,dataEndIndex:c}):i&&i.length&&(h=function(t,e){var n=e.graphicalItems,r=e.Axis,o=e.axisType,i=e.axisIdKey,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.layout,l=t.children,f=_e(t.data,{graphicalItems:n,dataStartIndex:u,dataEndIndex:c}),h=f.length,p=(0,ft.NA)(s,o),y=-1;return n.reduce((function(t,e){var g,m=e.props[i];return t[m]?t:(y++,p?g=v()(0,h):a&&a[m]&&a[m].hasStack?(g=(0,ft.EB)(a[m].stackGroups,u,c),g=Kt(l,g,m,o)):(g=(0,ft.LG)(r.defaultProps.domain,(0,ft.s6)(f,n.filter((function(t){return t.props[i]===m&&!t.props.hide})),"number"),r.defaultProps.allowDataOverflow),g=Kt(l,g,m,o)),ve(ve({},t),{},ge({},m,ve(ve({axisType:o},r.defaultProps),{},{hide:!0,orientation:d()(me,"".concat(o,".").concat(y%2),null),domain:g,originalDomain:r.defaultProps.domain,isCategorical:p,layout:s}))))}),{})}(t,{Axis:o,graphicalItems:i,axisType:r,axisIdKey:l,stackGroups:a,dataStartIndex:u,dataEndIndex:c})),h},Me=function(t){var e=t.children,n=t.defaultShowTooltip,r=(0,H.sP)(e,jt.displayName);return{chartX:0,chartY:0,dataStartIndex:r&&r.props&&r.props.startIndex||0,dataEndIndex:r&&r.props&&r.props.endIndex||t.data&&t.data.length-1||0,activeTooltipIndex:-1,isTooltipActive:!m()(n)&&n}},je=function(t){return"horizontal"===t?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:"vertical"===t?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:"centric"===t?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Ae=function(t){var e,n,r=t.chartName,i=t.GraphicalChild,u=t.defaultTooltipEventType,s=void 0===u?"axis":u,f=t.validateTooltipEventTypes,p=void 0===f?["axis"]:f,y=t.axisComponents,v=t.legendContent,g=t.formatAxisMap,b=t.defaultProps,w=function(t,e){var n=e.graphicalItems,r=e.stackGroups,o=e.offset,i=e.updateId,a=e.dataStartIndex,u=e.dataEndIndex,c=t.barSize,s=t.layout,l=t.barGap,f=t.barCategoryGap,h=t.maxBarSize,p=je(s),d=p.numericAxisName,v=p.cateAxisName,g=function(t){return!(!t||!t.length)&&t.some((function(t){var e=(0,H.Gf)(t&&t.type);return e&&e.indexOf("Bar")>=0}))}(n),b=g&&(0,ft.pt)({barSize:c,stackGroups:r}),x=[];return n.forEach((function(n,c){var p=_e(t.data,{dataStartIndex:a,dataEndIndex:u},n),g=n.props,w=g.dataKey,O=g.maxBarSize,_=n.props["".concat(d,"Id")],E=n.props["".concat(v,"Id")],k=y.reduce((function(t,r){var o,i=e["".concat(r.axisType,"Map")],a=n.props["".concat(r.axisType,"Id")],u=i&&i[a];return ve(ve({},t),{},(ge(o={},r.axisType,u),ge(o,"".concat(r.axisType,"Ticks"),(0,ft.uY)(u)),o))}),{}),S=k[v],M=k["".concat(v,"Ticks")],j=r&&r[_]&&r[_].hasStack&&(0,ft.O3)(n,r[_].stackGroups),A=(0,H.Gf)(n.type).indexOf("Bar")>=0,P=(0,ft.zT)(S,M),T=[];if(A){var C,I,N=m()(O)?h:O,D=null!==(C=null!==(I=(0,ft.zT)(S,M,!0))&&void 0!==I?I:N)&&void 0!==C?C:0;T=(0,ft.qz)({barGap:l,barCategoryGap:f,bandSize:D!==P?D:P,sizeList:b[E],maxBarSize:N}),D!==P&&(T=T.map((function(t){return ve(ve({},t),{},{position:ve(ve({},t.position),{},{offset:t.position.offset-D/2})})})))}var R,L=n&&n.type&&n.type.getComposedData;L&&x.push({props:ve(ve({},L(ve(ve({},k),{},{displayedData:p,props:t,dataKey:w,item:n,bandSize:P,barPosition:T,offset:o,stackedData:j,layout:s,dataStartIndex:a,dataEndIndex:u}))),{},(R={key:n.key||"item-".concat(c)},ge(R,d,k[d]),ge(R,v,k[v]),ge(R,"animationId",i),R)),childIndex:(0,H.$R)(n,t.children),item:n})})),x},E=function(t,e){var n=t.props,o=t.dataStartIndex,a=t.dataEndIndex,u=t.updateId;if(!(0,H.TT)({props:n}))return null;var c=n.children,s=n.layout,l=n.stackOffset,f=n.data,p=n.reverseStackOrder,v=je(s),m=v.numericAxisName,b=v.cateAxisName,x=(0,H.NN)(c,i),O=(0,ft.wh)(f,x,"".concat(m,"Id"),"".concat(b,"Id"),l,p),_=y.reduce((function(t,e){var r="".concat(e.axisType,"Map");return ve(ve({},t),{},ge({},r,Se(n,ve(ve({},e),{},{graphicalItems:x,stackGroups:e.axisType===m&&O,dataStartIndex:o,dataEndIndex:a}))))}),{}),E=function(t,e){var n=t.props,r=t.graphicalItems,o=t.xAxisMap,i=void 0===o?{}:o,a=t.yAxisMap,u=void 0===a?{}:a,c=n.width,s=n.height,l=n.children,f=n.margin||{},h=(0,H.sP)(l,jt.displayName),p=(0,H.sP)(l,A.D.displayName),y=Object.keys(u).reduce((function(t,e){var n=u[e],r=n.orientation;return n.mirror||n.hide?t:ve(ve({},t),{},ge({},r,t[r]+n.width))}),{left:f.left||0,right:f.right||0}),v=Object.keys(i).reduce((function(t,e){var n=i[e],r=n.orientation;return n.mirror||n.hide?t:ve(ve({},t),{},ge({},r,d()(t,"".concat(r))+n.height))}),{top:f.top||0,bottom:f.bottom||0}),g=ve(ve({},v),y),m=g.bottom;return h&&(g.bottom+=h.props.height||jt.defaultProps.height),p&&e&&(g=(0,ft.By)(g,r,n,e)),ve(ve({brushBottom:m},g),{},{width:c-g.left-g.right,height:s-g.top-g.bottom})}(ve(ve({},_),{},{props:n,graphicalItems:x}),null===e||void 0===e?void 0:e.legendBBox);Object.keys(_).forEach((function(t){_[t]=g(n,_[t],E,t.replace("Map",""),r)}));var k=function(t){var e=(0,T.Kt)(t),n=(0,ft.uY)(e,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:h()(n,(function(t){return t.coordinate})),tooltipAxis:e,tooltipAxisBandSize:(0,ft.zT)(e,n)}}(_["".concat(b,"Map")]),S=w(n,ve(ve({},_),{},{dataStartIndex:o,dataEndIndex:a,updateId:u,graphicalItems:x,stackGroups:O,offset:E}));return ve(ve({formattedGraphicalItems:S,graphicalItems:x,offset:E,stackGroups:O},k),_)};return n=e=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ue(t,e)}(f,t);var e,n,i,u=ce(f);function f(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,f),(e=u.call(this,t)).uniqueChartId=void 0,e.clipPathId=void 0,e.legendInstance=void 0,e.deferId=void 0,e.container=void 0,e.clearDeferId=function(){!m()(e.deferId)&&Oe&&Oe(e.deferId),e.deferId=null},e.handleLegendBBoxUpdate=function(t){if(t){var n=e.state,r=n.dataStartIndex,o=n.dataEndIndex,i=n.updateId;e.setState(ve({legendBBox:t},E({props:e.props,dataStartIndex:r,dataEndIndex:o,updateId:i},ve(ve({},e.state),{},{legendBBox:t}))))}},e.handleReceiveSyncEvent=function(t,n,r){e.props.syncId===t&&n!==e.uniqueChartId&&(e.clearDeferId(),e.deferId=we&&we(e.applySyncEvent.bind(le(e),r)))},e.handleBrushChange=function(t){var n=t.startIndex,r=t.endIndex;if(n!==e.state.dataStartIndex||r!==e.state.dataEndIndex){var o=e.state.updateId;e.setState((function(){return ve({dataStartIndex:n,dataEndIndex:r},E({props:e.props,dataStartIndex:n,dataEndIndex:r,updateId:o},e.state))})),e.triggerSyncEvent({dataStartIndex:n,dataEndIndex:r})}},e.handleMouseEnter=function(t){var n=e.props.onMouseEnter,r=e.getMouseInfo(t);if(r){var o=ve(ve({},r),{},{isTooltipActive:!0});e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)}},e.triggeredAfterMouseMove=function(t){var n=e.props.onMouseMove,r=e.getMouseInfo(t),o=r?ve(ve({},r),{},{isTooltipActive:!0}):{isTooltipActive:!1};e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)},e.handleItemMouseEnter=function(t){e.setState((function(){return{isTooltipActive:!0,activeItem:t,activePayload:t.tooltipPayload,activeCoordinate:t.tooltipPosition||{x:t.cx,y:t.cy}}}))},e.handleItemMouseLeave=function(){e.setState((function(){return{isTooltipActive:!1}}))},e.handleMouseMove=function(t){t&&c()(t.persist)&&t.persist(),e.triggeredAfterMouseMove(t)},e.handleMouseLeave=function(t){var n=e.props.onMouseLeave,r={isTooltipActive:!1};e.setState(r),e.triggerSyncEvent(r),c()(n)&&n(r,t),e.cancelThrottledTriggerAfterMouseMove()},e.handleOuterEvent=function(t){var n=(0,H.Bh)(t),r=d()(e.props,"".concat(n));n&&c()(r)&&r(/.*touch.*/i.test(n)?e.getMouseInfo(t.changedTouches[0]):e.getMouseInfo(t),t)},e.handleClick=function(t){var n=e.props.onClick,r=e.getMouseInfo(t);if(r){var o=ve(ve({},r),{},{isTooltipActive:!0});e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)}},e.handleMouseDown=function(t){var n=e.props.onMouseDown;c()(n)&&n(e.getMouseInfo(t),t)},e.handleMouseUp=function(t){var n=e.props.onMouseUp;c()(n)&&n(e.getMouseInfo(t),t)},e.handleTouchMove=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseMove(t.changedTouches[0])},e.handleTouchStart=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseDown(t.changedTouches[0])},e.handleTouchEnd=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseUp(t.changedTouches[0])},e.verticalCoordinatesGenerator=function(t){var e=t.xAxis,n=t.width,r=t.height,o=t.offset;return(0,ft.Rf)(st.getTicks(ve(ve(ve({},st.defaultProps),e),{},{ticks:(0,ft.uY)(e,!0),viewBox:{x:0,y:0,width:n,height:r}})),o.left,o.left+o.width)},e.horizontalCoordinatesGenerator=function(t){var e=t.yAxis,n=t.width,r=t.height,o=t.offset;return(0,ft.Rf)(st.getTicks(ve(ve(ve({},st.defaultProps),e),{},{ticks:(0,ft.uY)(e,!0),viewBox:{x:0,y:0,width:n,height:r}})),o.top,o.top+o.height)},e.axesTicksGenerator=function(t){return(0,ft.uY)(t,!0)},e.renderCursor=function(t){var n=e.state,o=n.isTooltipActive,i=n.activeCoordinate,a=n.activePayload,u=n.offset,c=n.activeTooltipIndex,s=e.getTooltipEventType();if(!t||!t.props.cursor||!o||!i||"ScatterChart"!==r&&"axis"!==s)return null;var l,f=e.props.layout,h=P.H;if("ScatterChart"===r)l=i,h=z;else if("BarChart"===r)l=e.getCursorRectangle(),h=q.A;else if("radial"===f){var p=e.getCursorPoints(),d=p.cx,y=p.cy,v=p.radius;l={cx:d,cy:y,startAngle:p.startAngle,endAngle:p.endAngle,innerRadius:v,outerRadius:v},h=V.L}else l={points:e.getCursorPoints()},h=P.H;var g=t.key||"_recharts-cursor",m=ve(ve(ve(ve({stroke:"#ccc",pointerEvents:"none"},u),l),(0,C.L6)(t.props.cursor)),{},{payload:a,payloadIndex:c,key:g,className:"recharts-tooltip-cursor"});return(0,_.isValidElement)(t.props.cursor)?(0,_.cloneElement)(t.props.cursor,m):(0,_.createElement)(h,m)},e.renderPolarAxis=function(t,n,r){var o=d()(t,"type.axisType"),i=d()(e.state,"".concat(o,"Map"))[t.props["".concat(o,"Id")]];return(0,_.cloneElement)(t,ve(ve({},i),{},{className:o,key:t.key||"".concat(n,"-").concat(r),ticks:(0,ft.uY)(i,!0)}))},e.renderXAxis=function(t,n,r){var o=e.state.xAxisMap[t.props.xAxisId];return e.renderAxis(o,t,n,r)},e.renderYAxis=function(t,n,r){var o=e.state.yAxisMap[t.props.yAxisId];return e.renderAxis(o,t,n,r)},e.renderGrid=function(t){var n=e.state,r=n.xAxisMap,i=n.yAxisMap,u=n.offset,c=e.props,s=c.width,l=c.height,f=(0,T.Kt)(r),h=a()(i,(function(t){return o()(t.domain,xe)}))||(0,T.Kt)(i),p=t.props||{};return(0,_.cloneElement)(t,{key:t.key||"grid",x:(0,T.hj)(p.x)?p.x:u.left,y:(0,T.hj)(p.y)?p.y:u.top,width:(0,T.hj)(p.width)?p.width:u.width,height:(0,T.hj)(p.height)?p.height:u.height,xAxis:f,yAxis:h,offset:u,chartWidth:s,chartHeight:l,verticalCoordinatesGenerator:p.verticalCoordinatesGenerator||e.verticalCoordinatesGenerator,horizontalCoordinatesGenerator:p.horizontalCoordinatesGenerator||e.horizontalCoordinatesGenerator})},e.renderPolarGrid=function(t){var n=t.props,r=n.radialLines,o=n.polarAngles,i=n.polarRadius,a=e.state,u=a.radiusAxisMap,c=a.angleAxisMap,s=(0,T.Kt)(u),l=(0,T.Kt)(c),f=l.cx,h=l.cy,p=l.innerRadius,d=l.outerRadius;return(0,_.cloneElement)(t,{polarAngles:O()(o)?o:(0,ft.uY)(l,!0).map((function(t){return t.coordinate})),polarRadius:O()(i)?i:(0,ft.uY)(s,!0).map((function(t){return t.coordinate})),cx:f,cy:h,innerRadius:p,outerRadius:d,key:t.key||"polar-grid",radialLines:r})},e.renderLegend=function(){var t=e.state.formattedGraphicalItems,n=e.props,r=n.children,o=n.width,i=n.height,a=e.props.margin||{},u=o-(a.left||0)-(a.right||0),c=(0,ft.zp)({children:r,formattedGraphicalItems:t,legendWidth:u,legendContent:v});if(!c)return null;var s=c.item,l=ie(c,["item"]);return(0,_.cloneElement)(s,ve(ve({},l),{},{chartWidth:o,chartHeight:i,margin:a,ref:function(t){e.legendInstance=t},onBBoxUpdate:e.handleLegendBBoxUpdate}))},e.renderTooltip=function(){var t=e.props.children,n=(0,H.sP)(t,j.u.displayName);if(!n)return null;var r=e.state,o=r.isTooltipActive,i=r.activeCoordinate,a=r.activePayload,u=r.activeLabel,c=r.offset;return(0,_.cloneElement)(n,{viewBox:ve(ve({},c),{},{x:c.left,y:c.top}),active:o,label:u,payload:o?a:[],coordinate:i})},e.renderBrush=function(t){var n=e.props,r=n.margin,o=n.data,i=e.state,a=i.offset,u=i.dataStartIndex,c=i.dataEndIndex,s=i.updateId;return(0,_.cloneElement)(t,{key:t.key||"_recharts-brush",onChange:(0,ft.DO)(e.handleBrushChange,null,t.props.onChange),data:o,x:(0,T.hj)(t.props.x)?t.props.x:a.left,y:(0,T.hj)(t.props.y)?t.props.y:a.top+a.height+a.brushBottom-(r.bottom||0),width:(0,T.hj)(t.props.width)?t.props.width:a.width,startIndex:u,endIndex:c,updateId:"brush-".concat(s)})},e.renderReferenceElement=function(t,n,r){if(!t)return null;var o=le(e).clipPathId,i=e.state,a=i.xAxisMap,u=i.yAxisMap,c=i.offset,s=t.props,l=s.xAxisId,f=s.yAxisId;return(0,_.cloneElement)(t,{key:t.key||"".concat(n,"-").concat(r),xAxis:a[l],yAxis:u[f],viewBox:{x:c.left,y:c.top,width:c.width,height:c.height},clipPathId:o})},e.renderActivePoints=function(t){var e=t.item,n=t.activePoint,r=t.basePoint,o=t.childIndex,i=t.isRange,a=[],u=e.props.key,c=e.item.props,s=c.activeDot,l=ve(ve({index:o,dataKey:c.dataKey,cx:n.x,cy:n.y,r:4,fill:(0,ft.fk)(e.item),strokeWidth:2,stroke:"#fff",payload:n.payload,value:n.value,key:"".concat(u,"-activePoint-").concat(o)},(0,C.L6)(s)),(0,C.Ym)(s));return a.push(f.renderActiveDot(s,l)),r?a.push(f.renderActiveDot(s,ve(ve({},l),{},{cx:r.x,cy:r.y,key:"".concat(u,"-basePoint-").concat(o)}))):i&&a.push(null),a},e.renderGraphicChild=function(t,n,r){var o=e.filterFormatItem(t,n,r);if(!o)return null;var i=e.getTooltipEventType(),a=e.state,u=a.isTooltipActive,c=a.tooltipAxis,s=a.activeTooltipIndex,l=a.activeLabel,f=e.props.children,h=(0,H.sP)(f,j.u.displayName),p=o.props,d=p.points,y=p.isRange,v=p.baseLine,g=o.item.props,b=g.activeDot,x=!g.hide&&u&&h&&b&&s>=0,w={};"axis"!==i&&h&&"click"===h.props.trigger?w={onClick:(0,ft.DO)(e.handleItemMouseEnter,null,t.props.onCLick)}:"axis"!==i&&(w={onMouseLeave:(0,ft.DO)(e.handleItemMouseLeave,null,t.props.onMouseLeave),onMouseEnter:(0,ft.DO)(e.handleItemMouseEnter,null,t.props.onMouseEnter)});var O=(0,_.cloneElement)(t,ve(ve({},o.props),w));if(x){var E,k;if(c.dataKey&&!c.allowDuplicatedCategory){var S="function"===typeof c.dataKey?function(t){return"function"===typeof c.dataKey?c.dataKey(t.payload):null}:"payload.".concat(c.dataKey.toString());E=(0,T.Ap)(d,S,l),k=y&&v&&(0,T.Ap)(v,S,l)}else E=d[s],k=y&&v&&v[s];if(!m()(E))return[O].concat(he(e.renderActivePoints({item:o,activePoint:E,basePoint:k,childIndex:s,isRange:y})))}return y?[O,null,null]:[O,null]},e.renderCustomized=function(t,n,r){return(0,_.cloneElement)(t,ve(ve({key:"recharts-customized-".concat(r)},e.props),e.state))},e.uniqueChartId=m()(t.id)?(0,T.EL)("recharts"):t.id,e.clipPathId="".concat(e.uniqueChartId,"-clip"),t.throttleDelay&&(e.triggeredAfterMouseMove=l()(e.triggeredAfterMouseMove,t.throttleDelay)),e.state={},e}return e=f,(n=[{key:"componentDidMount",value:function(){m()(this.props.syncId)||this.addListener()}},{key:"componentDidUpdate",value:function(t){m()(t.syncId)&&!m()(this.props.syncId)&&this.addListener(),!m()(t.syncId)&&m()(this.props.syncId)&&this.removeListener()}},{key:"componentWillUnmount",value:function(){this.clearDeferId(),m()(this.props.syncId)||this.removeListener(),this.cancelThrottledTriggerAfterMouseMove()}},{key:"cancelThrottledTriggerAfterMouseMove",value:function(){"function"===typeof this.triggeredAfterMouseMove.cancel&&this.triggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var t=(0,H.sP)(this.props.children,j.u.displayName);if(t&&x()(t.props.shared)){var e=t.props.shared?"axis":"item";return p.indexOf(e)>=0?e:s}return s}},{key:"getMouseInfo",value:function(t){if(!this.container)return null;var e=(0,W.os)(this.container),n=(0,W.IR)(t,e),r=this.inRange(n.chartX,n.chartY);if(!r)return null;var o=this.state,i=o.xAxisMap,a=o.yAxisMap;if("axis"!==this.getTooltipEventType()&&i&&a){var u=(0,T.Kt)(i).scale,c=(0,T.Kt)(a).scale,s=u&&u.invert?u.invert(n.chartX):null,l=c&&c.invert?c.invert(n.chartY):null;return ve(ve({},n),{},{xValue:s,yValue:l})}var f=ke(this.state,this.props.data,this.props.layout,r);return f?ve(ve({},n),f):null}},{key:"getCursorRectangle",value:function(){var t=this.props.layout,e=this.state,n=e.activeCoordinate,r=e.offset,o=e.tooltipAxisBandSize,i=o/2;return{stroke:"none",fill:"#ccc",x:"horizontal"===t?n.x-i:r.left+.5,y:"horizontal"===t?r.top+.5:n.y-i,width:"horizontal"===t?o:r.width-1,height:"horizontal"===t?r.height-1:o}}},{key:"getCursorPoints",value:function(){var t,e,n,r,o=this.props.layout,i=this.state,a=i.activeCoordinate,u=i.offset;if("horizontal"===o)n=t=a.x,e=u.top,r=u.top+u.height;else if("vertical"===o)r=e=a.y,t=u.left,n=u.left+u.width;else if(!m()(a.cx)||!m()(a.cy)){if("centric"!==o){var c=a.cx,s=a.cy,l=a.radius,f=a.startAngle,h=a.endAngle;return{points:[(0,Jt.op)(c,s,l,f),(0,Jt.op)(c,s,l,h)],cx:c,cy:s,radius:l,startAngle:f,endAngle:h}}var p=a.cx,d=a.cy,y=a.innerRadius,v=a.outerRadius,g=a.angle,b=(0,Jt.op)(p,d,y,g),x=(0,Jt.op)(p,d,v,g);t=b.x,e=b.y,n=x.x,r=x.y}return[{x:t,y:e},{x:n,y:r}]}},{key:"inRange",value:function(t,e){var n=this.props.layout;if("horizontal"===n||"vertical"===n){var r=this.state.offset;return t>=r.left&&t<=r.left+r.width&&e>=r.top&&e<=r.top+r.height?{x:t,y:e}:null}var o=this.state,i=o.angleAxisMap,a=o.radiusAxisMap;if(i&&a){var u=(0,T.Kt)(i);return(0,Jt.z3)({x:t,y:e},u)}return null}},{key:"parseEventsOfWrapper",value:function(){var t=this.props.children,e=this.getTooltipEventType(),n=(0,H.sP)(t,j.u.displayName),r={};return n&&"axis"===e&&(r="click"===n.props.trigger?{onClick:this.handleClick}:{onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd}),ve(ve({},(0,C.Ym)(this.props,this.handleOuterEvent)),r)}},{key:"addListener",value:function(){te.on(ee,this.handleReceiveSyncEvent),te.setMaxListeners&&te._maxListeners&&te.setMaxListeners(te._maxListeners+1)}},{key:"removeListener",value:function(){te.removeListener(ee,this.handleReceiveSyncEvent),te.setMaxListeners&&te._maxListeners&&te.setMaxListeners(te._maxListeners-1)}},{key:"triggerSyncEvent",value:function(t){var e=this.props.syncId;m()(e)||te.emit(ee,e,this.uniqueChartId,t)}},{key:"applySyncEvent",value:function(t){var e=this.props,n=e.layout,r=e.syncMethod,o=this.state.updateId,i=t.dataStartIndex,a=t.dataEndIndex;if(m()(t.dataStartIndex)&&m()(t.dataEndIndex))if(m()(t.activeTooltipIndex))this.setState(t);else{var u=t.chartX,c=t.chartY,s=t.activeTooltipIndex,l=this.state,f=l.offset,h=l.tooltipTicks;if(!f)return;if("function"===typeof r)s=r(h,t);else if("value"===r){s=-1;for(var p=0;pt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1;"insideStart"===i?(r=b+k*u,o=w):"insideEnd"===i?(r=x-k*u,o=!w):"end"===i&&(r=x+k*u,o=w),o=E<=0?o:!o;var S=(0,y.op)(p,v,_,r),M=(0,y.op)(p,v,_,r+359*(o?1:-1)),j="M".concat(S.x,",").concat(S.y,"\n A").concat(_,",").concat(_,",0,1,").concat(o?0:1,",\n ").concat(M.x,",").concat(M.y),A=c()(t.id)?(0,d.EL)("recharts-radial-line-"):t.id;return s.createElement("text",O({},n,{dominantBaseline:"central",className:f()("recharts-radial-bar-label",l)}),s.createElement("defs",null,s.createElement("path",{id:A,d:j})),s.createElement("textPath",{xlinkHref:"#".concat(A)},e))};function E(t){var e,n=t.viewBox,r=t.position,i=t.value,u=t.children,l=t.content,p=t.className,g=void 0===p?"":p,m=t.textBreakAll;if(!n||c()(i)&&c()(u)&&!(0,s.isValidElement)(l)&&!a()(l))return null;if((0,s.isValidElement)(l))return(0,s.cloneElement)(l,t);if(a()(l)){if(e=(0,s.createElement)(l,t),(0,s.isValidElement)(e))return e}else e=function(t){var e=t.value,n=t.formatter,r=c()(t.children)?e:t.children;return a()(n)?n(r):r}(t);var b=function(t){return(0,d.hj)(t.cx)}(n),w=(0,v.L6)(t,!0);if(b&&("insideStart"===r||"insideEnd"===r||"end"===r))return _(t,e,w);var E=b?function(t){var e=t.viewBox,n=t.offset,r=t.position,o=e,i=o.cx,a=o.cy,u=o.innerRadius,c=o.outerRadius,s=(o.startAngle+o.endAngle)/2;if("outside"===r){var l=(0,y.op)(i,a,c+n,s),f=l.x;return{x:f,y:l.y,textAnchor:f>=i?"start":"end",verticalAnchor:"middle"}}if("center"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"middle"};if("centerTop"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"start"};if("centerBottom"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"end"};var h=(u+c)/2,p=(0,y.op)(i,a,h,s);return{x:p.x,y:p.y,textAnchor:"middle",verticalAnchor:"middle"}}(t):function(t){var e=t.viewBox,n=t.parentViewBox,r=t.offset,i=t.position,a=e,u=a.x,c=a.y,s=a.width,l=a.height,f=l>=0?1:-1,h=f*r,p=f>0?"end":"start",y=f>0?"start":"end",v=s>=0?1:-1,g=v*r,m=v>0?"end":"start",b=v>0?"start":"end";if("top"===i)return x(x({},{x:u+s/2,y:c-f*r,textAnchor:"middle",verticalAnchor:p}),n?{height:Math.max(c-n.y,0),width:s}:{});if("bottom"===i)return x(x({},{x:u+s/2,y:c+l+h,textAnchor:"middle",verticalAnchor:y}),n?{height:Math.max(n.y+n.height-(c+l),0),width:s}:{});if("left"===i){var w={x:u-g,y:c+l/2,textAnchor:m,verticalAnchor:"middle"};return x(x({},w),n?{width:Math.max(w.x-n.x,0),height:l}:{})}if("right"===i){var O={x:u+s+g,y:c+l/2,textAnchor:b,verticalAnchor:"middle"};return x(x({},O),n?{width:Math.max(n.x+n.width-O.x,0),height:l}:{})}var _=n?{width:s,height:l}:{};return"insideLeft"===i?x({x:u+g,y:c+l/2,textAnchor:b,verticalAnchor:"middle"},_):"insideRight"===i?x({x:u+s-g,y:c+l/2,textAnchor:m,verticalAnchor:"middle"},_):"insideTop"===i?x({x:u+s/2,y:c+h,textAnchor:"middle",verticalAnchor:y},_):"insideBottom"===i?x({x:u+s/2,y:c+l-h,textAnchor:"middle",verticalAnchor:p},_):"insideTopLeft"===i?x({x:u+g,y:c+h,textAnchor:b,verticalAnchor:y},_):"insideTopRight"===i?x({x:u+s-g,y:c+h,textAnchor:m,verticalAnchor:y},_):"insideBottomLeft"===i?x({x:u+g,y:c+l-h,textAnchor:b,verticalAnchor:p},_):"insideBottomRight"===i?x({x:u+s-g,y:c+l-h,textAnchor:m,verticalAnchor:p},_):o()(i)&&((0,d.hj)(i.x)||(0,d.hU)(i.x))&&((0,d.hj)(i.y)||(0,d.hU)(i.y))?x({x:u+(0,d.h1)(i.x,s),y:c+(0,d.h1)(i.y,l),textAnchor:"end",verticalAnchor:"end"},_):x({x:u+s/2,y:c+l/2,textAnchor:"middle",verticalAnchor:"middle"},_)}(t);return s.createElement(h.x,O({className:f()("recharts-label",g)},w,E,{breakAll:m}),e)}E.displayName="Label",E.defaultProps={offset:5};var k=function(t){var e=t.cx,n=t.cy,r=t.angle,o=t.startAngle,i=t.endAngle,a=t.r,u=t.radius,c=t.innerRadius,s=t.outerRadius,l=t.x,f=t.y,h=t.top,p=t.left,y=t.width,v=t.height,g=t.clockWise,m=t.labelViewBox;if(m)return m;if((0,d.hj)(y)&&(0,d.hj)(v)){if((0,d.hj)(l)&&(0,d.hj)(f))return{x:l,y:f,width:y,height:v};if((0,d.hj)(h)&&(0,d.hj)(p))return{x:h,y:p,width:y,height:v}}return(0,d.hj)(l)&&(0,d.hj)(f)?{x:l,y:f,width:0,height:0}:(0,d.hj)(e)&&(0,d.hj)(n)?{cx:e,cy:n,startAngle:o||r||0,endAngle:i||r||0,innerRadius:c||0,outerRadius:s||u||a||0,clockWise:g}:t.viewBox?t.viewBox:{}},S=function(t,e){return t?!0===t?s.createElement(E,{key:"label-implicit",viewBox:e}):(0,d.P2)(t)?s.createElement(E,{key:"label-implicit",viewBox:e,value:t}):(0,s.isValidElement)(t)?t.type===E?(0,s.cloneElement)(t,{key:"label-implicit",viewBox:e}):s.createElement(E,{key:"label-implicit",content:t,viewBox:e}):a()(t)?s.createElement(E,{key:"label-implicit",content:t,viewBox:e}):o()(t)?s.createElement(E,O({viewBox:e},t,{key:"label-implicit"})):null:null};E.parseViewBox=k,E.renderCallByParent=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||!t.children&&n&&!t.label)return null;var r=t.children,o=k(t),i=(0,p.NN)(r,E.displayName).map((function(t,n){return(0,s.cloneElement)(t,{viewBox:e||o,key:"label-".concat(n)})}));if(!n)return i;var a=S(t.label,e||o);return[a].concat(g(i))}},87970:function(t,e,n){"use strict";n.d(e,{e:function(){return M}});var r=n(8092),o=n.n(r),i=n(74786),a=n.n(i),u=n(42854),c=n.n(u),s=n(15727),l=n.n(s),f=n(93629),h=n.n(f),p=n(72791),d=n(17684),y=n(46044),v=n(77612),g=n(56926),m=n(57241);function b(t){return function(t){if(Array.isArray(t))return x(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return x(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return x(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var S={valueAccessor:function(t){return h()(t.value)?l()(t.value):t.value}};function M(t){var e=t.data,n=t.valueAccessor,r=t.dataKey,o=t.clockWise,i=t.id,a=t.textBreakAll,u=k(t,["data","valueAccessor","dataKey","clockWise","id","textBreakAll"]);return e&&e.length?p.createElement(y.m,{className:"recharts-label-list"},e.map((function(t,e){var s=c()(r)?n(t,e):(0,g.F$)(t&&t.payload,r),l=c()(i)?{}:{id:"".concat(i,"-").concat(e)};return p.createElement(d._,w({},(0,m.L6)(t,!0),u,l,{parentViewBox:t.parentViewBox,index:e,value:s,textBreakAll:a,viewBox:d._.parseViewBox(c()(o)?t:_(_({},t),{},{clockWise:o})),key:"label-".concat(e)}))}))):null}function j(t,e){return t?!0===t?p.createElement(M,{key:"labelList-implicit",data:e}):p.isValidElement(t)||a()(t)?p.createElement(M,{key:"labelList-implicit",data:e,content:t}):o()(t)?p.createElement(M,w({data:e},t,{key:"labelList-implicit"})):null:null}M.displayName="LabelList",M.renderCallByParent=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||!t.children&&n&&!t.label)return null;var r=t.children,o=(0,v.NN)(r,M.displayName).map((function(t,n){return(0,p.cloneElement)(t,{data:e,key:"labelList-".concat(n)})}));if(!n)return o;var i=j(t.label,e);return[i].concat(b(o))},M.defaultProps=S},24296:function(t,e,n){"use strict";n.d(e,{D:function(){return mt}});var r=n(74786),o=n.n(r),i=n(66339),a=n.n(i),u=n(72791),c=n(81694),s=n.n(c),l=n(48933),f=n(52085),h=n.n(f),p=(Math.abs,Math.atan2,Math.cos,Math.max,Math.min,Math.sin,Math.sqrt,Math.PI),d=2*p;var y={draw:function(t,e){var n=Math.sqrt(e/p);t.moveTo(n,0),t.arc(0,0,n,0,d)}},v={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},g=Math.sqrt(1/3),m=2*g,b={draw:function(t,e){var n=Math.sqrt(e/m),r=n*g;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},x={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},w=Math.sin(p/10)/Math.sin(7*p/10),O=Math.sin(d/10)*w,_=-Math.cos(d/10)*w,E={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),r=O*n,o=_*n;t.moveTo(0,-n),t.lineTo(r,o);for(var i=1;i<5;++i){var a=d*i/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*n,-u*n),t.lineTo(u*r-c*o,c*r+u*o)}t.closePath()}},k=Math.sqrt(3),S={draw:function(t,e){var n=-Math.sqrt(e/(3*k));t.moveTo(0,2*n),t.lineTo(-k*n,-n),t.lineTo(k*n,-n),t.closePath()}},M=-.5,j=Math.sqrt(3)/2,A=1/Math.sqrt(12),P=3*(A/2+1),T={draw:function(t,e){var n=Math.sqrt(e/P),r=n/2,o=n*A,i=r,a=n*A+n,u=-i,c=a;t.moveTo(r,o),t.lineTo(i,a),t.lineTo(u,c),t.lineTo(M*r-j*o,j*r+M*o),t.lineTo(M*i-j*a,j*i+M*a),t.lineTo(M*u-j*c,j*u+M*c),t.lineTo(M*r+j*o,M*o-j*r),t.lineTo(M*i+j*a,M*a-j*i),t.lineTo(M*u+j*c,M*c-j*u),t.closePath()}},C=n(73339),I=n(76817);var N=n(57241);function D(t){return D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},D(t)}function R(){return R=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function vt(t){return t.value}function gt(t,e){return!0===t?a()(e,vt):o()(t)?a()(e,t):e}var mt=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ft(t,e)}(a,t);var e,n,r,i=ht(a);function a(){var t;st(this,a);for(var e=arguments.length,n=new Array(e),r=0;r=0&&n>=0?{width:e,height:n}:null}},{key:"getDefaultPosition",value:function(t){var e,n,r=this.props,o=r.layout,i=r.align,a=r.verticalAlign,u=r.margin,c=r.chartWidth,s=r.chartHeight;return t&&(void 0!==t.left&&null!==t.left||void 0!==t.right&&null!==t.right)||(e="center"===i&&"vertical"===o?{left:((c||0)-(this.getBBoxSnapshot()||{width:0}).width)/2}:"right"===i?{right:u&&u.right||0}:{left:u&&u.left||0}),t&&(void 0!==t.top&&null!==t.top||void 0!==t.bottom&&null!==t.bottom)||(n="middle"===a?{top:((s||0)-(this.getBBoxSnapshot()||{height:0}).height)/2}:"bottom"===a?{bottom:u&&u.bottom||0}:{top:u&&u.top||0}),ut(ut({},e),n)}},{key:"updateBBox",value:function(){var t=this.state,e=t.boxWidth,n=t.boxHeight,r=this.props.onBBoxUpdate;if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var o=this.wrapperNode.getBoundingClientRect();(Math.abs(o.width-e)>1||Math.abs(o.height-n)>1)&&this.setState({boxWidth:o.width,boxHeight:o.height},(function(){r&&r(o)}))}else-1===e&&-1===n||this.setState({boxWidth:-1,boxHeight:-1},(function(){r&&r(null)}))}},{key:"render",value:function(){var t=this,e=this.props,n=e.content,r=e.width,i=e.height,a=e.wrapperStyle,c=e.payloadUniqBy,s=e.payload,l=ut(ut({position:"absolute",width:r||"auto",height:i||"auto"},this.getDefaultPosition(a)),a);return u.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(e){t.wrapperNode=e}},function(t,e){if(u.isValidElement(t))return u.cloneElement(t,e);if(o()(t))return u.createElement(t,e);e.ref;var n=yt(e,["ref"]);return u.createElement(rt,n)}(n,ut(ut({},this.props),{},{payload:gt(c,s)})))}}])&<(e.prototype,n),r&<(e,r),a}(u.PureComponent);mt.displayName="Legend",mt.defaultProps={iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"}},77941:function(t,e,n){"use strict";n.d(e,{x:function(){return C}});var r=n(42854),o=n.n(r),i=n(72791),a=n(72692),u=n.n(a),c=n(81694),s=n.n(c),l=n(70587),f=n(36768),h=n(57241),p=n(93058);function d(t){return d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function y(){return y=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function m(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:[]).reduce((function(t,e){var i=e.word,a=e.width,u=t[t.length-1];if(u&&(null==r||o||u.width+a+nt.maxLines||function(t){return t.reduce((function(t,e){return t.width>e.width?t:e}))}(i).width>r;return[c,i]},h=0,p=a.length-1,d=0;h<=p&&d<=a.length-1;){var y=Math.floor((h+p)/2),v=_(f(y-1),2),g=v[0],m=v[1],b=_(f(y),1)[0];if(g||b||(h=y+1),g&&b&&(p=y-1),!g&&b){s=m;break}d++}return s||c}(t,n.wordsWithComputedWidth,n.spaceWidth,t.width,t.scaleToFit):P(t.children)}return P(t.children)},C=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&b(t,e)}(a,t);var e,n,r,o=x(a);function a(){var t;g(this,a);for(var e=arguments.length,n=new Array(e),r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);nl[n]+o?Math.max(f,l[n]):Math.max(h,l[n])},t}return e=u,(n=[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"updateBBox",value:function(){var t=this.state,e=t.boxWidth,n=t.boxHeight;if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();(Math.abs(r.width-e)>1||Math.abs(r.height-n)>1)&&this.setState({boxWidth:r.width,boxHeight:r.height})}else-1===e&&-1===n||this.setState({boxWidth:-1,boxHeight:-1})}},{key:"render",value:function(){var t,e,n,r=this,i=this.props,u=i.payload,f=i.isAnimationActive,p=i.animationDuration,d=i.animationEasing,y=i.filterNull,v=function(t,e){return!0===t?c()(e,q):a()(t)?c()(e,t):e}(i.payloadUniqBy,y&&u&&u.length?u.filter((function(t){return!o()(t.value)})):u),m=v&&v.length,b=this.props,x=b.content,w=b.viewBox,O=b.coordinate,_=b.position,E=b.active,k=D({pointerEvents:"none",visibility:E&&m?"visible":"hidden",position:"absolute",top:0,left:0},b.wrapperStyle);if(_&&(0,g.hj)(_.x)&&(0,g.hj)(_.y))e=_.x,n=_.y;else{var S=this.state,M=S.boxWidth,j=S.boxHeight;M>0&&j>0&&O?(e=this.getTranslate({key:"x",tooltipDimension:M,viewBoxDimension:w.width}),n=this.getTranslate({key:"y",tooltipDimension:j,viewBoxDimension:w.height})):k.visibility="hidden"}k=D(D({},(0,l.bO)({transform:this.props.useTranslate3d?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")})),k),f&&E&&(k=D(D({},(0,l.bO)({transition:"transform ".concat(p,"ms ").concat(d)})),k));var A=h()(G,(R(t={},"".concat(G,"-right"),(0,g.hj)(e)&&O&&(0,g.hj)(O.x)&&e>=O.x),R(t,"".concat(G,"-left"),(0,g.hj)(e)&&O&&(0,g.hj)(O.x)&&e=O.y),R(t,"".concat(G,"-top"),(0,g.hj)(n)&&O&&(0,g.hj)(O.y)&&n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t){var e=t.children,n=t.className,o=c(t,["children","className"]),s=i()("recharts-layer",n);return r.createElement("g",u({className:s},(0,a.L6)(o,!0)),e)}},48933:function(t,e,n){"use strict";n.d(e,{T:function(){return s}});var r=n(72791),o=n(81694),i=n.n(o),a=n(57241);function u(){return u=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t){var e=t.children,n=t.width,o=t.height,s=t.viewBox,l=t.className,f=t.style,h=c(t,["children","width","height","viewBox","className","style"]),p=s||{width:n,height:o,x:0,y:0},d=i()("recharts-surface",l);return r.createElement("svg",u({},(0,a.L6)(h,!0,!0),{className:d,width:n,height:o,style:f,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height),version:"1.1"}),e)}},57139:function(t,e,n){"use strict";n.d(e,{H:function(){return tt}});var r=n(93629),o=n.n(r),i=n(52085),a=n.n(i),u=n(74786),c=n.n(u),s=n(72791);function l(){}function f(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function h(t){this._context=t}function p(t){this._context=t}function d(t){this._context=t}function y(t){this._context=t}function v(t){this._context=t}function g(t){return new v(t)}function m(t){return t<0?-1:1}function b(t,e,n){var r=t._x1-t._x0,o=e-t._x1,i=(t._y1-t._y0)/(r||o<0&&-0),a=(n-t._y1)/(o||r<0&&-0),u=(i*o+a*r)/(r+o);return(m(i)+m(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(u))||0}function x(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function w(t,e,n){var r=t._x0,o=t._y0,i=t._x1,a=t._y1,u=(i-r)/3;t._context.bezierCurveTo(r+u,o+u*e,i-u,a-u*n,i,a)}function O(t){this._context=t}function _(t){this._context=new E(t)}function E(t){this._context=t}function k(t){this._context=t}function S(t){var e,n,r=t.length-1,o=new Array(r),i=new Array(r),a=new Array(r);for(o[0]=0,i[0]=2,a[0]=t[0]+2*t[1],e=1;e=0;--e)o[e]=(a[e]-o[e+1])/i[e];for(i[r-1]=(t[r]+o[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var j=n(73339),A=n(5803),P=n(76817);function T(t){return t[0]}function C(t){return t[1]}function I(t,e){var n=(0,P.Z)(!0),r=null,o=g,i=null;function a(a){var u,c,s,l=(a=(0,A.Z)(a)).length,f=!1;for(null==r&&(i=o(s=(0,j.Z)())),u=0;u<=l;++u)!(u=l;--f)u.point(v[f],g[f]);u.lineEnd(),u.areaEnd()}y&&(v[s]=+t(h,s,c),g[s]=+e(h,s,c),u.point(r?+r(h,s,c):v[s],n?+n(h,s,c):g[s]))}if(p)return u=null,p+""||null}function s(){return I().defined(o).curve(a).context(i)}return t="function"===typeof t?t:void 0===t?T:(0,P.Z)(+t),e="function"===typeof e?e:void 0===e?(0,P.Z)(0):(0,P.Z)(+e),n="function"===typeof n?n:void 0===n?C:(0,P.Z)(+n),c.x=function(e){return arguments.length?(t="function"===typeof e?e:(0,P.Z)(+e),r=null,c):t},c.x0=function(e){return arguments.length?(t="function"===typeof e?e:(0,P.Z)(+e),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"===typeof t?t:(0,P.Z)(+t),c):r},c.y=function(t){return arguments.length?(e="function"===typeof t?t:(0,P.Z)(+t),n=null,c):e},c.y0=function(t){return arguments.length?(e="function"===typeof t?t:(0,P.Z)(+t),c):e},c.y1=function(t){return arguments.length?(n=null==t?null:"function"===typeof t?t:(0,P.Z)(+t),c):n},c.lineX0=c.lineY0=function(){return s().x(t).y(e)},c.lineY1=function(){return s().x(t).y(n)},c.lineX1=function(){return s().x(r).y(e)},c.defined=function(t){return arguments.length?(o="function"===typeof t?t:(0,P.Z)(!!t),c):o},c.curve=function(t){return arguments.length?(a=t,null!=i&&(u=a(i)),c):a},c.context=function(t){return arguments.length?(null==t?i=u=null:u=a(i=t),c):i},c}var D=n(81694),R=n.n(D),L=n(57241),B=n(70587);function U(t){return U="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function F(){return F=Object.assign||function(t){for(var e=1;e=0?1:-1,c=n>=0?1:-1,s=r>=0&&n>=0||r<0&&n<0?1:0;if(a>0&&o instanceof Array){for(var l=[0,0,0,0],f=0;f<4;f++)l[f]=o[f]>a?a:o[f];i="M".concat(t,",").concat(e+u*l[0]),l[0]>0&&(i+="A ".concat(l[0],",").concat(l[0],",0,0,").concat(s,",").concat(t+c*l[0],",").concat(e)),i+="L ".concat(t+n-c*l[1],",").concat(e),l[1]>0&&(i+="A ".concat(l[1],",").concat(l[1],",0,0,").concat(s,",\n ").concat(t+n,",").concat(e+u*l[1])),i+="L ".concat(t+n,",").concat(e+r-u*l[2]),l[2]>0&&(i+="A ".concat(l[2],",").concat(l[2],",0,0,").concat(s,",\n ").concat(t+n-c*l[2],",").concat(e+r)),i+="L ".concat(t+c*l[3],",").concat(e+r),l[3]>0&&(i+="A ".concat(l[3],",").concat(l[3],",0,0,").concat(s,",\n ").concat(t,",").concat(e+r-u*l[3])),i+="Z"}else if(a>0&&o===+o&&o>0){var h=Math.min(a,o);i="M ".concat(t,",").concat(e+u*h,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+c*h,",").concat(e,"\n L ").concat(t+n-c*h,",").concat(e,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+n,",").concat(e+u*h,"\n L ").concat(t+n,",").concat(e+r-u*h,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+n-c*h,",").concat(e+r,"\n L ").concat(t+c*h,",").concat(e+r,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t,",").concat(e+r-u*h," Z")}else i="M ".concat(t,",").concat(e," h ").concat(n," v ").concat(r," h ").concat(-n," Z");return i},g=function(t,e){if(!t||!e)return!1;var n=t.x,r=t.y,o=e.x,i=e.y,a=e.width,u=e.height;if(Math.abs(a)>0&&Math.abs(u)>0){var c=Math.min(o,o+a),s=Math.max(o,o+a),l=Math.min(i,i+u),f=Math.max(i,i+u);return n>=c&&n<=s&&r>=l&&r<=f}return!1},m=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(d,t);var e,n,o,c=p(d);function d(){var t;l(this,d);for(var e=arguments.length,n=new Array(e),r=0;r0,from:{width:c,height:l,x:n,y:o},to:{width:c,height:l,x:n,y:o},duration:g,animationEasing:y,isActive:x},(function(e){var n=e.width,o=e.height,i=e.x,c=e.y;return r.createElement(a.ZP,{canBegin:p>0,from:"0px ".concat(-1===p?1:p,"px"),to:"".concat(p,"px 0px"),attributeName:"strokeDasharray",begin:m,duration:g,isActive:b,easing:y},r.createElement("path",s({},(0,u.L6)(t.props,!0),{className:w,d:v(i,c,n,o,f),ref:function(e){t.node=e}})))})):r.createElement("path",s({},(0,u.L6)(this.props,!0),{className:w,d:v(n,o,c,l,f)}))}}])&&f(e.prototype,n),o&&f(e,o),d}(r.PureComponent);m.defaultProps={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"}},96295:function(t,e,n){"use strict";n.d(e,{L:function(){return b}});var r=n(72791),o=n(81694),i=n.n(o),a=n(57241),u=n(24485),c=n(70587);function s(t){return s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(){return l=Object.assign||function(t){for(var e=1;e180),",").concat(+(i>s),",\n ").concat(f.x,",").concat(f.y,"\n ");if(r>0){var p=(0,u.op)(e,n,r,i),d=(0,u.op)(e,n,r,s);h+="L ".concat(d.x,",").concat(d.y,"\n A ").concat(r,",").concat(r,",0,\n ").concat(+(Math.abs(a)>180),",").concat(+(i<=s),",\n ").concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(e,",").concat(n," Z");return h},b=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(s,t);var e,n,o,u=d(s);function s(){return f(this,s),u.apply(this,arguments)}return e=s,(n=[{key:"render",value:function(){var t=this.props,e=t.cx,n=t.cy,o=t.innerRadius,u=t.outerRadius,s=t.cornerRadius,f=t.forceCornerRadius,h=t.cornerIsExternal,p=t.startAngle,d=t.endAngle,y=t.className;if(u0&&Math.abs(p-d)<360?function(t){var e=t.cx,n=t.cy,r=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,a=t.forceCornerRadius,u=t.cornerIsExternal,s=t.startAngle,l=t.endAngle,f=(0,c.uY)(l-s),h=g({cx:e,cy:n,radius:o,angle:s,sign:f,cornerRadius:i,cornerIsExternal:u}),p=h.circleTangency,d=h.lineTangency,y=h.theta,v=g({cx:e,cy:n,radius:o,angle:l,sign:-f,cornerRadius:i,cornerIsExternal:u}),b=v.circleTangency,x=v.lineTangency,w=v.theta,O=u?Math.abs(s-l):Math.abs(s-l)-y-w;if(O<0)return a?"M ".concat(d.x,",").concat(d.y,"\n a").concat(i,",").concat(i,",0,0,1,").concat(2*i,",0\n a").concat(i,",").concat(i,",0,0,1,").concat(2*-i,",0\n "):m({cx:e,cy:n,innerRadius:r,outerRadius:o,startAngle:s,endAngle:l});var _="M ".concat(d.x,",").concat(d.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,"\n A").concat(o,",").concat(o,",0,").concat(+(O>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(x.x,",").concat(x.y,"\n ");if(r>0){var E=g({cx:e,cy:n,radius:r,angle:s,sign:f,isExternal:!0,cornerRadius:i,cornerIsExternal:u}),k=E.circleTangency,S=E.lineTangency,M=E.theta,j=g({cx:e,cy:n,radius:r,angle:l,sign:-f,isExternal:!0,cornerRadius:i,cornerIsExternal:u}),A=j.circleTangency,P=j.lineTangency,T=j.theta,C=u?Math.abs(s-l):Math.abs(s-l)-M-T;if(C<0&&0===i)return"".concat(_,"L").concat(e,",").concat(n,"Z");_+="L".concat(P.x,",").concat(P.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(A.x,",").concat(A.y,"\n A").concat(r,",").concat(r,",0,").concat(+(C>180),",").concat(+(f>0),",").concat(k.x,",").concat(k.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(S.x,",").concat(S.y,"Z")}else _+="L".concat(e,",").concat(n,"Z");return _}({cx:e,cy:n,innerRadius:o,outerRadius:u,cornerRadius:Math.min(w,x/2),forceCornerRadius:f,cornerIsExternal:h,startAngle:p,endAngle:d}):m({cx:e,cy:n,innerRadius:o,outerRadius:u,startAngle:p,endAngle:d}),r.createElement("path",l({},(0,a.L6)(this.props,!0),{className:b,d:v}))}}])&&h(e.prototype,n),o&&h(e,o),s}(r.PureComponent);b.defaultProps={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1}},93137:function(t,e,n){"use strict";n.d(e,{Ky:function(){return m},O1:function(){return y},_b:function(){return v},t9:function(){return d}});var r=n(82730),o=n.n(r),i=n(37702),a=n.n(i),u=n(56926),c=n(77612),s=n(70587);function l(t,e){for(var n=0;n0&&(j=Math.min((t||0)-(A[e-1]||0),j))}));var P=j/M,T="vertical"===b.layout?n.height:n.width;if("gap"===b.padding&&(c=P*T/2),"no-gap"===b.padding){var C=(0,s.h1)(t.barCategoryGap,P*T),I=P*T/2;c=I-C-(I-C)/T*C}}f="xAxis"===r?[n.left+(_.left||0)+(c||0),n.left+n.width-(_.right||0)-(c||0)]:"yAxis"===r?"horizontal"===l?[n.top+n.height-(_.bottom||0),n.top+(_.top||0)]:[n.top+(_.top||0)+(c||0),n.top+n.height-(_.bottom||0)-(c||0)]:b.range,k&&(f=[f[1],f[0]]);var N=(0,u.Hq)(b,o,v),D=N.scale,R=N.realScaleType;D.domain(w).range(f),(0,u.zF)(D);var L=(0,u.g$)(D,h(h({},b),{},{realScaleType:R}));"xAxis"===r?(m="top"===x&&!E||"bottom"===x&&E,d=n.left,g=y[S]-m*b.height):"yAxis"===r&&(m="left"===x&&!E||"right"===x&&E,d=y[S]-m*b.width,g=n.top);var B=h(h(h({},b),L),{},{realScaleType:R,x:d,y:g,scale:D,width:"xAxis"===r?n.width:b.width,height:"yAxis"===r?n.height:b.height});return B.bandSize=(0,u.zT)(B,L),b.hide||"xAxis"!==r?b.hide||(y[S]+=(m?-1:1)*B.width):y[S]+=(m?-1:1)*B.height,h(h({},i),{},p({},a,B))}),{})},y=function(t,e){var n=t.x,r=t.y,o=e.x,i=e.y;return{x:Math.min(n,o),y:Math.min(r,i),width:Math.abs(o-n),height:Math.abs(i-r)}},v=function(t){var e=t.x1,n=t.y1,r=t.x2,o=t.y2;return y({x:e,y:n},{x:r,y:o})},g=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.scale=void 0,this.scale=e}var e,n,r;return e=t,n=[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.bandAware,r=e.position;if(void 0!==t){if(r)switch(r){case"start":default:return this.scale(t);case"middle":var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+o;case"end":var i=this.bandwidth?this.bandwidth():0;return this.scale(t)+i}if(n){var a=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+a}return this.scale(t)}}},{key:"isInRange",value:function(t){var e=this.range(),n=e[0],r=e[e.length-1];return n<=r?t>=n&&t<=r:t>=r&&t<=n}}],r=[{key:"create",value:function(e){return new t(e)}}],n&&l(e.prototype,n),r&&l(e,r),t}();g.EPS=1e-4;var m=function(t){var e=Object.keys(t).reduce((function(e,n){return h(h({},e),{},p({},n,g.create(t[n])))}),{});return h(h({},e),{},{apply:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.bandAware,o=n.position;return a()(t,(function(t,n){return e[n].apply(t,{bandAware:r,position:o})}))},isInRange:function(t){return o()(t,(function(t,n){return e[n].isInRange(t)}))}})}},56926:function(t,e,n){"use strict";n.d(e,{By:function(){return Bi},VO:function(){return Ii},zF:function(){return Xi},DO:function(){return Hi},Bu:function(){return Yi},zT:function(){return sa},qz:function(){return Li},pt:function(){return Ri},Yj:function(){return ra},Fy:function(){return na},Hv:function(){return ea},Rf:function(){return Gi},gF:function(){return Ci},s6:function(){return zi},EB:function(){return ia},zp:function(){return Di},fk:function(){return Ni},wh:function(){return Qi},O3:function(){return oa},uY:function(){return qi},g$:function(){return ta},Qo:function(){return fa},F$:function(){return Ti},NA:function(){return Vi},ko:function(){return la},ZI:function(){return Fi},Hq:function(){return Zi},LG:function(){return ca},Vv:function(){return $i}});var r={};n.r(r),n.d(r,{scaleBand:function(){return tt.Z},scaleDiverging:function(){return fi},scaleDivergingLog:function(){return hi},scaleDivergingPow:function(){return di},scaleDivergingSqrt:function(){return yi},scaleDivergingSymlog:function(){return pi},scaleIdentity:function(){return Fe},scaleImplicit:function(){return tn.O},scaleLinear:function(){return Ue},scaleLog:function(){return Ye},scaleOrdinal:function(){return tn.Z},scalePoint:function(){return tt.x},scalePow:function(){return an},scaleQuantile:function(){return gn},scaleQuantize:function(){return bn},scaleRadial:function(){return ln},scaleSequential:function(){return ri},scaleSequentialLog:function(){return oi},scaleSequentialPow:function(){return ai},scaleSequentialQuantile:function(){return ci},scaleSequentialSqrt:function(){return ui},scaleSequentialSymlog:function(){return ii},scaleSqrt:function(){return un},scaleSymlog:function(){return Qe},scaleThreshold:function(){return xn},scaleTime:function(){return Qo},scaleUtc:function(){return ti},tickFormat:function(){return Le}});var o=n(18111),i=n.n(o),a=n(64286),u=n.n(a),c=n(82066),s=n.n(c),l=n(52085),f=n.n(l),h=n(26769),p=n.n(h),d=n(93629),y=n.n(d),v=n(29627),g=n.n(v),m=n(66452),b=n.n(m),x=n(5008),w=n.n(x),O=n(74786),_=n.n(O),E=n(26181),k=n.n(E),S=n(42854),M=n.n(S),j=n(4234),A=n.n(j);function P(t){return function(t){if(Array.isArray(t))return T(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return T(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,o):t(e-a,D((function(){for(var t=arguments.length,e=new Array(t),r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);nr&&(o=r,i=n),[o,i]}function Y(t,e,n){if(t.lte(0))return new(A())(0);var r=G.getDigitCount(t.toNumber()),o=new(A())(10).pow(r),i=t.div(o),a=1!==r?.05:.1,u=new(A())(Math.ceil(i.div(a).toNumber())).add(n).mul(a).mul(o);return e?u:new(A())(Math.ceil(u))}function $(t,e,n){var r=1,o=new(A())(t);if(!o.isint()&&n){var i=Math.abs(t);i<1?(r=new(A())(10).pow(G.getDigitCount(t)-1),o=new(A())(Math.floor(o.div(r).toNumber())).mul(r)):i>1&&(o=new(A())(Math.floor(t)))}else 0===t?o=new(A())(Math.floor((e-1)/2)):n||(o=new(A())(Math.floor(t)));var a=Math.floor((e-1)/2);return F(U((function(t){return o.add(new(A())(t-a).mul(r)).toNumber()})),B)(0,e)}function K(t,e,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new(A())(0),tickMin:new(A())(0),tickMax:new(A())(0)};var i,a=Y(new(A())(e).sub(t).div(n-1),r,o);i=t<=0&&e>=0?new(A())(0):(i=new(A())(t).add(e).div(2)).sub(new(A())(i).mod(a));var u=Math.ceil(i.sub(t).div(a).toNumber()),c=Math.ceil(new(A())(e).sub(i).div(a).toNumber()),s=u+c+1;return s>n?K(t,e,n,r,o+1):(s0?c+(n-s):c,u=e>0?u:u+(n-s)),{step:a,tickMin:i.sub(new(A())(u).mul(a)),tickMax:i.add(new(A())(c).mul(a))})}var J=V((function(t){var e=H(t,2),n=e[0],r=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=Math.max(o,2),u=X([n,r]),c=H(u,2),s=c[0],l=c[1];if(s===-1/0||l===1/0){var f=l===1/0?[s].concat(q(B(0,o-1).map((function(){return 1/0})))):[].concat(q(B(0,o-1).map((function(){return-1/0}))),[l]);return n>r?z(f):f}if(s===l)return $(s,o,i);var h=K(s,l,a,i),p=h.step,d=h.tickMin,y=h.tickMax,v=G.rangeStep(d,y.add(new(A())(.1).mul(p)),p);return n>r?z(v):v})),Q=(V((function(t){var e=H(t,2),n=e[0],r=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=Math.max(o,2),u=X([n,r]),c=H(u,2),s=c[0],l=c[1];if(s===-1/0||l===1/0)return[n,r];if(s===l)return $(s,o,i);var f=Y(new(A())(l).sub(s).div(a-1),i,0),h=F(U((function(t){return new(A())(s).add(new(A())(t).mul(f)).toNumber()})),B),p=h(0,a).filter((function(t){return t>=s&&t<=l}));return n>r?z(p):p})),V((function(t,e){var n=H(t,2),r=n[0],o=n[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=X([r,o]),u=H(a,2),c=u[0],s=u[1];if(c===-1/0||s===1/0)return[r,o];if(c===s)return[c];var l=Math.max(e,2),f=Y(new(A())(s).sub(c).div(l-1),i,0),h=[].concat(q(G.rangeStep(new(A())(c),new(A())(s).sub(new(A())(.99).mul(f)),f)),[s]);return r>o?z(h):h}))),tt=n(1925),et=Math.sqrt(50),nt=Math.sqrt(10),rt=Math.sqrt(2);function ot(t,e,n){var r,o,i,a,u=-1;if(n=+n,(t=+t)===(e=+e)&&n>0)return[t];if((r=e0){var c=Math.round(t/a),s=Math.round(e/a);for(c*ae&&--s,i=new Array(o=s-c+1);++ue&&--f,i=new Array(o=f-l+1);++u=0?(i>=et?10:i>=nt?5:i>=rt?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(i>=et?10:i>=nt?5:i>=rt?2:1)}function at(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=et?o*=10:i>=nt?o*=5:i>=rt&&(o*=2),ee?1:t>=e?0:NaN}function ct(t){var e=t,n=t;function r(t,e,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;n(t[i],e)<0?r=i+1:o=i}return r}return 1===t.length&&(e=function(e,n){return t(e)-n},n=function(t){return function(e,n){return ut(t(e),n)}}(t)),{left:r,center:function(t,n,o,i){null==o&&(o=0),null==i&&(i=t.length);var a=r(t,n,o,i-1);return a>o&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,e,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;n(t[i],e)>0?o=i:r=i+1}return r}}}var st=n(37762),lt=n(87757),ft=n.n(lt),ht=ft().mark(dt);function pt(t){return null===t?NaN:+t}function dt(t,e){var n,r,o,i,a,u,c;return ft().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(void 0!==e){s.next=21;break}n=(0,st.Z)(t),s.prev=2,n.s();case 4:if((r=n.n()).done){s.next=11;break}if(!(null!=(o=r.value)&&(o=+o)>=o)){s.next=9;break}return s.next=9,o;case 9:s.next=4;break;case 11:s.next=16;break;case 13:s.prev=13,s.t0=s.catch(2),n.e(s.t0);case 16:return s.prev=16,n.f(),s.finish(16);case 19:s.next=40;break;case 21:i=-1,a=(0,st.Z)(t),s.prev=23,a.s();case 25:if((u=a.n()).done){s.next=32;break}if(c=u.value,!(null!=(c=e(c,++i,t))&&(c=+c)>=c)){s.next=30;break}return s.next=30,c;case 30:s.next=25;break;case 32:s.next=37;break;case 34:s.prev=34,s.t1=s.catch(23),a.e(s.t1);case 37:return s.prev=37,a.f(),s.finish(37);case 40:case"end":return s.stop()}}),ht,null,[[2,13,16,19],[23,34,37,40]])}var yt=ct(ut),vt=yt.right,gt=(yt.left,ct(pt).center,vt);function mt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function bt(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function xt(){}var wt=.7,Ot=1/wt,_t="\\s*([+-]?\\d+)\\s*",Et="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",kt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",St=/^#([0-9a-f]{3,8})$/,Mt=new RegExp("^rgb\\("+[_t,_t,_t]+"\\)$"),jt=new RegExp("^rgb\\("+[kt,kt,kt]+"\\)$"),At=new RegExp("^rgba\\("+[_t,_t,_t,Et]+"\\)$"),Pt=new RegExp("^rgba\\("+[kt,kt,kt,Et]+"\\)$"),Tt=new RegExp("^hsl\\("+[Et,kt,kt]+"\\)$"),Ct=new RegExp("^hsla\\("+[Et,kt,kt,Et]+"\\)$"),It={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Nt(){return this.rgb().formatHex()}function Dt(){return this.rgb().formatRgb()}function Rt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=St.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Lt(e):3===n?new zt(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Bt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Bt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Mt.exec(t))?new zt(e[1],e[2],e[3],1):(e=jt.exec(t))?new zt(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=At.exec(t))?Bt(e[1],e[2],e[3],e[4]):(e=Pt.exec(t))?Bt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Tt.exec(t))?Ht(e[1],e[2]/100,e[3]/100,1):(e=Ct.exec(t))?Ht(e[1],e[2]/100,e[3]/100,e[4]):It.hasOwnProperty(t)?Lt(It[t]):"transparent"===t?new zt(NaN,NaN,NaN,0):null}function Lt(t){return new zt(t>>16&255,t>>8&255,255&t,1)}function Bt(t,e,n,r){return r<=0&&(t=e=n=NaN),new zt(t,e,n,r)}function Ut(t){return t instanceof xt||(t=Rt(t)),t?new zt((t=t.rgb()).r,t.g,t.b,t.opacity):new zt}function Ft(t,e,n,r){return 1===arguments.length?Ut(t):new zt(t,e,n,null==r?1:r)}function zt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function Vt(){return"#"+qt(this.r)+qt(this.g)+qt(this.b)}function Gt(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function qt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ht(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Wt(t,e,n,r)}function Zt(t){if(t instanceof Wt)return new Wt(t.h,t.s,t.l,t.opacity);if(t instanceof xt||(t=Rt(t)),!t)return new Wt;if(t instanceof Wt)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),i=Math.max(e,n,r),a=NaN,u=i-o,c=(i+o)/2;return u?(a=e===i?(n-r)/u+6*(n0&&c<1?0:a,new Wt(a,u,c,t.opacity)}function Wt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Xt(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Yt(t,e,n,r,o){var i=t*t,a=i*t;return((1-3*t+3*i-a)*e+(4-6*i+3*a)*n+(1+3*t+3*i-3*a)*r+a*o)/6}mt(xt,Rt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Nt,formatHex:Nt,formatHsl:function(){return Zt(this).formatHsl()},formatRgb:Dt,toString:Dt}),mt(zt,Ft,bt(xt,{brighter:function(t){return t=null==t?Ot:Math.pow(Ot,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?wt:Math.pow(wt,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vt,formatHex:Vt,formatRgb:Gt,toString:Gt})),mt(Wt,(function(t,e,n,r){return 1===arguments.length?Zt(t):new Wt(t,e,n,null==r?1:r)}),bt(xt,{brighter:function(t){return t=null==t?Ot:Math.pow(Ot,t),new Wt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wt:Math.pow(wt,t),new Wt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new zt(Xt(t>=240?t-240:t+120,o,r),Xt(t,o,r),Xt(t<120?t+240:t-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var $t=function(t){return function(){return t}};function Kt(t,e){return function(n){return t+n*e}}function Jt(t){return 1===(t=+t)?Qt:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):$t(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?Kt(t,n):$t(isNaN(t)?e:t)}var te=function t(e){var n=Jt(e);function r(t,e){var r=n((t=Ft(t)).r,(e=Ft(e)).r),o=n(t.g,e.g),i=n(t.b,e.b),a=Qt(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=o(e),t.b=i(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function ee(t){return function(e){var n,r,o=e.length,i=new Array(o),a=new Array(o),u=new Array(o);for(n=0;n=1?(n=1,e-1):Math.floor(n*e),o=t[r],i=t[r+1],a=r>0?t[r-1]:2*o-i,u=ri&&(o=e.slice(i,o),u[a]?u[a]+=o:u[++a]=o),(n=n[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:oe(n,r)})),i=ue.lastIndex;return ie&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}(a[0],a[t-1])),r=t>2?ge:ve,o=i=null,f}function f(e){return null==e||isNaN(e=+e)?n:(o||(o=r(a.map(t),u,c)))(t(s(e)))}return f.invert=function(n){return s(e((i||(i=r(u,a.map(t),oe)))(n)))},f.domain=function(t){return arguments.length?(a=Array.from(t,he),l()):a.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),l()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),c=fe,l()},f.clamp=function(t){return arguments.length?(s=!!t||de,l()):s!==de},f.interpolate=function(t){return arguments.length?(c=t,l()):c},f.unknown=function(t){return arguments.length?(n=t,f):n},function(n,r){return t=n,e=r,l()}}function xe(){return be()(de,de)}var we,Oe=n(37924),_e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ee(t){if(!(e=_e.exec(t)))throw new Error("invalid format: "+t);var e;return new ke({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function ke(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Se(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Me(t){return(t=Se(Math.abs(t)))?t[1]:NaN}function je(t,e){var n=Se(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}Ee.prototype=ke.prototype,ke.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Ae={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return je(100*t,e)},r:je,s:function(t,e){var n=Se(t,e);if(!n)return t+"";var r=n[0],o=n[1],i=o-(we=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+Se(t,Math.max(0,e+i-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Pe(t){return t}var Te,Ce,Ie,Ne=Array.prototype.map,De=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Re(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Pe:(e=Ne.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var o=t.length,i=[],a=0,u=e[0],c=0;o>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),i.push(t.substring(o-=u,o+u)),!((c+=u+1)>r));)u=e[a=(a+1)%e.length];return i.reverse().join(n)}),o=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?Pe:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Ne.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"\u2212":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function f(t){var e=(t=Ee(t)).fill,n=t.align,f=t.sign,h=t.symbol,p=t.zero,d=t.width,y=t.comma,v=t.precision,g=t.trim,m=t.type;"n"===m?(y=!0,m="g"):Ae[m]||(void 0===v&&(v=12),g=!0,m="g"),(p||"0"===e&&"="===n)&&(p=!0,e="0",n="=");var b="$"===h?o:"#"===h&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",x="$"===h?i:/[%p]/.test(m)?c:"",w=Ae[m],O=/[defgprs%]/.test(m);function _(t){var o,i,c,h=b,_=x;if("c"===m)_=w(t)+_,t="";else{var E=(t=+t)<0||1/t<0;if(t=isNaN(t)?l:w(Math.abs(t),v),g&&(t=function(t){t:for(var e,n=t.length,r=1,o=-1;r0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t}(t)),E&&0===+t&&"+"!==f&&(E=!1),h=(E?"("===f?f:s:"-"===f||"("===f?"":f)+h,_=("s"===m?De[8+we/3]:"")+_+(E&&"("===f?")":""),O)for(o=-1,i=t.length;++o(c=t.charCodeAt(o))||c>57){_=(46===c?a+t.slice(o+1):t.slice(o))+_,t=t.slice(0,o);break}}y&&!p&&(t=r(t,1/0));var k=h.length+t.length+_.length,S=k>1)+h+t+_+S.slice(k);break;default:t=S+h+t+_}return u(t)}return v=void 0===v?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),_.toString=function(){return t+""},_}return{format:f,formatPrefix:function(t,e){var n=f(((t=Ee(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Me(e)/3))),o=Math.pow(10,-r),i=De[8+r/3];return function(t){return n(o*t)+i}}}}function Le(t,e,n,r){var o,i=at(t,e,n);switch((r=Ee(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(o=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Me(e)/3)))-Me(Math.abs(t)))}(i,a))||(r.precision=o),Ie(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Me(e)-Me(t))+1}(i,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=function(t){return Math.max(0,-Me(Math.abs(t)))}(i))||(r.precision=o-2*("%"===r.type))}return Ce(r)}function Be(t){var e=t.domain;return t.ticks=function(t){var n=e();return ot(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return Le(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,o,i=e(),a=0,u=i.length-1,c=i[a],s=i[u],l=10;for(s0;){if((o=it(c,s,n))===r)return i[a]=c,i[u]=s,e(i);if(o>0)c=Math.floor(c/o)*o,s=Math.ceil(s/o)*o;else{if(!(o<0))break;c=Math.ceil(c*o)/o,s=Math.floor(s*o)/o}r=o}return t},t}function Ue(){var t=xe();return t.copy=function(){return me(t,Ue())},Oe.o.apply(t,arguments),Be(t)}function Fe(t){var e;function n(t){return null==t||isNaN(t=+t)?e:t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Array.from(e,he),n):t.slice()},n.unknown=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return Fe(t).unknown(e)},t=arguments.length?Array.from(t,he):[0,1],Be(n)}function ze(t,e){var n,r=0,o=(t=t.slice()).length-1,i=t[r],a=t[o];return a0){for(;h<=p;++h)for(l=1,s=n(h);lc)break;y.push(f)}}else for(;h<=p;++h)for(l=i-1,s=n(h);l>=1;--l)if(!((f=s*l)c)break;y.push(f)}2*y.length=i)&&(n=i)}}catch(l){o.e(l)}finally{o.f()}}else{var a,u=-1,c=(0,st.Z)(t);try{for(c.s();!(a=c.n()).done;){var s=a.value;null!=(s=e(s,++u,t))&&(n=s)&&(n=s)}}catch(l){c.e(l)}finally{c.f()}}return n}function hn(t,e){var n;if(void 0===e){var r,o=(0,st.Z)(t);try{for(o.s();!(r=o.n()).done;){var i=r.value;null!=i&&(n>i||void 0===n&&i>=i)&&(n=i)}}catch(l){o.e(l)}finally{o.f()}}else{var a,u=-1,c=(0,st.Z)(t);try{for(c.s();!(a=c.n()).done;){var s=a.value;null!=(s=e(s,++u,t))&&(n>s||void 0===n&&s>=s)&&(n=s)}}catch(l){c.e(l)}finally{c.f()}}return n}function pn(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ut;r>n;){if(r-n>600){var i=r-n+1,a=e-n+1,u=Math.log(i),c=.5*Math.exp(2*u/3),s=.5*Math.sqrt(u*c*(i-c)/i)*(a-i/2<0?-1:1),l=Math.max(n,Math.floor(e-a*c/i+s)),f=Math.min(r,Math.floor(e+(i-a)*c/i+s));pn(t,e,l,f,o)}var h=t[e],p=n,d=r;for(dn(t,n,e),o(t[r],h)>0&&dn(t,n,r);p0;)--d}0===o(t[n],h)?dn(t,n,d):dn(t,++d,r),d<=e&&(n=d+1),e<=d&&(r=d-1)}return t}function dn(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function yn(t,e,n){if(r=(t=Float64Array.from(dt(t,n))).length){if((e=+e)<=0||r<2)return hn(t);if(e>=1)return fn(t);var r,o=(r-1)*e,i=Math.floor(o),a=fn(pn(t,i).subarray(0,i+1));return a+(hn(t.subarray(i+1))-a)*(o-i)}}function vn(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:pt;if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,o=(r-1)*e,i=Math.floor(o),a=+n(t[i],i,t),u=+n(t[i+1],i+1,t);return a+(u-a)*(o-i)}}function gn(){var t,e=[],n=[],r=[];function o(){var t=0,o=Math.max(1,n.length);for(r=new Array(o-1);++t0?r[o-1]:e[0],o=r?[o[r-1],n]:[o[a-1],o[a]]},a.unknown=function(e){return arguments.length?(t=e,a):a},a.thresholds=function(){return o.slice()},a.copy=function(){return bn().domain([e,n]).range(i).unknown(t)},Oe.o.apply(Be(a),arguments)}function xn(){var t,e=[.5],n=[0,1],r=1;function o(o){return null!=o&&o<=o?n[gt(e,o,0,r)]:t}return o.domain=function(t){return arguments.length?(e=Array.from(t),r=Math.min(e.length,n.length-1),o):e.slice()},o.range=function(t){return arguments.length?(n=Array.from(t),r=Math.min(e.length,n.length-1),o):n.slice()},o.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return xn().domain(e).range(n).unknown(t)},Oe.o.apply(o,arguments)}var wn=1e3,On=6e4,_n=36e5,En=864e5,kn=6048e5,Sn=2592e6,Mn=31536e6,jn=new Date,An=new Date;function Pn(t,e,n,r){function o(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return o.floor=function(e){return t(e=new Date(+e)),e},o.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},o.round=function(t){var e=o(t),n=o.ceil(t);return t-e0))return u;do{u.push(a=new Date(+n)),e(n,i),t(n)}while(a=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(o.count=function(e,r){return jn.setTime(+e),An.setTime(+r),t(jn),t(An),Math.floor(n(jn,An))},o.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?o.filter(r?function(e){return r(e)%t===0}:function(e){return o.count(0,e)%t===0}):o:null}),o}var Tn=Pn((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Tn.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Pn((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Tn:null};var Cn=Tn,In=(Tn.range,Pn((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*wn)}),(function(t,e){return(e-t)/wn}),(function(t){return t.getUTCSeconds()}))),Nn=In,Dn=(In.range,Pn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wn)}),(function(t,e){t.setTime(+t+e*On)}),(function(t,e){return(e-t)/On}),(function(t){return t.getMinutes()}))),Rn=Dn,Ln=(Dn.range,Pn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wn-t.getMinutes()*On)}),(function(t,e){t.setTime(+t+e*_n)}),(function(t,e){return(e-t)/_n}),(function(t){return t.getHours()}))),Bn=Ln,Un=(Ln.range,Pn((function(t){return t.setHours(0,0,0,0)}),(function(t,e){return t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*On)/En}),(function(t){return t.getDate()-1}))),Fn=Un;Un.range;function zn(t){return Pn((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*On)/kn}))}var Vn=zn(0),Gn=zn(1),qn=zn(2),Hn=zn(3),Zn=zn(4),Wn=zn(5),Xn=zn(6),Yn=(Vn.range,Gn.range,qn.range,Hn.range,Zn.range,Wn.range,Xn.range,Pn((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}))),$n=Yn,Kn=(Yn.range,Pn((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()})));Kn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Pn((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Jn=Kn,Qn=(Kn.range,Pn((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*On)}),(function(t,e){return(e-t)/On}),(function(t){return t.getUTCMinutes()}))),tr=Qn,er=(Qn.range,Pn((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*_n)}),(function(t,e){return(e-t)/_n}),(function(t){return t.getUTCHours()}))),nr=er,rr=(er.range,Pn((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/En}),(function(t){return t.getUTCDate()-1}))),or=rr;rr.range;function ir(t){return Pn((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/kn}))}var ar=ir(0),ur=ir(1),cr=ir(2),sr=ir(3),lr=ir(4),fr=ir(5),hr=ir(6),pr=(ar.range,ur.range,cr.range,sr.range,lr.range,fr.range,hr.range,Pn((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}))),dr=pr,yr=(pr.range,Pn((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()})));yr.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Pn((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var vr=yr;yr.range;function gr(t,e,n,r,o,i){var a=[[Nn,1,wn],[Nn,5,5e3],[Nn,15,15e3],[Nn,30,3e4],[i,1,On],[i,5,3e5],[i,15,9e5],[i,30,18e5],[o,1,_n],[o,3,108e5],[o,6,216e5],[o,12,432e5],[r,1,En],[r,2,1728e5],[n,1,kn],[e,1,Sn],[e,3,7776e6],[t,1,Mn]];function u(e,n,r){var o=Math.abs(n-e)/r,i=ct((function(t){return(0,mn.Z)(t,3)[2]})).right(a,o);if(i===a.length)return t.every(at(e/Mn,n/Mn,r));if(0===i)return Cn.every(Math.max(at(e,n,r),1));var u=(0,mn.Z)(a[o/a[i-1][2]68?1900:2e3),n+r[0].length):-1}function Wr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Xr(t,e,n){var r=Ir.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function Yr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function $r(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Kr(t,e,n){var r=Ir.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Jr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Qr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function to(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function eo(t,e,n){var r=Ir.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function no(t,e,n){var r=Ir.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ro(t,e,n){var r=Nr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function oo(t,e,n){var r=Ir.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function io(t,e,n){var r=Ir.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function ao(t,e){return Rr(t.getDate(),e,2)}function uo(t,e){return Rr(t.getHours(),e,2)}function co(t,e){return Rr(t.getHours()%12||12,e,2)}function so(t,e){return Rr(1+Fn.count(Jn(t),t),e,3)}function lo(t,e){return Rr(t.getMilliseconds(),e,3)}function fo(t,e){return lo(t,e)+"000"}function ho(t,e){return Rr(t.getMonth()+1,e,2)}function po(t,e){return Rr(t.getMinutes(),e,2)}function yo(t,e){return Rr(t.getSeconds(),e,2)}function vo(t){var e=t.getDay();return 0===e?7:e}function go(t,e){return Rr(Vn.count(Jn(t)-1,t),e,2)}function mo(t){var e=t.getDay();return e>=4||0===e?Zn(t):Zn.ceil(t)}function bo(t,e){return t=mo(t),Rr(Zn.count(Jn(t),t)+(4===Jn(t).getDay()),e,2)}function xo(t){return t.getDay()}function wo(t,e){return Rr(Gn.count(Jn(t)-1,t),e,2)}function Oo(t,e){return Rr(t.getFullYear()%100,e,2)}function _o(t,e){return Rr((t=mo(t)).getFullYear()%100,e,2)}function Eo(t,e){return Rr(t.getFullYear()%1e4,e,4)}function ko(t,e){var n=t.getDay();return Rr((t=n>=4||0===n?Zn(t):Zn.ceil(t)).getFullYear()%1e4,e,4)}function So(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Rr(e/60|0,"0",2)+Rr(e%60,"0",2)}function Mo(t,e){return Rr(t.getUTCDate(),e,2)}function jo(t,e){return Rr(t.getUTCHours(),e,2)}function Ao(t,e){return Rr(t.getUTCHours()%12||12,e,2)}function Po(t,e){return Rr(1+or.count(vr(t),t),e,3)}function To(t,e){return Rr(t.getUTCMilliseconds(),e,3)}function Co(t,e){return To(t,e)+"000"}function Io(t,e){return Rr(t.getUTCMonth()+1,e,2)}function No(t,e){return Rr(t.getUTCMinutes(),e,2)}function Do(t,e){return Rr(t.getUTCSeconds(),e,2)}function Ro(t){var e=t.getUTCDay();return 0===e?7:e}function Lo(t,e){return Rr(ar.count(vr(t)-1,t),e,2)}function Bo(t){var e=t.getUTCDay();return e>=4||0===e?lr(t):lr.ceil(t)}function Uo(t,e){return t=Bo(t),Rr(lr.count(vr(t),t)+(4===vr(t).getUTCDay()),e,2)}function Fo(t){return t.getUTCDay()}function zo(t,e){return Rr(ur.count(vr(t)-1,t),e,2)}function Vo(t,e){return Rr(t.getUTCFullYear()%100,e,2)}function Go(t,e){return Rr((t=Bo(t)).getUTCFullYear()%100,e,2)}function qo(t,e){return Rr(t.getUTCFullYear()%1e4,e,4)}function Ho(t,e){var n=t.getUTCDay();return Rr((t=n>=4||0===n?lr(t):lr.ceil(t)).getUTCFullYear()%1e4,e,4)}function Zo(){return"+0000"}function Wo(){return"%"}function Xo(t){return+t}function Yo(t){return Math.floor(+t/1e3)}function $o(t){return new Date(t)}function Ko(t){return t instanceof Date?+t:+new Date(+t)}function Jo(t,e,n,r,o,i,a,u,c,s){var l=xe(),f=l.invert,h=l.domain,p=s(".%L"),d=s(":%S"),y=s("%I:%M"),v=s("%I %p"),g=s("%a %d"),m=s("%b %d"),b=s("%B"),x=s("%Y");function w(t){return(c(t)1)for(var n,r,o,i=1,a=t[e[0]],u=a.length;i=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Xo,s:Yo,S:yo,u:vo,U:go,V:bo,w:xo,W:wo,x:null,X:null,y:Oo,Y:Eo,Z:So,"%":Wo},x={a:function(t){return a[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Mo,e:Mo,f:Co,g:Go,G:Ho,H:jo,I:Ao,j:Po,L:To,m:Io,M:No,p:function(t){return o[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Xo,s:Yo,S:Do,u:Ro,U:Lo,V:Uo,w:Fo,W:zo,x:null,X:null,y:Vo,Y:qo,Z:Zo,"%":Wo},w={a:function(t,e,n){var r=p.exec(e.slice(n));return r?(t.w=d.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=h.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.m=m.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(t,e,n){var r=y.exec(e.slice(n));return r?(t.m=v.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(t,n,r){return E(t,e,n,r)},d:$r,e:$r,f:no,g:Zr,G:Hr,H:Jr,I:Jr,j:Kr,L:eo,m:Yr,M:Qr,p:function(t,e,n){var r=s.exec(e.slice(n));return r?(t.p=l.get(r[0].toLowerCase()),n+r[0].length):-1},q:Xr,Q:oo,s:io,S:to,u:zr,U:Vr,V:Gr,w:Fr,W:qr,x:function(t,e,r){return E(t,n,e,r)},X:function(t,e,n){return E(t,r,e,n)},y:Zr,Y:Hr,Z:Wr,"%":ro};function O(t,e){return function(n){var r,o,i,a=[],u=-1,c=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u53)return null;"w"in i||(i.w=1),"Z"in i?(o=(r=Mr(jr(i.y,0,1))).getUTCDay(),r=o>4||0===o?ur.ceil(r):ur(r),r=or.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(o=(r=Sr(jr(i.y,0,1))).getDay(),r=o>4||0===o?Gn.ceil(r):Gn(r),r=Fn.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),o="Z"in i?Mr(jr(i.y,0,1)).getUTCDay():Sr(jr(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Mr(i)):Sr(i)}}function E(t,e,n,r){for(var o,i,a=0,u=e.length,c=n.length;a=c)return-1;if(37===(o=e.charCodeAt(a++))){if(o=e.charAt(a++),!(i=w[o in Cr?e.charAt(a++):o])||(r=i(t,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return b.x=O(n,b),b.X=O(r,b),b.c=O(e,b),x.x=O(n,x),x.X=O(r,x),x.c=O(e,x),{format:function(t){var e=O(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=O(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}(t),Pr=Ar.format,Ar.parse,Tr=Ar.utcFormat,Ar.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var gi=n(5803),mi=n(76817);function bi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function xi(t,e){return t[e]}function wi(t){var e=[];return e.key=t,e}var Oi=n(70587),_i=n(24296),Ei=n(77612),ki=n(57241);function Si(t){return function(t){if(Array.isArray(t))return Mi(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return Mi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mi(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=-1,a=null!==(e=null===n||void 0===n?void 0:n.length)&&void 0!==e?e:0;if(a>1){if(o&&"angleAxis"===o.axisType&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var u=o.range,c=0;c0?r[c-1].coordinate:r[a-1].coordinate,l=r[c].coordinate,f=c>=a-1?r[0].coordinate:r[c+1].coordinate,h=void 0;if((0,Oi.uY)(l-s)!==(0,Oi.uY)(f-l)){var p=[];if((0,Oi.uY)(f-l)===(0,Oi.uY)(u[1]-u[0])){h=f;var d=l+u[1]-u[0];p[0]=Math.min(d,(d+s)/2),p[1]=Math.max(d,(d+s)/2)}else{h=s;var y=f+u[1]-u[0];p[0]=Math.min(l,(y+l)/2),p[1]=Math.max(l,(y+l)/2)}var v=[Math.min(l,(h+l)/2),Math.max(l,(h+l)/2)];if(t>v[0]&&t<=v[1]||t>=p[0]&&t<=p[1]){i=r[c].index;break}}else{var g=Math.min(s,f),m=Math.max(s,f);if(t>(g+l)/2&&t<=(m+l)/2){i=r[c].index;break}}}else for(var b=0;b0&&b(n[b].coordinate+n[b-1].coordinate)/2&&t<=(n[b].coordinate+n[b+1].coordinate)/2||b===a-1&&t>(n[b].coordinate+n[b-1].coordinate)/2){i=n[b].index;break}}else i=0;return i},Ni=function(t){var e,n=t.type.displayName,r=t.props,o=r.stroke,i=r.fill;switch(n){case"Line":e=o;break;case"Area":case"Radar":e=o&&"none"!==o?o:i;break;default:e=i}return e},Di=function(t){var e,n=t.children,r=t.formattedGraphicalItems,o=t.legendWidth,i=t.legendContent,a=(0,Ei.sP)(n,_i.D.displayName);return a?(e=a.props&&a.props.payload?a.props&&a.props.payload:"children"===i?(r||[]).reduce((function(t,e){var n=e.item,r=e.props,o=r.sectors||r.data||[];return t.concat(o.map((function(t){return{type:a.props.iconType||n.props.legendType,value:t.name,color:t.fill,payload:t}})))}),[]):(r||[]).map((function(t){var e=t.item,n=e.props,r=n.dataKey,o=n.name,i=n.legendType;return{inactive:n.hide,dataKey:r,type:a.props.iconType||i||"square",color:Ni(e),value:o||r,payload:e.props}})),Ai(Ai(Ai({},a.props),_i.D.getWithHeight(a,o)),{},{payload:e,item:a})):null},Ri=function(t){var e=t.barSize,n=t.stackGroups,r=void 0===n?{}:n;if(!r)return{};for(var o={},i=Object.keys(r),a=0,u=i.length;a=0}));if(y&&y.length){var v=y[0].props.barSize,g=y[0].props[d];o[g]||(o[g]=[]),o[g].push({item:y[0],stackList:y.slice(1),barSize:M()(v)?e:v})}}return o},Li=function(t){var e=t.barGap,n=t.barCategoryGap,r=t.bandSize,o=t.sizeList,i=void 0===o?[]:o,a=t.maxBarSize,u=i.length;if(u<1)return null;var c,s=(0,Oi.h1)(e,r,0,!0);if(i[0].barSize===+i[0].barSize){var l=!1,f=r/u,h=i.reduce((function(t,e){return t+e.barSize||0}),0);(h+=(u-1)*s)>=r&&(h-=(u-1)*s,s=0),h>=r&&f>0&&(l=!0,h=u*(f*=.9));var p={offset:((r-h)/2>>0)-s,size:0};c=i.reduce((function(t,e){var n=[].concat(Si(t),[{item:e.item,position:{offset:p.offset+p.size+s,size:l?f:e.barSize}}]);return p=n[n.length-1].position,e.stackList&&e.stackList.length&&e.stackList.forEach((function(t){n.push({item:t,position:p})})),n}),[])}else{var d=(0,Oi.h1)(n,r,0,!0);r-2*d-(u-1)*s<=0&&(s=0);var y=(r-2*d-(u-1)*s)/u;y>1&&(y>>=0);var v=a===+a?Math.min(y,a):y;c=i.reduce((function(t,e,n){var r=[].concat(Si(t),[{item:e.item,position:{offset:d+(y+s)*n+(y-v)/2,size:v}}]);return e.stackList&&e.stackList.length&&e.stackList.forEach((function(t){r.push({item:t,position:r[r.length-1].position})})),r}),[])}return c},Bi=function(t,e,n,r){var o=n.children,i=n.width,a=n.margin,u=i-(a.left||0)-(a.right||0),c=Di({children:o,legendWidth:u}),s=t;if(c){var l=r||{},f=c.align,h=c.verticalAlign,p=c.layout;("vertical"===p||"horizontal"===p&&"center"===h)&&(0,Oi.hj)(t[f])&&(s=Ai(Ai({},t),{},Pi({},f,s[f]+(l.width||0)))),("horizontal"===p||"vertical"===p&&"center"===f)&&(0,Oi.hj)(t[h])&&(s=Ai(Ai({},t),{},Pi({},h,s[h]+(l.height||0))))}return s},Ui=function(t,e,n,r){var o=e.props.children,i=(0,Ei.NN)(o,"ErrorBar").filter((function(t){var e=t.props.direction;return!(!M()(e)&&!M()(r))||r.indexOf(e)>=0}));if(i&&i.length){var a=i.map((function(t){return t.props.dataKey}));return t.reduce((function(t,e){var r=Ti(e,n,0),o=y()(r)?[b()(r),g()(r)]:[r,r],i=a.reduce((function(t,n){var r=Ti(e,n,0),i=o[0]-Math.abs(y()(r)?r[0]:r),a=o[1]+Math.abs(y()(r)?r[1]:r);return[Math.min(i,t[0]),Math.max(a,t[1])]}),[1/0,-1/0]);return[Math.min(i[0],t[0]),Math.max(i[1],t[1])]}),[1/0,-1/0])}return null},Fi=function(t,e,n,r){var o=e.map((function(e){return Ui(t,e,n,r)})).filter((function(t){return!M()(t)}));return o&&o.length?o.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0]):null},zi=function(t,e,n,r){var o=e.map((function(e){var o=e.props.dataKey;return"number"===n&&o&&Ui(t,e,o)||Ci(t,o,n,r)}));if("number"===n)return o.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0]);var i={};return o.reduce((function(t,e){for(var n=0,r=e.length;n=0||e.indexOf("AreaChart")>=0||e.indexOf("ComposedChart")>=0&&!n)?{scale:tt.x(),realScaleType:"point"}:"category"===i?{scale:tt.Z(),realScaleType:"band"}:{scale:Ue(),realScaleType:"linear"};if(p()(o)){var c="scale".concat(f()(o));return{scale:(r[c]||tt.x)(),realScaleType:r[c]?c:"point"}}return _()(o)?{scale:o}:{scale:tt.x(),realScaleType:"point"}},Wi=1e-4,Xi=function(t){var e=t.domain();if(e&&!(e.length<=2)){var n=e.length,r=t.range(),o=Math.min(r[0],r[1])-Wi,i=Math.max(r[0],r[1])+Wi,a=t(e[0]),u=t(e[n-1]);(ai||ui)&&t.domain([e[0],e[n-1]])}},Yi=function(t,e){if(!t)return null;for(var n=0,r=t.length;nr)&&(o[1]=r),o[0]>r&&(o[0]=r),o[1]=0?(t[a][n][0]=o,t[a][n][1]=o+u,o=t[a][n][1]):(t[a][n][0]=i,t[a][n][1]=i+u,i=t[a][n][1])}},expand:function(t,e){if((r=t.length)>0){for(var n,r,o,i=0,a=t[0].length;i0){for(var n,r=0,o=t[e[0]],i=o.length;r0&&(r=(n=t[e[0]]).length)>0){for(var n,r,o,i=0,a=1;a=0?(t[i][n][0]=o,t[i][n][1]=o+a,o=t[i][n][1]):(t[i][n][0]=0,t[i][n][1]=0)}}},Ji=function(t,e,n){var r=e.map((function(t){return t.props.dataKey})),o=function(){var t=(0,mi.Z)([]),e=bi,n=vi,r=xi;function o(o){var i,a,u,c=Array.from(t.apply(this,arguments),wi),s=c.length,l=-1,f=(0,st.Z)(o);try{for(f.s();!(u=f.n()).done;){var h=u.value;for(i=0,++l;i=0?0:o<0?o:r}return n[0]},oa=function(t,e){var n=t.props.stackId;if((0,Oi.P2)(n)){var r=e[n];if(r&&r.items.length){for(var o=-1,i=0,a=r.items.length;i=0?r.stackedData[o]:null}}return null},ia=function(t,e,n){return Object.keys(t).reduce((function(r,o){var i=t[o].stackedData.reduce((function(t,r){var o=r.slice(e,n+1).reduce((function(t,e){return[b()(e.concat([t[0]]).filter(Oi.hj)),g()(e.concat([t[1]]).filter(Oi.hj))]}),[1/0,-1/0]);return[Math.min(t[0],o[0]),Math.max(t[1],o[1])]}),[1/0,-1/0]);return[Math.min(i[0],r[0]),Math.max(i[1],r[1])]}),[1/0,-1/0]).map((function(t){return t===1/0||t===-1/0?0:t}))},aa=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ua=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ca=function(t,e,n){if(_()(t))return t(e,n);if(!y()(t))return e;var r=[];if((0,Oi.hj)(t[0]))r[0]=n?t[0]:Math.min(t[0],e[0]);else if(aa.test(t[0])){var o=+aa.exec(t[0])[1];r[0]=e[0]-o}else _()(t[0])?r[0]=t[0](e[0]):r[0]=e[0];if((0,Oi.hj)(t[1]))r[1]=n?t[1]:Math.max(t[1],e[1]);else if(ua.test(t[1])){var i=+ua.exec(t[1])[1];r[1]=e[1]+i}else _()(t[1])?r[1]=t[1](e[1]):r[1]=e[1];return r},sa=function(t,e,n){if(t&&t.scale&&t.scale.bandwidth){var r=t.scale.bandwidth();if(!n||r>0)return r}if(t&&e&&e.length>=2){for(var o=u()(e,(function(t){return t.coordinate})),i=1/0,a=1,c=o.length;at.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0&&o===+o?"".concat(o,"px"):o),";");var r,o,i}),"")},d=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===t||null===t||r.x.isSsr)return{width:0,height:0};var n="".concat(t),o=p(e),a="".concat(n,"-").concat(o);if(s.widthCache[a])return s.widthCache[a];try{var u=document.getElementById(h);u||((u=document.createElement("span")).setAttribute("id",h),u.setAttribute("aria-hidden","true"),document.body.appendChild(u));var c=i(i({},l),e);Object.keys(c).map((function(t){return u.style[t]=c[t],t})),u.textContent=n;var f=u.getBoundingClientRect(),d={width:f.width,height:f.height};return s.widthCache[a]=d,++s.cacheCount>2e3&&(s.cacheCount=0,s.widthCache={}),d}catch(y){return{width:0,height:0}}},y=function(t){var e=t.ownerDocument.documentElement,n={top:0,left:0};return"undefined"!==typeof t.getBoundingClientRect&&(n=t.getBoundingClientRect()),{top:n.top+window.pageYOffset-e.clientTop,left:n.left+window.pageXOffset-e.clientLeft}},v=function(t,e){return{chartX:Math.round(t.pageX-e.left),chartY:Math.round(t.pageY-e.top)}}},70587:function(t,e,n){"use strict";n.d(e,{Ap:function(){return _},EL:function(){return m},Kt:function(){return x},P2:function(){return v},bv:function(){return w},h1:function(){return b},hU:function(){return d},hj:function(){return y},k4:function(){return O},uY:function(){return p}});var r=n(26181),o=n.n(r),i=n(93629),a=n.n(i),u=n(82066),c=n.n(u),s=n(30298),l=n.n(s),f=n(26769),h=n.n(f),p=function(t){return 0===t?0:t>0?1:-1},d=function(t){return h()(t)&&t.indexOf("%")===t.length-1},y=function(t){return l()(t)&&!c()(t)},v=function(t){return y(t)||h()(t)},g=0,m=function(t){var e=++g;return"".concat(t||"").concat(e)},b=function(t,e){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!y(t)&&!h()(t))return r;if(d(t)){var i=t.indexOf("%");n=e*parseFloat(t.slice(0,i))/100}else n=+t;return c()(n)&&(n=r),o&&n>e&&(n=e),n},x=function(t){if(!t)return null;var e=Object.keys(t);return e&&e.length?t[e[0]]:null},w=function(t){if(!a()(t))return!1;for(var e=t.length,n={},r=0;r2?n-2:0),o=2;ot.length)&&(e=t.length);for(var n=0,r=new Array(e);n2&&void 0!==arguments[2]?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(e-(n.top||0)-(n.bottom||0)))/2},v=function(t,e,n,r,u){var f=t.width,h=t.height,p=t.startAngle,d=t.endAngle,v=(0,i.h1)(t.cx,f,f/2),g=(0,i.h1)(t.cy,h,h/2),m=y(f,h,n),b=(0,i.h1)(t.innerRadius,m,0),x=(0,i.h1)(t.outerRadius,m,.8*m);return Object.keys(e).reduce((function(t,n){var i,f=e[n],h=f.domain,y=f.reversed;if(o()(f.range))"angleAxis"===r?i=[p,d]:"radiusAxis"===r&&(i=[b,x]),y&&(i=[i[1],i[0]]);else{var m=l(i=f.range,2);p=m[0],d=m[1]}var w=(0,a.Hq)(f,u),O=w.realScaleType,_=w.scale;_.domain(h).range(i),(0,a.zF)(_);var E=(0,a.g$)(_,c(c({},f),{},{realScaleType:O})),k=c(c(c({},f),E),{},{range:i,radius:x,realScaleType:O,scale:_,cx:v,cy:g,innerRadius:b,outerRadius:x,startAngle:p,endAngle:d});return c(c({},t),{},s({},n,k))}),{})},g=function(t,e){var n=t.x,r=t.y,o=e.cx,i=e.cy,a=function(t,e){var n=t.x,r=t.y,o=e.x,i=e.y;return Math.sqrt(Math.pow(n-o,2)+Math.pow(r-i,2))}({x:n,y:r},{x:o,y:i});if(a<=0)return{radius:a};var u=(n-o)/a,c=Math.acos(u);return r>i&&(c=2*Math.PI-c),{radius:a,angle:p(c),angleInRadian:c}},m=function(t,e){var n=e.startAngle,r=e.endAngle,o=Math.floor(n/360),i=Math.floor(r/360);return t+360*Math.min(o,i)},b=function(t,e){var n=t.x,r=t.y,o=g({x:n,y:r},e),i=o.radius,a=o.angle,u=e.innerRadius,s=e.outerRadius;if(is)return!1;if(0===i)return!0;var l,f=function(t){var e=t.startAngle,n=t.endAngle,r=Math.floor(e/360),o=Math.floor(n/360),i=Math.min(r,o);return{startAngle:e-360*i,endAngle:n-360*i}}(e),h=f.startAngle,p=f.endAngle,d=a;if(h<=p){for(;d>p;)d-=360;for(;d=h&&d<=p}else{for(;d>h;)d-=360;for(;d=p&&d<=h}return l?c(c({},e),{},{radius:i,angle:m(d,e)}):null}},77612:function(t,e,n){"use strict";n.d(e,{$R:function(){return P},Bh:function(){return A},Gf:function(){return g},NN:function(){return w},TT:function(){return _},eu:function(){return j},rL:function(){return S},sP:function(){return O}});var r=n(26769),o=n.n(r),i=n(26181),a=n.n(i),u=n(42854),c=n.n(u),s=n(93629),l=n.n(s),f=n(72791),h=n(8493),p=n(70587),d=n(94520);function y(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var v={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},g=function(t){return"string"===typeof t?t:t?t.displayName||t.name||"Component":""},m=null,b=null,x=function t(e){if(e===m&&l()(b))return b;var n=[];return f.Children.forEach(e,(function(e){c()(e)||((0,h.isFragment)(e)?n=n.concat(t(e.props.children)):n.push(e))})),b=n,m=e,n},w=function(t,e){var n=[],r=[];return r=l()(e)?e.map((function(t){return g(t)})):[g(e)],x(t).forEach((function(t){var e=a()(t,"type.displayName")||a()(t,"type.name");-1!==r.indexOf(e)&&n.push(t)})),n},O=function(t,e){var n=w(t,e);return n&&n[0]},_=function(t){if(!t||!t.props)return!1;var e=t.props,n=e.width,r=e.height;return!(!(0,p.hj)(n)||n<=0||!(0,p.hj)(r)||r<=0)},E=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],k=function(t){return t&&t.type&&o()(t.type)&&E.indexOf(t.type)>=0},S=function t(e,n){if(e===n)return!0;var r=f.Children.count(e);if(r!==f.Children.count(n))return!1;if(0===r)return!0;if(1===r)return M(l()(e)?e[0]:e,l()(n)?n[0]:n);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:5;return(0,r.default)(t).walk((function(t){if("function"===t.type&&c.test(t.value)){var n=r.default.stringify(t.nodes);if(!(n.indexOf("constant")>=0||n.indexOf("env")>=0)){var u=o.parser.parse(n),s=(0,i.default)(u,e);t.type="word",t.value=(0,a.default)(t.value,s,e)}}}),!0).toString()},t.exports=e.default},78334:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(74890),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t,e,n){switch(t.type){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":return function(t,e,n){e.type===t.type&&(e={type:t.type,value:(0,i.default)(e.value,e.unit,t.unit,n),unit:t.unit});return{left:t,right:e}}(t,e,n);default:return{left:t,right:e}}},t.exports=e.default},34849:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.flip=s;var r,o=n(78334),i=(r=o)&&r.__esModule?r:{default:r};function a(t,e){return"MathExpression"===t.type?function(t,e){switch(t=function(t,e){var n=(0,i.default)(t.left,t.right,e),r=a(n.left,e),o=a(n.right,e);"MathExpression"===r.type&&"MathExpression"===o.type&&("/"===r.operator&&"*"===o.operator||"-"===r.operator&&"+"===o.operator||"*"===r.operator&&"/"===o.operator||"+"===r.operator&&"-"===o.operator)&&(u(r.right,o.right)?n=(0,i.default)(r.left,o.left,e):u(r.right,o.left)&&(n=(0,i.default)(r.left,o.right,e)),r=a(n.left,e),o=a(n.right,e));return t.left=r,t.right=o,t}(t,e),t.operator){case"+":case"-":return function(t,e){var n=t,r=n.left,o=n.right,i=n.operator;if("CssVariable"===r.type||"CssVariable"===o.type)return t;if(0===o.value)return r;if(0===r.value&&"+"===i)return o;if(0===r.value&&"-"===i)return l(o);r.type===o.type&&c(r.type)&&((t=Object.assign({},r)).value="+"===i?r.value+o.value:r.value-o.value);if(c(r.type)&&("+"===o.operator||"-"===o.operator)&&"MathExpression"===o.type){if(r.type===o.left.type)return(t=Object.assign({},t)).left=a({type:"MathExpression",operator:i,left:r,right:o.left},e),t.right=o.right,t.operator="-"===i?s(o.operator):o.operator,a(t,e);if(r.type===o.right.type)return(t=Object.assign({},t)).left=a({type:"MathExpression",operator:"-"===i?s(o.operator):o.operator,left:r,right:o.right},e),t.right=o.left,a(t,e)}if("MathExpression"===r.type&&("+"===r.operator||"-"===r.operator)&&c(o.type)){if(o.type===r.left.type)return(t=Object.assign({},r)).left=a({type:"MathExpression",operator:i,left:r.left,right:o},e),a(t,e);if(o.type===r.right.type)return t=Object.assign({},r),"-"===r.operator?(t.right=a({type:"MathExpression",operator:"-"===i?"+":"-",left:o,right:r.right},e),t.operator="-"===i?"-":"+"):t.right=a({type:"MathExpression",operator:i,left:r.right,right:o},e),t.right.value<0&&(t.right.value*=-1,t.operator="-"===t.operator?"+":"-"),a(t,e)}return t}(t,e);case"/":return function(t,e){if(!c(t.right.type))return t;if("Value"!==t.right.type)throw new Error('Cannot divide by "'+t.right.unit+'", number expected');if(0===t.right.value)throw new Error("Cannot divide by zero");if("MathExpression"===t.left.type)return c(t.left.left.type)&&c(t.left.right.type)?(t.left.left.value/=t.right.value,t.left.right.value/=t.right.value,a(t.left,e)):t;if(c(t.left.type))return t.left.value/=t.right.value,t.left;return t}(t,e);case"*":return function(t){if("MathExpression"===t.left.type&&"Value"===t.right.type){if(c(t.left.left.type)&&c(t.left.right.type))return t.left.left.value*=t.right.value,t.left.right.value*=t.right.value,t.left}else{if(c(t.left.type)&&"Value"===t.right.type)return t.left.value*=t.right.value,t.left;if("Value"===t.left.type&&"MathExpression"===t.right.type){if(c(t.right.left.type)&&c(t.right.right.type))return t.right.left.value*=t.left.value,t.right.right.value*=t.left.value,t.right}else if("Value"===t.left.type&&c(t.right.type))return t.right.value*=t.left.value,t.right}return t}(t)}return t}(t,e):"Calc"===t.type?a(t.value,e):t}function u(t,e){return t.type===e.type&&t.value===e.value}function c(t){switch(t){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":case"EmValue":case"ExValue":case"ChValue":case"RemValue":case"VhValue":case"VwValue":case"VminValue":case"VmaxValue":case"PercentageValue":case"Value":return!0}return!1}function s(t){return"+"===t?"-":"+"}function l(t){return c(t.type)?t.value=-t.value:"MathExpression"==t.type&&(t.left=l(t.left),t.right=l(t.right)),t}e.default=a},94170:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){var r=a(e,n);return"MathExpression"===e.type&&(r=t+"("+r+")"),r};var r=n(34849),o={"*":0,"/":0,"+":1,"-":1};function i(t,e){if(!1!==e){var n=Math.pow(10,e);return Math.round(t*n)/n}return t}function a(t,e){switch(t.type){case"MathExpression":var n=t.left,u=t.right,c=t.operator,s="";return"MathExpression"===n.type&&o[c]1)return t;if(e.cleanupAfterLex&&e.cleanupAfterLex(a),f&&(f.lexer=void 0,f.parser=void 0,e.yy===f&&(e.yy=void 0)),f=void 0,this.parseError=this.originalParseError,this.quoteName=this.originalQuoteName,r.length=0,o.length=0,i.length=0,u=0,!a){for(var l=this.__error_infos.length-1;l>=0;l--){var h=this.__error_infos[l];h&&"function"===typeof h.destroy&&h.destroy()}this.__error_infos.length=0}return t},this.constructParseErrorInfo=function(t,n,a,s){var l={errStr:t,exception:n,text:e.match,value:e.yytext,token:this.describeSymbol(c)||c,token_id:c,line:e.yylineno,expected:a,recoverable:s,state:p,action:d,new_state:x,symbol_stack:r,state_stack:o,value_stack:i,stack_pointer:u,yy:f,lexer:e,parser:this,destroy:function(){var t=!!this.recoverable;for(var e in this)this.hasOwnProperty(e)&&"object"===typeof e&&(this[e]=void 0);this.recoverable=t}};return this.__error_infos.push(l),l};var p,d,y,v,g,m,b,x,w=function(){var t=e.lex();return"number"!==typeof t&&(t=n.symbols_[t]||t),t||s},O={$:!0,_$:void 0,yy:f},_=!1;try{if(this.__reentrant_call_depth++,e.setInput(t,f),"function"===typeof e.canIUse)e.canIUse().fastLex&&(w=h);for(i[u]=null,o[u]=0,r[u]=0,++u,this.pre_parse&&this.pre_parse.call(this,f),f.pre_parse&&f.pre_parse.call(this,f),x=o[u-1];;){if(p=x,this.defaultActions[p])d=2,x=this.defaultActions[p];else if(c||(c=w()),v=a[p]&&a[p][c]||l,x=v[1],!(d=v[0])){var E,k=this.describeSymbol(c)||c,S=this.collect_expected_token_set(p);E="number"===typeof e.yylineno?"Parse error on line "+(e.yylineno+1)+": ":"Parse error: ","function"===typeof e.showPosition&&(E+="\n"+e.showPosition(69,10)+"\n"),S.length?E+="Expecting "+S.join(", ")+", got unexpected "+k:E+="Unexpected "+k,g=this.constructParseErrorInfo(E,null,S,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break}switch(d){default:if(d instanceof Array){g=this.constructParseErrorInfo("Parse Error: multiple actions possible at state: "+p+", token: "+c,null,null,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break}g=this.constructParseErrorInfo("Parsing halted. No viable error recovery approach available due to internal system failure.",null,null,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break;case 1:r[u]=c,i[u]=e.yytext,o[u]=x,++u,c=0;continue;case 2:if(m=(b=this.productions_[x-1])[1],"undefined"!==typeof(y=this.performAction.call(O,x,u-1,i))){_=y;break}u-=m;var M=b[0];r[u]=M,i[u]=O.$,x=a[o[u-1]][M],o[u]=x,++u;continue;case 3:-2!==u&&(_=!0,u--,"undefined"!==typeof i[u]&&(_=i[u]))}break}}catch(j){if(j instanceof this.JisonParserError)throw j;if(e&&"function"===typeof e.JisonLexerError&&j instanceof e.JisonLexerError)throw j;g=this.constructParseErrorInfo("Parsing aborted due to exception.",j,null,!1),_=!1,"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y)}finally{_=this.cleanupAfterParse(_,!0,!0),this.__reentrant_call_depth--}return _}};o.originalParseError=o.parseError,o.originalQuoteName=o.quoteName;var i=function(){function t(t,e){var n;if(Object.defineProperty(this,"name",{enumerable:!1,writable:!1,value:"JisonLexerError"}),null==t&&(t="???"),Object.defineProperty(this,"message",{enumerable:!1,writable:!0,value:t}),this.hash=e,e&&e.exception instanceof Error){var r=e.exception;this.message=r.message||t,n=r.stack}n||(Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,this.constructor):n=new Error(t).stack),n&&Object.defineProperty(this,"stack",{enumerable:!1,writable:!1,value:n})}"function"===typeof Object.setPrototypeOf?Object.setPrototypeOf(t.prototype,Error.prototype):t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.name="JisonLexerError";var e={EOF:1,ERROR:2,__currentRuleSet__:null,__error_infos:[],__decompressed:!1,done:!1,_backtrack:!1,_input:"",_more:!1,_signaled_error_token:!1,conditionStack:[],match:"",matched:"",matches:!1,yytext:"",offset:0,yyleng:0,yylineno:0,yylloc:null,constructLexErrorInfo:function(t,e,n){if(t=""+t,void 0==n&&(n=!(t.indexOf("\n")>0&&t.indexOf("^")>0)),this.yylloc&&n)if("function"===typeof this.prettyPrintRange){this.prettyPrintRange(this.yylloc);/\n\s*$/.test(t)||(t+="\n"),t+="\n Erroneous area:\n"+this.prettyPrintRange(this.yylloc)}else if("function"===typeof this.showPosition){var r=this.showPosition();r&&(t.length&&"\n"!==t[t.length-1]&&"\n"!==r[0]?t+="\n"+r:t+=r)}var o={errStr:t,recoverable:!!e,text:this.match,token:null,line:this.yylineno,loc:this.yylloc,yy:this.yy,lexer:this,destroy:function(){var t=!!this.recoverable;for(var e in this)this.hasOwnProperty(e)&&"object"===typeof e&&(this[e]=void 0);this.recoverable=t}};return this.__error_infos.push(o),o},parseError:function(t,e,n){if(n||(n=this.JisonLexerError),this.yy){if(this.yy.parser&&"function"===typeof this.yy.parser.parseError)return this.yy.parser.parseError.call(this,t,e,n)||this.ERROR;if("function"===typeof this.yy.parseError)return this.yy.parseError.call(this,t,e,n)||this.ERROR}throw new n(t,e)},yyerror:function(t){var e="";this.yylloc&&(e=" on line "+(this.yylineno+1));var n=this.constructLexErrorInfo("Lexical error"+e+": "+t,this.options.lexerErrorsAreRecoverable),r=Array.prototype.slice.call(arguments,1);return r.length&&(n.extra_error_attributes=r),this.parseError(n.errStr,n,this.JisonLexerError)||this.ERROR},cleanupAfterLex:function(t){if(this.setInput("",{}),!t){for(var e=this.__error_infos.length-1;e>=0;e--){var n=this.__error_infos[e];n&&"function"===typeof n.destroy&&n.destroy()}this.__error_infos.length=0}return this},clear:function(){this.yytext="",this.yyleng=0,this.match="",this.matches=!1,this._more=!1,this._backtrack=!1;var t=this.yylloc?this.yylloc.last_column:0;this.yylloc={first_line:this.yylineno+1,first_column:t,last_line:this.yylineno+1,last_column:t,range:[this.offset,this.offset]}},setInput:function(t,e){if(this.yy=e||this.yy||{},!this.__decompressed){for(var n=this.rules,r=0,o=n.length;r1){this.yylineno-=n.length-1,this.yylloc.last_line=this.yylineno+1;var r=this.match,o=r.split(/(?:\r\n?|\n)/g);1===o.length&&(o=(r=this.matched).split(/(?:\r\n?|\n)/g)),this.yylloc.last_column=o[o.length-1].length}else this.yylloc.last_column-=e;return this.yylloc.range[1]=this.yylloc.range[0]+this.yyleng,this.done=!1,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else{var t="";this.yylloc&&(t=" on line "+(this.yylineno+1));var e=this.constructLexErrorInfo("Lexical error"+t+": You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).",!1);this._signaled_error_token=this.parseError(e.errStr,e,this.JisonLexerError)||this.ERROR}return this},less:function(t){return this.unput(this.match.slice(t))},pastInput:function(t,e){var n=this.matched.substring(0,this.matched.length-this.match.length);t<0?t=n.length:t||(t=20),e<0?e=n.length:e||(e=1);var r=(n=n.substr(2*-t-2)).replace(/\r\n|\r/g,"\n").split("\n");return(n=(r=r.slice(-e)).join("\n")).length>t&&(n="..."+n.substr(-t)),n},upcomingInput:function(t,e){var n=this.match;t<0?t=n.length+this._input.length:t||(t=20),e<0?e=t:e||(e=1),n.length<2*t+2&&(n+=this._input.substring(0,2*t+2));var r=n.replace(/\r\n|\r/g,"\n").split("\n");return(n=(r=r.slice(0,e)).join("\n")).length>t&&(n=n.substring(0,t)+"..."),n},showPosition:function(t,e){var n=this.pastInput(t).replace(/\s/g," "),r=new Array(n.length+1).join("-");return n+this.upcomingInput(e).replace(/\s/g," ")+"\n"+r+"^"},deriveLocationInfo:function(t,e,n,r){var o={first_line:1,first_column:0,last_line:1,last_column:0,range:[0,0]};return t&&(o.first_line=0|t.first_line,o.last_line=0|t.last_line,o.first_column=0|t.first_column,o.last_column=0|t.last_column,t.range&&(o.range[0]=0|t.range[0],o.range[1]=0|t.range[1])),(o.first_line<=0||o.last_line=o.first_line)&&(o.last_line=0|r.last_line,o.last_column=0|r.last_column,r.range&&(o.range[1]=0|r.range[1]))),o.last_line<=0&&(o.first_line<=0?(o.first_line=this.yylloc.first_line,o.last_line=this.yylloc.last_line,o.first_column=this.yylloc.first_column,o.last_column=this.yylloc.last_column,o.range[0]=this.yylloc.range[0],o.range[1]=this.yylloc.range[1]):(o.last_line=this.yylloc.last_line,o.last_column=this.yylloc.last_column,o.range[1]=this.yylloc.range[1])),o.first_line<=0&&(o.first_line=o.last_line,o.first_column=0,o.range[1]=o.range[0]),o.first_column<0&&(o.first_column=0),o.last_column<0&&(o.last_column=o.first_column>0?o.first_column:80),o},prettyPrintRange:function(t,e,n){t=this.deriveLocationInfo(t,e,n);var r=(this.matched+this._input).split("\n"),o=Math.max(1,e?e.first_line:t.first_line-3),i=Math.max(1,n?n.last_line:t.last_line+1),a=1+Math.log10(1|i)|0,u=new Array(a).join(" "),c=[],s=r.slice(o-1,i+1).map((function(e,n){var r=n+o,i=(u+r).substr(-a)+": "+e,s=new Array(a+1).join("^"),l=3,f=0;(r===t.first_line?(l+=t.first_column,f=Math.max(2,(r===t.last_line?t.last_column:e.length)-t.first_column+1)):r===t.last_line?f=Math.max(2,t.last_column+1):r>t.first_line&&r0&&c.push(n));return i=i.replace(/\t/g," ")}));if(c.length>4){var l=c[1]+1,f=c[c.length-2]-1,h=new Array(a+1).join(" ")+" (...continued...)";h+="\n"+new Array(a+1).join("-")+" (---------------)",s.splice(l,f-l+1,h)}return s.join("\n")},describeYYLLOC:function(t,e){var n,r=t.first_line,o=t.last_line,i=t.first_column,a=t.last_column;if(0===o-r?(n="line "+r+", ",n+=a-i<=1?"column "+i:"columns "+i+" .. "+a):n="lines "+r+"(column "+i+") .. "+o+"(column "+a+")",t.range&&e){var u=t.range[0],c=t.range[1]-1;n+=c<=u?" {String Offset: "+u+"}":" {String Offset range: "+u+" .. "+c+"}"}return n},test_match:function(t,e){var n,r,o,i,a;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.yylloc.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column,range:this.yylloc.range.slice(0)},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done}),a=(i=t[0]).length,(r=i.split(/(?:\r\n?|\n)/g)).length>1?(this.yylineno+=r.length-1,this.yylloc.last_line=this.yylineno+1,this.yylloc.last_column=r[r.length-1].length):this.yylloc.last_column+=a,this.yytext+=i,this.match+=i,this.matched+=i,this.matches=t,this.yyleng=this.yytext.length,this.yylloc.range[1]+=a,this.offset+=a,this._more=!1,this._backtrack=!1,this._input=this._input.slice(a),n=this.performAction.call(this,this.yy,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var u in o)this[u]=o[u];return this.__currentRuleSet__=null,!1}return!!this._signaled_error_token&&(n=this._signaled_error_token,this._signaled_error_token=!1,n)},next:function(){if(this.done)return this.clear(),this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||this.clear();var o=this.__currentRuleSet__;if(!o&&(!(o=this.__currentRuleSet__=this._currentRules())||!o.rules)){var i="";this.options.trackPosition&&(i=" on line "+(this.yylineno+1));var a=this.constructLexErrorInfo("Internal lexer engine error"+i+': The lex grammar programmer pushed a non-existing condition name "'+this.topState()+'"; this is a fatal error and should be reported to the application programmer team!',!1);return this.parseError(a.errStr,a,this.JisonLexerError)||this.ERROR}for(var u=o.rules,c=o.__rule_regexes,s=o.__rule_count,l=1;l<=s;l++)if((n=this._input.match(c[l]))&&(!e||n[0].length>e[0].length)){if(e=n,r=l,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,u[l])))return t;if(this._backtrack){e=void 0;continue}return!1}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,u[r]))&&t;if(this._input){i="";this.options.trackPosition&&(i=" on line "+(this.yylineno+1));a=this.constructLexErrorInfo("Lexical error"+i+": Unrecognized text.",this.options.lexerErrorsAreRecoverable);var f=this._input,h=this.topState(),p=this.conditionStack.length;return(t=this.parseError(a.errStr,a,this.JisonLexerError)||this.ERROR)===this.ERROR&&(this.matches||f!==this._input||h!==this.topState()||p!==this.conditionStack.length||this.input()),t}return this.done=!0,this.clear(),this.EOF},lex:function(){var t;for("function"===typeof this.pre_lex&&(t=this.pre_lex.call(this,0)),"function"===typeof this.options.pre_lex&&(t=this.options.pre_lex.call(this,t)||t),this.yy&&"function"===typeof this.yy.pre_lex&&(t=this.yy.pre_lex.call(this,t)||t);!t;)t=this.next();return this.yy&&"function"===typeof this.yy.post_lex&&(t=this.yy.post_lex.call(this,t)||t),"function"===typeof this.options.post_lex&&(t=this.options.post_lex.call(this,t)||t),"function"===typeof this.post_lex&&(t=this.post_lex.call(this,t)||t),t},fastLex:function(){for(var t;!t;)t=this.next();return t},canIUse:function(){return{fastLex:!("function"===typeof this.pre_lex||"function"===typeof this.options.pre_lex||this.yy&&"function"===typeof this.yy.pre_lex||this.yy&&"function"===typeof this.yy.post_lex||"function"===typeof this.options.post_lex||"function"===typeof this.post_lex)&&"function"===typeof this.fastLex}},begin:function(t){return this.pushState(t)},pushState:function(t){return this.conditionStack.push(t),this.__currentRuleSet__=null,this},popState:function(){return this.conditionStack.length-1>0?(this.__currentRuleSet__=null,this.conditionStack.pop()):this.conditionStack[0]},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]]:this.conditions.INITIAL},stateStackSize:function(){return this.conditionStack.length},options:{trackPosition:!0},JisonLexerError:t,performAction:function(t,e,n){if(1!==e)return this.simpleCaseActionClusters[e]},simpleCaseActionClusters:{0:13,2:5,3:6,4:3,5:4,6:15,7:15,8:15,9:15,10:15,11:15,12:16,13:16,14:16,15:16,16:17,17:17,18:18,19:18,20:19,21:19,22:19,23:20,24:21,25:22,26:23,27:25,28:24,29:26,30:27,31:28,32:11,33:9,34:12,35:10,36:7,37:8,38:14,39:1},rules:[/^(?:(--[\d\-A-Za-z]*))/,/^(?:\s+)/,/^(?:\*)/,/^(?:\/)/,/^(?:\+)/,/^(?:-)/,/^(?:(\d+(\.\d*)?|\.\d+)px\b)/,/^(?:(\d+(\.\d*)?|\.\d+)cm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)mm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)in\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pt\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pc\b)/,/^(?:(\d+(\.\d*)?|\.\d+)deg\b)/,/^(?:(\d+(\.\d*)?|\.\d+)grad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)turn\b)/,/^(?:(\d+(\.\d*)?|\.\d+)s\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ms\b)/,/^(?:(\d+(\.\d*)?|\.\d+)Hz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)kHz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpi\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpcm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dppx\b)/,/^(?:(\d+(\.\d*)?|\.\d+)em\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ex\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ch\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rem\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vw\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vh\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmin\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmax\b)/,/^(?:(\d+(\.\d*)?|\.\d+)%)/,/^(?:(\d+(\.\d*)?|\.\d+)\b)/,/^(?:(calc))/,/^(?:(var))/,/^(?:([a-z]+))/,/^(?:\()/,/^(?:\))/,/^(?:,)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};return e}();function a(){this.yy={}}return o.lexer=i,a.prototype=o,o.Parser=a,new a}();e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)}},40082:function(t,e,n){var r=n(83257),o=n(42993),i=n(19581);function a(t){return this instanceof a?(this.nodes=r(t),this):new a(t)}a.prototype.toString=function(){return Array.isArray(this.nodes)?i(this.nodes):""},a.prototype.walk=function(t,e){return o(this.nodes,t,e),this},a.unit=n(54119),a.walk=o,a.stringify=i,t.exports=a},83257:function(t){var e="(".charCodeAt(0),n=")".charCodeAt(0),r="'".charCodeAt(0),o='"'.charCodeAt(0),i="\\".charCodeAt(0),a="/".charCodeAt(0),u=",".charCodeAt(0),c=":".charCodeAt(0),s="*".charCodeAt(0);t.exports=function(t){for(var l,f,h,p,d,y,v,g,m=[],b=t,x=0,w=b.charCodeAt(x),O=b.length,_=[{nodes:m}],E=0,k="",S="",M="";x=48&&a<=57)f=!0;else if(a===o||a===i){if(l>-1)break;l=u}else if(a===r){if(s)break;s=!0}else{if(a!==n&&a!==e)break;if(0!==u)break}u+=1}return l+1===u&&u--,!!f&&{number:t.slice(0,u),unit:t.slice(u)}}},42993:function(t){t.exports=function t(e,n,r){var o,i,a,u;for(o=0,i=e.length;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}}}]); -//# sourceMappingURL=5315.f76aa5f9.chunk.js.map \ No newline at end of file +/*! For license information please see 2011.53c6f61f.chunk.js.LICENSE.txt */ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2011],{81694:function(t,e){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var t=[],e=0;eo)if(Math.abs(h*s-l*f)>o&&a){var d=r-u,y=i-c,v=s*s+l*l,g=d*d+y*y,m=Math.sqrt(v),b=Math.sqrt(p),x=a*Math.tan((n-Math.acos((v+p-g)/(2*m*b)))/2),w=x/b,O=x/m;Math.abs(w-1)>o&&(this._+="L"+(t+w*f)+","+(e+w*h)),this._+="A"+a+","+a+",0,0,"+ +(h*d>f*y)+","+(this._x1=t+O*s)+","+(this._y1=e+O*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,a,u,c,s){t=+t,e=+e,s=!!s;var l=(a=+a)*Math.cos(u),f=a*Math.sin(u),h=t+l,p=e+f,d=1^s,y=s?u-c:c-u;if(a<0)throw new Error("negative radius: "+a);null===this._x1?this._+="M"+h+","+p:(Math.abs(this._x1-h)>o||Math.abs(this._y1-p)>o)&&(this._+="L"+h+","+p),a&&(y<0&&(y=y%r+r),y>i?this._+="A"+a+","+a+",0,1,"+d+","+(t-l)+","+(e-f)+"A"+a+","+a+",0,1,"+d+","+(this._x1=h)+","+(this._y1=p):y>o&&(this._+="A"+a+","+a+",0,"+ +(y>=n)+","+d+","+(this._x1=t+a*Math.cos(c))+","+(this._y1=e+a*Math.sin(c))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}},e.Z=u},1925:function(t,e,n){"use strict";n.d(e,{Z:function(){return u},x:function(){return s}});var r=n(29439);function o(t,e,n){t=+t,e=+e,n=(o=arguments.length)<2?(e=t,t=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((e-t)/n)),i=new Array(o);++r(u=(a=Math.ceil(h/7))>u?a+1:u+1)&&(i=u,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((u=s.length)-(i=l.length)<0&&(i=u,r=l,l=s,s=r),n=0;i;)n=(s[--i]=s[i]+l[i]+n)/y|0,s[i]%=y;for(n&&(s.unshift(n),++o),u=s.length;0==s[--u];)s.pop();return e.d=s,e.e=o,c?A(e,h):e}function x(t,e,n){if(t!==~~t||tn)throw Error(l+t)}function w(t){var e,n,r,o=t.length-1,i="",a=t[0];if(o>0){for(i+=a,e=1;et.e^i.s<0?1:-1;for(e=0,n=(r=i.d.length)<(o=t.d.length)?r:o;et.d[e]^i.s<0?1:-1;return r===o?0:r>o^i.s<0?1:-1},m.decimalPlaces=m.dp=function(){var t=this,e=t.d.length-1,n=7*(e-t.e);if(e=t.d[e])for(;e%10==0;e/=10)n--;return n<0?0:n},m.dividedBy=m.div=function(t){return O(this,new this.constructor(t))},m.dividedToIntegerBy=m.idiv=function(t){var e=this.constructor;return A(O(this,new e(t),0,1),e.precision)},m.equals=m.eq=function(t){return!this.cmp(t)},m.exponent=function(){return E(this)},m.greaterThan=m.gt=function(t){return this.cmp(t)>0},m.greaterThanOrEqualTo=m.gte=function(t){return this.cmp(t)>=0},m.isInteger=m.isint=function(){return this.e>this.d.length-2},m.isNegative=m.isneg=function(){return this.s<0},m.isPositive=m.ispos=function(){return this.s>0},m.isZero=function(){return 0===this.s},m.lessThan=m.lt=function(t){return this.cmp(t)<0},m.lessThanOrEqualTo=m.lte=function(t){return this.cmp(t)<1},m.logarithm=m.log=function(t){var e,n=this,r=n.constructor,o=r.precision,a=o+5;if(void 0===t)t=new r(10);else if((t=new r(t)).s<1||t.eq(i))throw Error(s+"NaN");if(n.s<1)throw Error(s+(n.s?"NaN":"-Infinity"));return n.eq(i)?new r(0):(c=!1,e=O(M(n,a),M(t,a),a),c=!0,A(e,o))},m.minus=m.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?P(e,t):b(e,(t.s=-t.s,t))},m.modulo=m.mod=function(t){var e,n=this,r=n.constructor,o=r.precision;if(!(t=new r(t)).s)throw Error(s+"NaN");return n.s?(c=!1,e=O(n,t,0,1).times(t),c=!0,n.minus(e)):A(new r(n),o)},m.naturalExponential=m.exp=function(){return _(this)},m.naturalLogarithm=m.ln=function(){return M(this)},m.negated=m.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t},m.plus=m.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?b(e,t):P(e,(t.s=-t.s,t))},m.precision=m.sd=function(t){var e,n,r,o=this;if(void 0!==t&&t!==!!t&&1!==t&&0!==t)throw Error(l+t);if(e=E(o)+1,n=7*(r=o.d.length-1)+1,r=o.d[r]){for(;r%10==0;r/=10)n--;for(r=o.d[0];r>=10;r/=10)n++}return t&&e>n?e:n},m.squareRoot=m.sqrt=function(){var t,e,n,r,o,i,a,u=this,l=u.constructor;if(u.s<1){if(!u.s)return new l(0);throw Error(s+"NaN")}for(t=E(u),c=!1,0==(o=Math.sqrt(+u))||o==1/0?(((e=w(u.d)).length+t)%2==0&&(e+="0"),o=Math.sqrt(e),t=h((t+1)/2)-(t<0||t%2),r=new l(e=o==1/0?"5e"+t:(e=o.toExponential()).slice(0,e.indexOf("e")+1)+t)):r=new l(o.toString()),o=a=(n=l.precision)+3;;)if(r=(i=r).plus(O(u,i,a+2)).times(.5),w(i.d).slice(0,a)===(e=w(r.d)).slice(0,a)){if(e=e.slice(a-3,a+1),o==a&&"4999"==e){if(A(i,n+1,0),i.times(i).eq(u)){r=i;break}}else if("9999"!=e)break;a+=4}return c=!0,A(r,n)},m.times=m.mul=function(t){var e,n,r,o,i,a,u,s,l,f=this,h=f.constructor,p=f.d,d=(t=new h(t)).d;if(!f.s||!t.s)return new h(0);for(t.s*=f.s,n=f.e+t.e,(s=p.length)<(l=d.length)&&(i=p,p=d,d=i,a=s,s=l,l=a),i=[],r=a=s+l;r--;)i.push(0);for(r=l;--r>=0;){for(e=0,o=s+r;o>r;)u=i[o]+d[r]*p[o-r-1]+e,i[o--]=u%y|0,e=u/y|0;i[o]=(i[o]+e)%y|0}for(;!i[--a];)i.pop();return e?++n:i.shift(),t.d=i,t.e=n,c?A(t,h.precision):t},m.toDecimalPlaces=m.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),void 0===t?n:(x(t,0,a),void 0===e?e=r.rounding:x(e,0,8),A(n,t+E(n)+1,e))},m.toExponential=function(t,e){var n,r=this,o=r.constructor;return void 0===t?n=T(r,!0):(x(t,0,a),void 0===e?e=o.rounding:x(e,0,8),n=T(r=A(new o(r),t+1,e),!0,t+1)),n},m.toFixed=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?T(o):(x(t,0,a),void 0===e?e=i.rounding:x(e,0,8),n=T((r=A(new i(o),t+E(o)+1,e)).abs(),!1,t+E(r)+1),o.isneg()&&!o.isZero()?"-"+n:n)},m.toInteger=m.toint=function(){var t=this,e=t.constructor;return A(new e(t),E(t)+1,e.rounding)},m.toNumber=function(){return+this},m.toPower=m.pow=function(t){var e,n,r,o,a,u,l=this,f=l.constructor,p=+(t=new f(t));if(!t.s)return new f(i);if(!(l=new f(l)).s){if(t.s<1)throw Error(s+"Infinity");return l}if(l.eq(i))return l;if(r=f.precision,t.eq(i))return A(l,r);if(u=(e=t.e)>=(n=t.d.length-1),a=l.s,u){if((n=p<0?-p:p)<=v){for(o=new f(i),e=Math.ceil(r/7+4),c=!1;n%2&&C((o=o.times(l)).d,e),0!==(n=h(n/2));)C((l=l.times(l)).d,e);return c=!0,t.s<0?new f(i).div(o):A(o,r)}}else if(a<0)throw Error(s+"NaN");return a=a<0&&1&t.d[Math.max(e,n)]?-1:1,l.s=1,c=!1,o=t.times(M(l,r+12)),c=!0,(o=_(o)).s=a,o},m.toPrecision=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?r=T(o,(n=E(o))<=i.toExpNeg||n>=i.toExpPos):(x(t,1,a),void 0===e?e=i.rounding:x(e,0,8),r=T(o=A(new i(o),t,e),t<=(n=E(o))||n<=i.toExpNeg,t)),r},m.toSignificantDigits=m.tosd=function(t,e){var n=this.constructor;return void 0===t?(t=n.precision,e=n.rounding):(x(t,1,a),void 0===e?e=n.rounding:x(e,0,8)),A(new n(this),t,e)},m.toString=m.valueOf=m.val=m.toJSON=function(){var t=this,e=E(t),n=t.constructor;return T(t,e<=n.toExpNeg||e>=n.toExpPos)};var O=function(){function t(t,e){var n,r=0,o=t.length;for(t=t.slice();o--;)n=t[o]*e+r,t[o]=n%y|0,r=n/y|0;return r&&t.unshift(r),t}function e(t,e,n,r){var o,i;if(n!=r)i=n>r?1:-1;else for(o=i=0;oe[o]?1:-1;break}return i}function n(t,e,n){for(var r=0;n--;)t[n]-=r,r=t[n]1;)t.shift()}return function(r,o,i,a){var u,c,l,f,h,p,d,v,g,m,b,x,w,O,_,k,S,M,j=r.constructor,P=r.s==o.s?1:-1,T=r.d,C=o.d;if(!r.s)return new j(r);if(!o.s)throw Error(s+"Division by zero");for(c=r.e-o.e,S=C.length,_=T.length,v=(d=new j(P)).d=[],l=0;C[l]==(T[l]||0);)++l;if(C[l]>(T[l]||0)&&--c,(x=null==i?i=j.precision:a?i+(E(r)-E(o))+1:i)<0)return new j(0);if(x=x/7+2|0,l=0,1==S)for(f=0,C=C[0],x++;(l<_||f)&&x--;l++)w=f*y+(T[l]||0),v[l]=w/C|0,f=w%C|0;else{for((f=y/(C[0]+1)|0)>1&&(C=t(C,f),T=t(T,f),S=C.length,_=T.length),O=S,m=(g=T.slice(0,S)).length;m=y/2&&++k;do{f=0,(u=e(C,g,S,m))<0?(b=g[0],S!=m&&(b=b*y+(g[1]||0)),(f=b/k|0)>1?(f>=y&&(f=y-1),1==(u=e(h=t(C,f),g,p=h.length,m=g.length))&&(f--,n(h,S16)throw Error(f+E(t));if(!t.s)return new h(i);for(null==e?(c=!1,u=d):u=e,a=new h(.03125);t.abs().gte(.1);)t=t.times(a),l+=5;for(u+=Math.log(p(2,l))/Math.LN10*2+5|0,n=r=o=new h(i),h.precision=u;;){if(r=A(r.times(t),u),n=n.times(++s),w((a=o.plus(O(r,n,u))).d).slice(0,u)===w(o.d).slice(0,u)){for(;l--;)o=A(o.times(o),u);return h.precision=d,null==e?(c=!0,A(o,d)):o}o=a}}function E(t){for(var e=7*t.e,n=t.d[0];n>=10;n/=10)e++;return e}function k(t,e,n){if(e>t.LN10.sd())throw c=!0,n&&(t.precision=n),Error(s+"LN10 precision limit exceeded");return A(new t(t.LN10),e)}function S(t){for(var e="";t--;)e+="0";return e}function M(t,e){var n,r,o,a,u,l,f,h,p,d=1,y=t,v=y.d,g=y.constructor,m=g.precision;if(y.s<1)throw Error(s+(y.s?"NaN":"-Infinity"));if(y.eq(i))return new g(0);if(null==e?(c=!1,h=m):h=e,y.eq(10))return null==e&&(c=!0),k(g,h);if(h+=10,g.precision=h,r=(n=w(v)).charAt(0),a=E(y),!(Math.abs(a)<15e14))return f=k(g,h+2,m).times(a+""),y=M(new g(r+"."+n.slice(1)),h-10).plus(f),g.precision=m,null==e?(c=!0,A(y,m)):y;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=w((y=y.times(t)).d)).charAt(0),d++;for(a=E(y),r>1?(y=new g("0."+n),a++):y=new g(r+"."+n.slice(1)),l=u=y=O(y.minus(i),y.plus(i),h),p=A(y.times(y),h),o=3;;){if(u=A(u.times(p),h),w((f=l.plus(O(u,new g(o),h))).d).slice(0,h)===w(l.d).slice(0,h))return l=l.times(2),0!==a&&(l=l.plus(k(g,h+2,m).times(a+""))),l=O(l,new g(d),h),g.precision=m,null==e?(c=!0,A(l,m)):l;l=f,o+=2}}function j(t,e){var n,r,o;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;48===e.charCodeAt(r);)++r;for(o=e.length;48===e.charCodeAt(o-1);)--o;if(e=e.slice(r,o)){if(o-=r,n=n-r-1,t.e=h(n/7),t.d=[],r=(n+1)%7,n<0&&(r+=7),rg||t.e<-g))throw Error(f+n)}else t.s=0,t.e=0,t.d=[0];return t}function A(t,e,n){var r,o,i,a,u,s,l,d,v=t.d;for(a=1,i=v[0];i>=10;i/=10)a++;if((r=e-a)<0)r+=7,o=e,l=v[d=0];else{if((d=Math.ceil((r+1)/7))>=(i=v.length))return t;for(l=i=v[d],a=1;i>=10;i/=10)a++;o=(r%=7)-7+a}if(void 0!==n&&(u=l/(i=p(10,a-o-1))%10|0,s=e<0||void 0!==v[d+1]||l%i,s=n<4?(u||s)&&(0==n||n==(t.s<0?3:2)):u>5||5==u&&(4==n||s||6==n&&(r>0?o>0?l/p(10,a-o):0:v[d-1])%10&1||n==(t.s<0?8:7))),e<1||!v[0])return s?(i=E(t),v.length=1,e=e-i-1,v[0]=p(10,(7-e%7)%7),t.e=h(-e/7)||0):(v.length=1,v[0]=t.e=t.s=0),t;if(0==r?(v.length=d,i=1,d--):(v.length=d+1,i=p(10,7-r),v[d]=o>0?(l/p(10,a-o)%p(10,o)|0)*i:0),s)for(;;){if(0==d){(v[0]+=i)==y&&(v[0]=1,++t.e);break}if(v[d]+=i,v[d]!=y)break;v[d--]=0,i=1}for(r=v.length;0===v[--r];)v.pop();if(c&&(t.e>g||t.e<-g))throw Error(f+E(t));return t}function P(t,e){var n,r,o,i,a,u,s,l,f,h,p=t.constructor,d=p.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new p(t),c?A(e,d):e;if(s=t.d,h=e.d,r=e.e,l=t.e,s=s.slice(),a=l-r){for((f=a<0)?(n=s,a=-a,u=h.length):(n=h,r=l,u=s.length),a>(o=Math.max(Math.ceil(d/7),u)+2)&&(a=o,n.length=1),n.reverse(),o=a;o--;)n.push(0);n.reverse()}else{for((f=(o=s.length)<(u=h.length))&&(u=o),o=0;o0;--o)s[u++]=0;for(o=h.length;o>a;){if(s[--o]0?i=i.charAt(0)+"."+i.slice(1)+S(r):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(o<0?"e":"e+")+o):o<0?(i="0."+S(-o-1)+i,n&&(r=n-a)>0&&(i+=S(r))):o>=a?(i+=S(o+1-a),n&&(r=n-o-1)>0&&(i=i+"."+S(r))):((r=o+1)0&&(o+1===a&&(i+="."),i+=S(r))),t.s<0?"-"+i:i}function C(t,e){if(t.length>e)return t.length=e,!0}function I(t){if(!t||"object"!==typeof t)throw Error(s+"Object expected");var e,n,r,o=["precision",1,a,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e=o[e+1]&&r<=o[e+2]))throw Error(l+n+": "+r);this[n]=r}if(void 0!==(r=t[n="LN10"])){if(r!=Math.LN10)throw Error(l+n+": "+r);this[n]=new this(r)}return this}u=function t(e){var n,r,o;function i(t){var e=this;if(!(e instanceof i))return new i(t);if(e.constructor=i,t instanceof i)return e.s=t.s,e.e=t.e,void(e.d=(t=t.d)?t.slice():t);if("number"===typeof t){if(0*t!==0)throw Error(l+t);if(t>0)e.s=1;else{if(!(t<0))return e.s=0,e.e=0,void(e.d=[0]);t=-t,e.s=-1}return t===~~t&&t<1e7?(e.e=0,void(e.d=[t])):j(e,t.toString())}if("string"!==typeof t)throw Error(l+t);if(45===t.charCodeAt(0)?(t=t.slice(1),e.s=-1):e.s=1,!d.test(t))throw Error(l+t);j(e,t)}if(i.prototype=m,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=t,i.config=i.set=I,void 0===e&&(e={}),e)for(o=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n-1}},32683:function(t){t.exports=function(t,e,n){for(var r=-1,o=null==t?0:t.length;++r0&&i(l)?n>1?t(l,n-1,i,a,u):r(u,l):a||(u[u.length]=l)}return u}},81954:function(t){t.exports=function(t,e){return t>e}},24842:function(t,e,n){var r=n(2045),o=n(50505),i=n(77167);t.exports=function(t,e,n){return e===e?i(t,e,n):r(t,o,n)}},50505:function(t){t.exports=function(t){return t!==t}},92580:function(t){t.exports=function(t,e){return to?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var i=Array(o);++r=200){var y=e?null:u(t);if(y)return c(y);h=!1,l=a,d=new r}else d=e?[]:p;t:for(;++s=o?t:r(t,e,n)}},88558:function(t,e,n){var r=n(70152);t.exports=function(t,e){if(t!==e){var n=void 0!==t,o=null===t,i=t===t,a=r(t),u=void 0!==e,c=null===e,s=e===e,l=r(e);if(!c&&!l&&!a&&t>e||a&&u&&s&&!c&&!l||o&&u&&s||!n&&s||!i)return 1;if(!o&&!a&&!l&&t=c?s:s*("desc"==n[o]?-1:1)}return t.index-e.index}},10322:function(t,e,n){var r=n(69813),o=n(47302),i=n(27580),a=n(63518);t.exports=function(t){return function(e){e=a(e);var n=o(e)?i(e):void 0,u=n?n[0]:e.charAt(0),c=n?r(n,1).join(""):e.slice(1);return u[t]()+c}}},95481:function(t,e,n){var r=n(56025),o=n(21473),i=n(12742);t.exports=function(t){return function(e,n,a){var u=Object(e);if(!o(e)){var c=r(n,3);e=i(e),n=function(t){return c(u[t],t,u)}}var s=t(e,n,a);return s>-1?u[c?e[s]:s]:void 0}}},56381:function(t,e,n){var r=n(7255),o=n(3195),i=n(91495);t.exports=function(t){return function(e,n,a){return a&&"number"!=typeof a&&o(e,n,a)&&(n=a=void 0),e=i(e),void 0===n?(n=e,e=0):n=i(n),a=void 0===a?e0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},77167:function(t){t.exports=function(t,e,n){for(var r=n-1,o=t.length;++r=e||n<0||v&&t-d>=l}function w(){var t=o();if(x(t))return O(t);h=setTimeout(w,function(t){var n=e-(t-p);return v?u(n,l-(t-d)):n}(t))}function O(t){return h=void 0,g&&c?m(t):(c=s=void 0,f)}function _(){var t=o(),n=x(t);if(c=arguments,s=this,p=t,n){if(void 0===h)return b(p);if(v)return clearTimeout(h),h=setTimeout(w,e),m(p)}return void 0===h&&(h=setTimeout(w,e)),f}return e=i(e)||0,r(n)&&(y=!!n.leading,l=(v="maxWait"in n)?a(i(n.maxWait)||0,e):l,g="trailing"in n?!!n.trailing:g),_.cancel=function(){void 0!==h&&clearTimeout(h),d=0,c=p=s=h=void 0},_.flush=function(){return void 0===h?f:O(o())},_}},82730:function(t,e,n){var r=n(18573),o=n(39863),i=n(56025),a=n(93629),u=n(3195);t.exports=function(t,e,n){var c=a(t)?r:o;return n&&u(t,e,n)&&(e=void 0),c(t,i(e,3))}},61211:function(t,e,n){var r=n(95481)(n(51475));t.exports=r},51475:function(t,e,n){var r=n(2045),o=n(56025),i=n(39753),a=Math.max;t.exports=function(t,e,n){var u=null==t?0:t.length;if(!u)return-1;var c=null==n?0:i(n);return c<0&&(c=a(u+c,0)),r(t,o(e,3),c)}},5008:function(t,e,n){var r=n(55182),o=n(72034);t.exports=function(t,e){return r(o(t,e),1)}},65127:function(t,e,n){var r=n(39066),o=n(43141);t.exports=function(t){return!0===t||!1===t||o(t)&&"[object Boolean]"==r(t)}},82066:function(t,e,n){var r=n(30298);t.exports=function(t){return r(t)&&t!=+t}},42854:function(t){t.exports=function(t){return null==t}},30298:function(t,e,n){var r=n(39066),o=n(43141);t.exports=function(t){return"number"==typeof t||o(t)&&"[object Number]"==r(t)}},26769:function(t,e,n){var r=n(39066),o=n(93629),i=n(43141);t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&"[object String]"==r(t)}},15727:function(t){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},72034:function(t,e,n){var r=n(68950),o=n(56025),i=n(53849),a=n(93629);t.exports=function(t,e){return(a(t)?r:i)(t,o(e,3))}},37702:function(t,e,n){var r=n(32526),o=n(15358),i=n(56025);t.exports=function(t,e){var n={};return e=i(e,3),o(t,(function(t,o,i){r(n,o,e(t,o,i))})),n}},29627:function(t,e,n){var r=n(43079),o=n(81954),i=n(2100);t.exports=function(t){return t&&t.length?r(t,i,o):void 0}},66452:function(t,e,n){var r=n(43079),o=n(92580),i=n(2100);t.exports=function(t){return t&&t.length?r(t,i,o):void 0}},19694:function(t){t.exports=function(){}},50072:function(t,e,n){var r=n(97009);t.exports=function(){return r.Date.now()}},66222:function(t,e,n){var r=n(56381)();t.exports=r},14064:function(t,e,n){var r=n(47897),o=n(56025),i=n(59204),a=n(93629),u=n(3195);t.exports=function(t,e,n){var c=a(t)?r:i;return n&&u(t,e,n)&&(e=void 0),c(t,o(e,3))}},64286:function(t,e,n){var r=n(55182),o=n(93226),i=n(58794),a=n(3195),u=i((function(t,e){if(null==t)return[];var n=e.length;return n>1&&a(t,e[0],e[1])?e=[]:n>2&&a(e[0],e[1],e[2])&&(e=[e[0]]),o(t,r(e,1),[])}));t.exports=u},33038:function(t,e,n){var r=n(48573),o=n(8092);t.exports=function(t,e,n){var i=!0,a=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return o(n)&&(i="leading"in n?!!n.leading:i,a="trailing"in n?!!n.trailing:a),r(t,e,{leading:i,maxWait:e,trailing:a})}},91495:function(t,e,n){var r=n(42582),o=1/0;t.exports=function(t){return t?(t=r(t))===o||t===-1/0?17976931348623157e292*(t<0?-1:1):t===t?t:0:0===t?t:0}},39753:function(t,e,n){var r=n(91495);t.exports=function(t){var e=r(t),n=e%1;return e===e?n?e-n:e:0}},42582:function(t,e,n){var r=n(20821),o=n(8092),i=n(70152),a=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=u.test(t);return n||c.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}},66339:function(t,e,n){var r=n(56025),o=n(39602);t.exports=function(t,e){return t&&t.length?o(t,r(e,2)):[]}},52085:function(t,e,n){var r=n(10322)("toUpperCase");t.exports=r},48872:function(t){(function(){var e,n,r,o,i,a;"undefined"!==typeof performance&&null!==performance&&performance.now?t.exports=function(){return performance.now()}:"undefined"!==typeof process&&null!==process&&process.hrtime?(t.exports=function(){return(e()-i)/1e6},n=process.hrtime,o=(e=function(){var t;return 1e9*(t=n())[0]+t[1]})(),a=1e9*process.uptime(),i=o-a):Date.now?(t.exports=function(){return Date.now()-r},r=Date.now()):(t.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)},55475:function(t,e,n){for(var r=n(48872),o="undefined"===typeof window?n.g:window,i=["moz","webkit"],a="AnimationFrame",u=o["request"+a],c=o["cancel"+a]||o["cancelRequest"+a],s=0;!u&&s1&&void 0!==arguments[1]?arguments[1]:0,n=-1,r=function r(o){n<0&&(n=o),o-n>e?(t(o),n=-1):c()(r)};c()(r)}function l(t){return l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l(t)}function f(t){return function(t){if(Array.isArray(t))return t}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(t,e)}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0&&t<=1}));var l=T(r,i),f=T(o,a),h=C(r,i),p=function(t){return t>1?1:t<0?0:t},d=function(t){for(var e=t>1?1:t,n=e,r=0;r<8;++r){var o=l(n)-e,i=h(n);if(Math.abs(o-e)0&&void 0!==arguments[0]?arguments[0]:{},e=t.stiff,n=void 0===e?100:e,r=t.damping,o=void 0===r?8:r,i=t.dt,a=void 0===i?17:i,u=function(t,e,r){var i=r+(-(t-e)*n-r*o)*a/1e3,u=r*a/1e3+t;return Math.abs(u-e)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function X(t){return function(t){if(Array.isArray(t))return Y(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return Y(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Y(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Y(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?n[o-1]:r,h=s||Object.keys(c);if("function"===typeof u||"spring"===u)return[].concat(X(t),[e.runJSAnimation.bind(e,{from:f.style,to:c,duration:i,easing:u}),i]);var p=_(h,i,u),d=K(K(K({},f.style),c),{},{transition:p});return[].concat(X(t),[d,i,l]).filter(x)}),[a,Math.max(c,r)])),[t.onAnimationEnd]))}},{key:"runAnimation",value:function(t){this.manager||(this.manager=p());var e=t.begin,n=t.duration,r=t.attributeName,o=t.to,i=t.easing,a=t.onAnimationStart,u=t.onAnimationEnd,c=t.steps,s=t.children,l=this.manager;if(this.unSubscribe=l.subscribe(this.handleStyleChange),"function"!==typeof i&&"function"!==typeof s&&"spring"!==i)if(c.length>1)this.runStepAnimation(t);else{var f=r?J({},r,o):o,h=_(Object.keys(f),n,i);l.start([a,e,K(K({},f),{},{transition:h}),n,u])}else this.runJSAnimation(t)}},{key:"handleStyleChange",value:function(t){this.changeStyle(t)}},{key:"changeStyle",value:function(t){this.mounted&&this.setState({style:t})}},{key:"render",value:function(){var t=this.props,e=t.children,n=(t.begin,t.duration,t.attributeName,t.easing,t.isActive),o=(t.steps,t.from,t.to,t.canBegin,t.onAnimationEnd,t.shouldReAnimate,t.onAnimationReStart,W(t,["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"])),i=r.Children.count(e),a=O(this.state.style);if("function"===typeof e)return e(a);if(!n||0===i)return e;var u=function(t){var e=t.props,n=e.style,i=void 0===n?{}:n,u=e.className;return(0,r.cloneElement)(t,K(K({},o),{},{style:K(K({},i),a),className:u}))};return 1===i?u(r.Children.only(e)):r.createElement("div",null,r.Children.map(e,(function(t){return u(t)})))}}],n&&Q(e.prototype,n),o&&Q(e,o),u}(r.PureComponent);it.displayName="Animate",it.propTypes={from:i().oneOfType([i().object,i().string]),to:i().oneOfType([i().object,i().string]),attributeName:i().string,duration:i().number,begin:i().number,easing:i().oneOfType([i().string,i().func]),steps:i().arrayOf(i().shape({duration:i().number.isRequired,style:i().object.isRequired,easing:i().oneOfType([i().oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),i().func]),properties:i().arrayOf("string"),onAnimationEnd:i().func})),children:i().oneOfType([i().node,i().func]),isActive:i().bool,canBegin:i().bool,onAnimationEnd:i().func,shouldReAnimate:i().bool,onAnimationStart:i().func,onAnimationReStart:i().func},it.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};var at=it,ut=n(25937);function ct(t){return ct="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function st(){return st=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ft(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ht(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.steps,n=t.duration;return e&&e.length?e.reduce((function(t,e){return t+(Number.isFinite(e.duration)&&e.duration>0?e.duration:0)}),0):Number.isFinite(n)?n:0},wt=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&vt(t,e)}(a,t);var e,n,o,i=gt(a);function a(){var t;dt(this,a);for(var e=arguments.length,n=new Array(e),r=0;r=0||(o[n]=t[n]);return o}(t,["children","in"]),a=r.default.Children.toArray(e),u=a[0],c=a[1];return delete o.onEnter,delete o.onEntering,delete o.onEntered,delete o.onExit,delete o.onExiting,delete o.onExited,r.default.createElement(i.default,o,n?r.default.cloneElement(u,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):r.default.cloneElement(c,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},a}(r.default.Component);u.propTypes={};var c=u;e.default=c,t.exports=e.default},55580:function(t,e,n){"use strict";e.__esModule=!0,e.default=e.EXITING=e.ENTERED=e.ENTERING=e.EXITED=e.UNMOUNTED=void 0;var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};r.get||r.set?Object.defineProperty(e,n,r):e[n]=t[n]}return e.default=t,e}(n(52007)),o=u(n(72791)),i=u(n(54164)),a=n(23688);n(74987);function u(t){return t&&t.__esModule?t:{default:t}}var c="unmounted";e.UNMOUNTED=c;var s="exited";e.EXITED=s;var l="entering";e.ENTERING=l;var f="entered";e.ENTERED=f;var h="exiting";e.EXITING=h;var p=function(t){var e,n;function r(e,n){var r;r=t.call(this,e,n)||this;var o,i=n.transitionGroup,a=i&&!i.isMounting?e.enter:e.appear;return r.appearStatus=null,e.in?a?(o=s,r.appearStatus=l):o=f:o=e.unmountOnExit||e.mountOnEnter?c:s,r.state={status:o},r.nextCallback=null,r}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var a=r.prototype;return a.getChildContext=function(){return{transitionGroup:null}},r.getDerivedStateFromProps=function(t,e){return t.in&&e.status===c?{status:s}:null},a.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},a.componentDidUpdate=function(t){var e=null;if(t!==this.props){var n=this.state.status;this.props.in?n!==l&&n!==f&&(e=l):n!==l&&n!==f||(e=h)}this.updateStatus(!1,e)},a.componentWillUnmount=function(){this.cancelNextCallback()},a.getTimeouts=function(){var t,e,n,r=this.props.timeout;return t=e=n=r,null!=r&&"number"!==typeof r&&(t=r.exit,e=r.enter,n=void 0!==r.appear?r.appear:e),{exit:t,enter:e,appear:n}},a.updateStatus=function(t,e){if(void 0===t&&(t=!1),null!==e){this.cancelNextCallback();var n=i.default.findDOMNode(this);e===l?this.performEnter(n,t):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===s&&this.setState({status:c})},a.performEnter=function(t,e){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:e,i=this.getTimeouts(),a=o?i.appear:i.enter;e||r?(this.props.onEnter(t,o),this.safeSetState({status:l},(function(){n.props.onEntering(t,o),n.onTransitionEnd(t,a,(function(){n.safeSetState({status:f},(function(){n.props.onEntered(t,o)}))}))}))):this.safeSetState({status:f},(function(){n.props.onEntered(t)}))},a.performExit=function(t){var e=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(t),this.safeSetState({status:h},(function(){e.props.onExiting(t),e.onTransitionEnd(t,r.exit,(function(){e.safeSetState({status:s},(function(){e.props.onExited(t)}))}))}))):this.safeSetState({status:s},(function(){e.props.onExited(t)}))},a.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},a.safeSetState=function(t,e){e=this.setNextCallback(e),this.setState(t,e)},a.setNextCallback=function(t){var e=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,e.nextCallback=null,t(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},a.onTransitionEnd=function(t,e,n){this.setNextCallback(n);var r=null==e&&!this.props.addEndListener;t&&!r?(this.props.addEndListener&&this.props.addEndListener(t,this.nextCallback),null!=e&&setTimeout(this.nextCallback,e)):setTimeout(this.nextCallback,0)},a.render=function(){var t=this.state.status;if(t===c)return null;var e=this.props,n=e.children,r=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(e,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"===typeof n)return n(t,r);var i=o.default.Children.only(n);return o.default.cloneElement(i,r)},r}(o.default.Component);function d(){}p.contextTypes={transitionGroup:r.object},p.childContextTypes={transitionGroup:function(){}},p.propTypes={},p.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:d,onEntering:d,onEntered:d,onExit:d,onExiting:d,onExited:d},p.UNMOUNTED=0,p.EXITED=1,p.ENTERING=2,p.ENTERED=3,p.EXITING=4;var y=(0,a.polyfill)(p);e.default=y},50294:function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=u(n(52007)),o=u(n(72791)),i=n(23688),a=n(46970);function u(t){return t&&t.__esModule?t:{default:t}}function c(){return c=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,["component","childFactory"]),i=l(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===e?i:o.default.createElement(e,r,i)},r}(o.default.Component);f.childContextTypes={transitionGroup:r.default.object.isRequired},f.propTypes={},f.defaultProps={component:"div",childFactory:function(t){return t}};var h=(0,i.polyfill)(f);e.default=h,t.exports=e.default},25937:function(t,e,n){"use strict";var r=u(n(59745)),o=u(n(66492)),i=u(n(50294)),a=u(n(55580));function u(t){return t&&t.__esModule?t:{default:t}}t.exports={Transition:a.default,TransitionGroup:i.default,ReplaceTransition:o.default,CSSTransition:r.default}},46970:function(t,e,n){"use strict";e.__esModule=!0,e.getChildMapping=o,e.mergeChildMappings=i,e.getInitialChildMapping=function(t,e){return o(t.children,(function(n){return(0,r.cloneElement)(n,{onExited:e.bind(null,n),in:!0,appear:a(n,"appear",t),enter:a(n,"enter",t),exit:a(n,"exit",t)})}))},e.getNextChildMapping=function(t,e,n){var u=o(t.children),c=i(e,u);return Object.keys(c).forEach((function(o){var i=c[o];if((0,r.isValidElement)(i)){var s=o in e,l=o in u,f=e[o],h=(0,r.isValidElement)(f)&&!f.props.in;!l||s&&!h?l||!s||h?l&&s&&(0,r.isValidElement)(f)&&(c[o]=(0,r.cloneElement)(i,{onExited:n.bind(null,i),in:f.props.in,exit:a(i,"exit",t),enter:a(i,"enter",t)})):c[o]=(0,r.cloneElement)(i,{in:!1}):c[o]=(0,r.cloneElement)(i,{onExited:n.bind(null,i),in:!0,exit:a(i,"exit",t),enter:a(i,"enter",t)})}})),c};var r=n(72791);function o(t,e){var n=Object.create(null);return t&&r.Children.map(t,(function(t){return t})).forEach((function(t){n[t.key]=function(t){return e&&(0,r.isValidElement)(t)?e(t):t}(t)})),n}function i(t,e){function n(n){return n in e?e[n]:t[n]}t=t||{},e=e||{};var r,o=Object.create(null),i=[];for(var a in t)a in e?i.length&&(o[a]=i,i=[]):i.push(a);var u={};for(var c in e){if(o[c])for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function rt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ot(t,e){for(var n=0;n=2?(0,T.uY)(v[1].coordinate-v[0].coordinate):1;if(1===b?(n="width"===y?f:h,r="width"===y?f+p:h+d):(n="width"===y?f+p:h+d,r="width"===y?f:h),e){var x=o[m-1],w=c()(i)?i(x.value,m-1):x.value,O=(0,W.xE)(w)[y]+g,_=b*(x.coordinate+b*O/2-r);v[m-1]=x=tt(tt({},x),{},{tickCoord:_>0?x.coordinate-_*b:x.coordinate}),b*(x.tickCoord-b*O/2-n)>=0&&b*(x.tickCoord+b*O/2-r)<=0&&(r=x.tickCoord-b*(O/2+s),v[m-1]=tt(tt({},x),{},{isShow:!0}))}for(var E=e?m-1:m,k=0;k=0&&b*(S.tickCoord+b*j/2-r)<=0&&(n=S.tickCoord+b*(j/2+s),v[k]=tt(tt({},S),{},{isShow:!0}))}return v.filter((function(t){return t.isShow}))}},{key:"getTicksEnd",value:function(t){var e,n,r=t.ticks,o=t.tickFormatter,i=t.viewBox,a=t.orientation,u=t.minTickGap,s=t.unit,l=i.x,f=i.y,h=i.width,p=i.height,d="top"===a||"bottom"===a?"width":"height",y=s&&"width"===d?(0,W.xE)(s)[d]:0,v=(r||[]).slice(),g=v.length,m=g>=2?(0,T.uY)(v[1].coordinate-v[0].coordinate):1;1===m?(e="width"===d?l:f,n="width"===d?l+h:f+p):(e="width"===d?l+h:f+p,n="width"===d?l:f);for(var b=g-1;b>=0;b--){var x=v[b],w=c()(o)?o(x.value,g-b-1):x.value,O=(0,W.xE)(w)[d]+y;if(b===g-1){var _=m*(x.coordinate+m*O/2-n);v[b]=x=tt(tt({},x),{},{tickCoord:_>0?x.coordinate-_*m:x.coordinate})}else v[b]=x=tt(tt({},x),{},{tickCoord:x.coordinate});m*(x.tickCoord-m*O/2-e)>=0&&m*(x.tickCoord+m*O/2-n)<=0&&(n=x.tickCoord-m*(O/2+u),v[b]=tt(tt({},x),{},{isShow:!0}))}return v.filter((function(t){return t.isShow}))}},{key:"renderTickItem",value:function(t,e,n){return _.isValidElement(t)?_.cloneElement(t,e):c()(t)?t(e):_.createElement(X.x,J({},e,{className:"recharts-cartesian-axis-tick-value"}),n)}}],(n=[{key:"shouldComponentUpdate",value:function(t){var e=t.viewBox,n=nt(t,["viewBox"]),r=this.props,o=r.viewBox,i=nt(r,["viewBox"]);return!(0,Z.w)(e,o)||!(0,Z.w)(n,i)}},{key:"getTickLineCoord",value:function(t){var e,n,r,o,i,a,u=this.props,c=u.x,s=u.y,l=u.width,f=u.height,h=u.orientation,p=u.tickSize,d=u.mirror,y=u.tickMargin,v=d?-1:1,g=t.tickSize||p,m=(0,T.hj)(t.tickCoord)?t.tickCoord:t.coordinate;switch(h){case"top":e=n=t.coordinate,a=(r=(o=s+ +!d*f)-v*g)-v*y,i=m;break;case"left":r=o=t.coordinate,i=(e=(n=c+ +!d*l)-v*g)-v*y,a=m;break;case"right":r=o=t.coordinate,i=(e=(n=c+ +d*l)+v*g)+v*y,a=m;break;default:e=n=t.coordinate,a=(r=(o=s+ +d*f)+v*g)+v*y,i=m}return{line:{x1:e,y1:r,x2:n,y2:o},tick:{x:i,y:a}}}},{key:"getTickTextAnchor",value:function(){var t,e=this.props,n=e.orientation,r=e.mirror;switch(n){case"left":t=r?"start":"end";break;case"right":t=r?"end":"start";break;default:t="middle"}return t}},{key:"getTickVerticalAnchor",value:function(){var t=this.props,e=t.orientation,n=t.mirror,r="end";switch(e){case"left":case"right":r="middle";break;case"top":r=n?"start":"end";break;default:r=n?"end":"start"}return r}},{key:"renderAxisLine",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.orientation,a=t.mirror,u=t.axisLine,c=tt(tt(tt({},(0,C.L6)(this.props)),(0,C.L6)(u)),{},{fill:"none"});if("top"===i||"bottom"===i){var s=+("top"===i&&!a||"bottom"===i&&a);c=tt(tt({},c),{},{x1:e,y1:n+s*o,x2:e+r,y2:n+s*o})}else{var l=+("left"===i&&!a||"right"===i&&a);c=tt(tt({},c),{},{x1:e+l*r,y1:n,x2:e+l*r,y2:n+o})}return _.createElement("line",J({},c,{className:k()("recharts-cartesian-axis-line",d()(u,"className"))}))}},{key:"renderTicks",value:function(t){var e=this,n=this.props,r=n.tickLine,o=n.stroke,a=n.tick,u=n.tickFormatter,s=n.unit,l=i.getTicks(tt(tt({},this.props),{},{ticks:t})),f=this.getTickTextAnchor(),h=this.getTickVerticalAnchor(),p=(0,C.L6)(this.props),y=(0,C.L6)(a),v=tt(tt({},p),{},{fill:"none"},(0,C.L6)(r)),g=l.map((function(t,n){var g=e.getTickLineCoord(t),m=g.line,b=g.tick,x=tt(tt(tt(tt({textAnchor:f,verticalAnchor:h},p),{},{stroke:"none",fill:o},y),b),{},{index:n,payload:t,visibleTicksCount:l.length,tickFormatter:u});return _.createElement(M.m,J({className:"recharts-cartesian-axis-tick",key:"tick-".concat(n)},(0,C.bw)(e.props,t,n)),r&&_.createElement("line",J({},v,m,{className:k()("recharts-cartesian-axis-tick-line",d()(r,"className"))})),a&&i.renderTickItem(a,x,"".concat(c()(u)?u(t.value,n):t.value).concat(s||"")))}));return _.createElement("g",{className:"recharts-cartesian-axis-ticks"},g)}},{key:"render",value:function(){var t=this.props,e=t.axisLine,n=t.width,r=t.height,o=t.ticksGenerator,i=t.className;if(t.hide)return null;var a=this.props,u=a.ticks,s=nt(a,["ticks"]),l=u;return c()(o)&&(l=u&&u.length>0?o(this.props):o(s)),n<=0||r<=0||!l||!l.length?null:_.createElement(M.m,{className:k()("recharts-cartesian-axis",i)},e&&this.renderAxisLine(),this.renderTicks(l),Y._.renderCallByParent(this.props))}}])&&ot(e.prototype,n),r&&ot(e,r),i}(_.Component);st.displayName="CartesianAxis",st.defaultProps={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"};var lt=n(1925),ft=n(56926);function ht(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function pt(t){for(var e=1;e0&&e.handleDrag(t.changedTouches[0])},e.handleDragEnd=function(){e.setState({isTravellerMoving:!1,isSlideMoving:!1}),e.detachDragEndListener()},e.handleLeaveWrapper=function(){(e.state.isTravellerMoving||e.state.isSlideMoving)&&(e.leaveTimer=window.setTimeout(e.handleDragEnd,e.props.leaveTimeOut))},e.handleEnterSlideOrTraveller=function(){e.setState({isTextActive:!0})},e.handleLeaveSlideOrTraveller=function(){e.setState({isTextActive:!1})},e.handleSlideDragStart=function(t){var n=Mt(t)?t.changedTouches[0]:t;e.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:n.pageX}),e.attachDragEndListener()},e.travellerDragStartHandlers={startX:e.handleTravellerDragStart.bind(kt(e),"startX"),endX:e.handleTravellerDragStart.bind(kt(e),"endX")},e.state={},e}return e=i,r=[{key:"renderDefaultTraveller",value:function(t){var e=t.x,n=t.y,r=t.width,o=t.height,i=t.stroke,a=Math.floor(n+o/2)-1;return _.createElement(_.Fragment,null,_.createElement("rect",{x:e,y:n,width:r,height:o,fill:i,stroke:"none"}),_.createElement("line",{x1:e+1,y1:a,x2:e+r-1,y2:a,fill:"none",stroke:"#fff"}),_.createElement("line",{x1:e+1,y1:a+2,x2:e+r-1,y2:a+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(t,e){return _.isValidElement(t)?_.cloneElement(t,e):c()(t)?t(e):i.renderDefaultTraveller(e)}},{key:"getDerivedStateFromProps",value:function(t,e){var n=t.data,r=t.width,o=t.x,i=t.travellerWidth,a=t.updateId,u=t.startIndex,c=t.endIndex;if(n!==e.prevData||a!==e.prevUpdateId)return bt({prevData:n,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:r},n&&n.length?function(t){var e=t.data,n=t.startIndex,r=t.endIndex,o=t.x,i=t.width,a=t.travellerWidth;if(!e||!e.length)return{};var u=e.length,c=(0,lt.x)().domain(v()(0,u)).range([o,o+i-a]),s=c.domain().map((function(t){return c(t)}));return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,startX:c(n),endX:c(r),scale:c,scaleValues:s}}({data:n,width:r,x:o,travellerWidth:i,startIndex:u,endIndex:c}):{scale:null,scaleValues:null});if(e.scale&&(r!==e.prevWidth||o!==e.prevX||i!==e.prevTravellerWidth)){e.scale.range([o,o+r-i]);var s=e.scale.domain().map((function(t){return e.scale(t)}));return{prevData:n,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:r,startX:e.scale(t.startIndex),endX:e.scale(t.endIndex),scaleValues:s}}return null}},{key:"getIndexInRange",value:function(t,e){for(var n=0,r=t.length-1;r-n>1;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o}return e>=t[r]?r:n}}],(n=[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(t){var e=t.startX,n=t.endX,r=this.state.scaleValues,o=this.props,a=o.gap,u=o.data.length-1,c=Math.min(e,n),s=Math.max(e,n),l=i.getIndexInRange(r,c),f=i.getIndexInRange(r,s);return{startIndex:l-l%a,endIndex:f===u?u:f-f%a}}},{key:"getTextOfTick",value:function(t){var e=this.props,n=e.data,r=e.tickFormatter,o=e.dataKey,i=(0,ft.F$)(n[t],o,t);return c()(r)?r(i,t):i}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0)}},{key:"handleSlideDrag",value:function(t){var e=this.state,n=e.slideMoveStartX,r=e.startX,o=e.endX,i=this.props,a=i.x,u=i.width,c=i.travellerWidth,s=i.startIndex,l=i.endIndex,f=i.onChange,h=t.pageX-n;h>0?h=Math.min(h,a+u-c-o,a+u-c-r):h<0&&(h=Math.max(h,a-r,a-o));var p=this.getIndex({startX:r+h,endX:o+h});p.startIndex===s&&p.endIndex===l||!f||f(p),this.setState({startX:r+h,endX:o+h,slideMoveStartX:t.pageX})}},{key:"handleTravellerDragStart",value:function(t,e){var n=Mt(e)?e.changedTouches[0]:e;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:t,brushMoveStartX:n.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(t){var e,n=this.state,r=n.brushMoveStartX,o=n.movingTravellerId,i=n.endX,a=n.startX,u=this.state[o],c=this.props,s=c.x,l=c.width,f=c.travellerWidth,h=c.onChange,p=c.gap,d=c.data,y={startX:this.state.startX,endX:this.state.endX},v=t.pageX-r;v>0?v=Math.min(v,s+l-f-u):v<0&&(v=Math.max(v,s-u)),y[o]=u+v;var g=this.getIndex(y),m=g.startIndex,b=g.endIndex;this.setState((xt(e={},o,u+v),xt(e,"brushMoveStartX",t.pageX),e),(function(){h&&function(){var t=d.length-1;return"startX"===o&&(i>a?m%p===0:b%p===0)||ia?b%p===0:m%p===0)||i>a&&b===t}()&&h(g)}))}},{key:"renderBackground",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.fill,a=t.stroke;return _.createElement("rect",{stroke:a,fill:i,x:e,y:n,width:r,height:o})}},{key:"renderPanorama",value:function(){var t=this.props,e=t.x,n=t.y,r=t.width,o=t.height,i=t.data,a=t.children,u=t.padding,c=_.Children.only(a);return c?_.cloneElement(c,{x:e,y:n,width:r,height:o,margin:u,compact:!0,data:i}):null}},{key:"renderTravellerLayer",value:function(t,e){var n=this.props,r=n.y,o=n.travellerWidth,a=n.height,u=n.traveller,c=Math.max(t,this.props.x),s=bt(bt({},(0,C.L6)(this.props)),{},{x:c,y:r,width:o,height:a});return _.createElement(M.m,{className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[e],onTouchStart:this.travellerDragStartHandlers[e],style:{cursor:"col-resize"}},i.renderTraveller(u,s))}},{key:"renderSlide",value:function(t,e){var n=this.props,r=n.y,o=n.height,i=n.stroke,a=n.travellerWidth,u=Math.min(t,e)+a,c=Math.max(Math.abs(e-t)-a,0);return _.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:i,fillOpacity:.2,x:u,y:r,width:c,height:o})}},{key:"renderText",value:function(){var t=this.props,e=t.startIndex,n=t.endIndex,r=t.y,o=t.height,i=t.travellerWidth,a=t.stroke,u=this.state,c=u.startX,s=u.endX,l={pointerEvents:"none",fill:a};return _.createElement(M.m,{className:"recharts-brush-texts"},_.createElement(X.x,gt({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,s)-5,y:r+o/2},l),this.getTextOfTick(e)),_.createElement(X.x,gt({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,s)+i+5,y:r+o/2},l),this.getTextOfTick(n)))}},{key:"render",value:function(){var t=this.props,e=t.data,n=t.className,r=t.children,o=t.x,i=t.y,a=t.width,u=t.height,c=t.alwaysShowText,s=this.state,l=s.startX,f=s.endX,h=s.isTextActive,p=s.isSlideMoving,d=s.isTravellerMoving;if(!e||!e.length||!(0,T.hj)(o)||!(0,T.hj)(i)||!(0,T.hj)(a)||!(0,T.hj)(u)||a<=0||u<=0)return null;var y=k()("recharts-brush",n),v=1===_.Children.count(r),g=function(t,e){if(!t)return null;var n=t.replace(/(\w)/,(function(t){return t.toUpperCase()})),r=yt.reduce((function(t,r){return pt(pt({},t),{},dt({},r+n,e))}),{});return r[t]=e,r}("userSelect","none");return _.createElement(M.m,{className:y,onMouseMove:this.handleDrag,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:g},this.renderBackground(),v&&this.renderPanorama(),this.renderSlide(l,f),this.renderTravellerLayer(l,"startX"),this.renderTravellerLayer(f,"endX"),(h||p||d||c)&&this.renderText())}}])&&wt(e.prototype,n),r&&wt(e,r),i}(_.PureComponent);jt.displayName="Brush",jt.defaultProps={height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1};var At=function(t,e){var n=t.alwaysShow,r=t.ifOverflow;return n&&(r="extendDomain"),r===e},Pt=n(93137),Tt=n(15303);function Ct(){return Ct=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ae(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?a:n&&n.props&&n.props.data&&n.props.data.length>0?n.props.data:t&&t.length&&(0,T.hj)(o)&&(0,T.hj)(i)?t.slice(o,i+1):[]},Ee=function(t,e,n,r){var o=t.graphicalItems,i=t.tooltipAxis,a=_e(e,t);return n<0||!o||!o.length||n>=a.length?null:o.reduce((function(t,e){if(e.props.hide)return t;var o,u=e.props.data;if(i.dataKey&&!i.allowDuplicatedCategory){var c=void 0===u?a:u;o=(0,T.Ap)(c,i.dataKey,r)}else o=u&&u[n]||a[n];return o?[].concat(he(t),[(0,ft.Qo)(e,o)]):t}),[])},ke=function(t,e,n,r){var o=r||{x:t.chartX,y:t.chartY},i=function(t,e){return"horizontal"===e?t.x:"vertical"===e?t.y:"centric"===e?t.angle:t.radius}(o,n),a=t.orderedTooltipTicks,u=t.tooltipAxis,c=t.tooltipTicks,s=(0,ft.VO)(i,a,c,u);if(s>=0&&c){var l=c[s]&&c[s].value,f=Ee(t,e,s,l),h=function(t,e,n,r){var o=e.find((function(t){return t&&t.index===n}));if(o){if("horizontal"===t)return{x:o.coordinate,y:r.y};if("vertical"===t)return{x:r.x,y:o.coordinate};if("centric"===t){var i=o.coordinate,a=r.radius;return ve(ve(ve({},r),(0,Jt.op)(r.cx,r.cy,a,i)),{},{angle:i,radius:a})}var u=o.coordinate,c=r.angle;return ve(ve(ve({},r),(0,Jt.op)(r.cx,r.cy,u,c)),{},{angle:c,radius:u})}return be}(n,a,s,o);return{activeTooltipIndex:s,activeLabel:l,activePayload:f,activeCoordinate:h}}return null},Se=function(t,e){var n=e.axisType,r=void 0===n?"xAxis":n,o=e.AxisComp,i=e.graphicalItems,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.children,l="".concat(r,"Id"),f=(0,H.NN)(s,o),h={};return f&&f.length?h=function(t,e){var n=e.axes,r=e.graphicalItems,o=e.axisType,i=e.axisIdKey,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.layout,l=t.children,f=t.stackOffset,h=(0,ft.NA)(s,o);return n.reduce((function(e,n){var p=n.props,d=p.type,y=p.dataKey,g=p.allowDataOverflow,b=p.allowDuplicatedCategory,x=p.scale,w=p.ticks,O=n.props[i],_=_e(t.data,{graphicalItems:r.filter((function(t){return t.props[i]===O})),dataStartIndex:u,dataEndIndex:c}),E=_.length;if(!e[O]){var k,S,M;if(y){if(k=(0,ft.gF)(_,y,d),"category"===d&&h){var j=(0,T.bv)(k);b&&j?(S=k,k=v()(0,E)):b||(k=(0,ft.ko)(n.props.domain,k,n).reduce((function(t,e){return t.indexOf(e)>=0?t:[].concat(he(t),[e])}),[]))}else if("category"===d)k=b?k.filter((function(t){return""!==t&&!m()(t)})):(0,ft.ko)(n.props.domain,k,n).reduce((function(t,e){return t.indexOf(e)>=0||""===e||m()(e)?t:[].concat(he(t),[e])}),[]);else if("number"===d){var A=(0,ft.ZI)(_,r.filter((function(t){return t.props[i]===O&&!t.props.hide})),y,o);A&&(k=A)}!h||"number"!==d&&"auto"===x||(M=(0,ft.gF)(_,y,"category"))}else k=h?v()(0,E):a&&a[O]&&a[O].hasStack&&"number"===d?"expand"===f?[0,1]:(0,ft.EB)(a[O].stackGroups,u,c):(0,ft.s6)(_,r.filter((function(t){return t.props[i]===O&&!t.props.hide})),d,!0);if("number"===d)k=Kt(l,k,O,o,w),n.props.domain&&(k=(0,ft.LG)(n.props.domain,k,g));else if("category"===d&&n.props.domain){var P=n.props.domain;k.every((function(t){return P.indexOf(t)>=0}))&&(k=P)}return ve(ve({},e),{},ge({},O,ve(ve({},n.props),{},{axisType:o,domain:k,categoricalDomain:M,duplicateDomain:S,originalDomain:n.props.domain,isCategorical:h,layout:s})))}return e}),{})}(t,{axes:f,graphicalItems:i,axisType:r,axisIdKey:l,stackGroups:a,dataStartIndex:u,dataEndIndex:c}):i&&i.length&&(h=function(t,e){var n=e.graphicalItems,r=e.Axis,o=e.axisType,i=e.axisIdKey,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.layout,l=t.children,f=_e(t.data,{graphicalItems:n,dataStartIndex:u,dataEndIndex:c}),h=f.length,p=(0,ft.NA)(s,o),y=-1;return n.reduce((function(t,e){var g,m=e.props[i];return t[m]?t:(y++,p?g=v()(0,h):a&&a[m]&&a[m].hasStack?(g=(0,ft.EB)(a[m].stackGroups,u,c),g=Kt(l,g,m,o)):(g=(0,ft.LG)(r.defaultProps.domain,(0,ft.s6)(f,n.filter((function(t){return t.props[i]===m&&!t.props.hide})),"number"),r.defaultProps.allowDataOverflow),g=Kt(l,g,m,o)),ve(ve({},t),{},ge({},m,ve(ve({axisType:o},r.defaultProps),{},{hide:!0,orientation:d()(me,"".concat(o,".").concat(y%2),null),domain:g,originalDomain:r.defaultProps.domain,isCategorical:p,layout:s}))))}),{})}(t,{Axis:o,graphicalItems:i,axisType:r,axisIdKey:l,stackGroups:a,dataStartIndex:u,dataEndIndex:c})),h},Me=function(t){var e=t.children,n=t.defaultShowTooltip,r=(0,H.sP)(e,jt.displayName);return{chartX:0,chartY:0,dataStartIndex:r&&r.props&&r.props.startIndex||0,dataEndIndex:r&&r.props&&r.props.endIndex||t.data&&t.data.length-1||0,activeTooltipIndex:-1,isTooltipActive:!m()(n)&&n}},je=function(t){return"horizontal"===t?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:"vertical"===t?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:"centric"===t?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Ae=function(t){var e,n,r=t.chartName,i=t.GraphicalChild,u=t.defaultTooltipEventType,s=void 0===u?"axis":u,f=t.validateTooltipEventTypes,p=void 0===f?["axis"]:f,y=t.axisComponents,v=t.legendContent,g=t.formatAxisMap,b=t.defaultProps,w=function(t,e){var n=e.graphicalItems,r=e.stackGroups,o=e.offset,i=e.updateId,a=e.dataStartIndex,u=e.dataEndIndex,c=t.barSize,s=t.layout,l=t.barGap,f=t.barCategoryGap,h=t.maxBarSize,p=je(s),d=p.numericAxisName,v=p.cateAxisName,g=function(t){return!(!t||!t.length)&&t.some((function(t){var e=(0,H.Gf)(t&&t.type);return e&&e.indexOf("Bar")>=0}))}(n),b=g&&(0,ft.pt)({barSize:c,stackGroups:r}),x=[];return n.forEach((function(n,c){var p=_e(t.data,{dataStartIndex:a,dataEndIndex:u},n),g=n.props,w=g.dataKey,O=g.maxBarSize,_=n.props["".concat(d,"Id")],E=n.props["".concat(v,"Id")],k=y.reduce((function(t,r){var o,i=e["".concat(r.axisType,"Map")],a=n.props["".concat(r.axisType,"Id")],u=i&&i[a];return ve(ve({},t),{},(ge(o={},r.axisType,u),ge(o,"".concat(r.axisType,"Ticks"),(0,ft.uY)(u)),o))}),{}),S=k[v],M=k["".concat(v,"Ticks")],j=r&&r[_]&&r[_].hasStack&&(0,ft.O3)(n,r[_].stackGroups),A=(0,H.Gf)(n.type).indexOf("Bar")>=0,P=(0,ft.zT)(S,M),T=[];if(A){var C,I,N=m()(O)?h:O,D=null!==(C=null!==(I=(0,ft.zT)(S,M,!0))&&void 0!==I?I:N)&&void 0!==C?C:0;T=(0,ft.qz)({barGap:l,barCategoryGap:f,bandSize:D!==P?D:P,sizeList:b[E],maxBarSize:N}),D!==P&&(T=T.map((function(t){return ve(ve({},t),{},{position:ve(ve({},t.position),{},{offset:t.position.offset-D/2})})})))}var R,L=n&&n.type&&n.type.getComposedData;L&&x.push({props:ve(ve({},L(ve(ve({},k),{},{displayedData:p,props:t,dataKey:w,item:n,bandSize:P,barPosition:T,offset:o,stackedData:j,layout:s,dataStartIndex:a,dataEndIndex:u}))),{},(R={key:n.key||"item-".concat(c)},ge(R,d,k[d]),ge(R,v,k[v]),ge(R,"animationId",i),R)),childIndex:(0,H.$R)(n,t.children),item:n})})),x},E=function(t,e){var n=t.props,o=t.dataStartIndex,a=t.dataEndIndex,u=t.updateId;if(!(0,H.TT)({props:n}))return null;var c=n.children,s=n.layout,l=n.stackOffset,f=n.data,p=n.reverseStackOrder,v=je(s),m=v.numericAxisName,b=v.cateAxisName,x=(0,H.NN)(c,i),O=(0,ft.wh)(f,x,"".concat(m,"Id"),"".concat(b,"Id"),l,p),_=y.reduce((function(t,e){var r="".concat(e.axisType,"Map");return ve(ve({},t),{},ge({},r,Se(n,ve(ve({},e),{},{graphicalItems:x,stackGroups:e.axisType===m&&O,dataStartIndex:o,dataEndIndex:a}))))}),{}),E=function(t,e){var n=t.props,r=t.graphicalItems,o=t.xAxisMap,i=void 0===o?{}:o,a=t.yAxisMap,u=void 0===a?{}:a,c=n.width,s=n.height,l=n.children,f=n.margin||{},h=(0,H.sP)(l,jt.displayName),p=(0,H.sP)(l,A.D.displayName),y=Object.keys(u).reduce((function(t,e){var n=u[e],r=n.orientation;return n.mirror||n.hide?t:ve(ve({},t),{},ge({},r,t[r]+n.width))}),{left:f.left||0,right:f.right||0}),v=Object.keys(i).reduce((function(t,e){var n=i[e],r=n.orientation;return n.mirror||n.hide?t:ve(ve({},t),{},ge({},r,d()(t,"".concat(r))+n.height))}),{top:f.top||0,bottom:f.bottom||0}),g=ve(ve({},v),y),m=g.bottom;return h&&(g.bottom+=h.props.height||jt.defaultProps.height),p&&e&&(g=(0,ft.By)(g,r,n,e)),ve(ve({brushBottom:m},g),{},{width:c-g.left-g.right,height:s-g.top-g.bottom})}(ve(ve({},_),{},{props:n,graphicalItems:x}),null===e||void 0===e?void 0:e.legendBBox);Object.keys(_).forEach((function(t){_[t]=g(n,_[t],E,t.replace("Map",""),r)}));var k=function(t){var e=(0,T.Kt)(t),n=(0,ft.uY)(e,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:h()(n,(function(t){return t.coordinate})),tooltipAxis:e,tooltipAxisBandSize:(0,ft.zT)(e,n)}}(_["".concat(b,"Map")]),S=w(n,ve(ve({},_),{},{dataStartIndex:o,dataEndIndex:a,updateId:u,graphicalItems:x,stackGroups:O,offset:E}));return ve(ve({formattedGraphicalItems:S,graphicalItems:x,offset:E,stackGroups:O},k),_)};return n=e=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ue(t,e)}(f,t);var e,n,i,u=ce(f);function f(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,f),(e=u.call(this,t)).uniqueChartId=void 0,e.clipPathId=void 0,e.legendInstance=void 0,e.deferId=void 0,e.container=void 0,e.clearDeferId=function(){!m()(e.deferId)&&Oe&&Oe(e.deferId),e.deferId=null},e.handleLegendBBoxUpdate=function(t){if(t){var n=e.state,r=n.dataStartIndex,o=n.dataEndIndex,i=n.updateId;e.setState(ve({legendBBox:t},E({props:e.props,dataStartIndex:r,dataEndIndex:o,updateId:i},ve(ve({},e.state),{},{legendBBox:t}))))}},e.handleReceiveSyncEvent=function(t,n,r){e.props.syncId===t&&n!==e.uniqueChartId&&(e.clearDeferId(),e.deferId=we&&we(e.applySyncEvent.bind(le(e),r)))},e.handleBrushChange=function(t){var n=t.startIndex,r=t.endIndex;if(n!==e.state.dataStartIndex||r!==e.state.dataEndIndex){var o=e.state.updateId;e.setState((function(){return ve({dataStartIndex:n,dataEndIndex:r},E({props:e.props,dataStartIndex:n,dataEndIndex:r,updateId:o},e.state))})),e.triggerSyncEvent({dataStartIndex:n,dataEndIndex:r})}},e.handleMouseEnter=function(t){var n=e.props.onMouseEnter,r=e.getMouseInfo(t);if(r){var o=ve(ve({},r),{},{isTooltipActive:!0});e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)}},e.triggeredAfterMouseMove=function(t){var n=e.props.onMouseMove,r=e.getMouseInfo(t),o=r?ve(ve({},r),{},{isTooltipActive:!0}):{isTooltipActive:!1};e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)},e.handleItemMouseEnter=function(t){e.setState((function(){return{isTooltipActive:!0,activeItem:t,activePayload:t.tooltipPayload,activeCoordinate:t.tooltipPosition||{x:t.cx,y:t.cy}}}))},e.handleItemMouseLeave=function(){e.setState((function(){return{isTooltipActive:!1}}))},e.handleMouseMove=function(t){t&&c()(t.persist)&&t.persist(),e.triggeredAfterMouseMove(t)},e.handleMouseLeave=function(t){var n=e.props.onMouseLeave,r={isTooltipActive:!1};e.setState(r),e.triggerSyncEvent(r),c()(n)&&n(r,t),e.cancelThrottledTriggerAfterMouseMove()},e.handleOuterEvent=function(t){var n=(0,H.Bh)(t),r=d()(e.props,"".concat(n));n&&c()(r)&&r(/.*touch.*/i.test(n)?e.getMouseInfo(t.changedTouches[0]):e.getMouseInfo(t),t)},e.handleClick=function(t){var n=e.props.onClick,r=e.getMouseInfo(t);if(r){var o=ve(ve({},r),{},{isTooltipActive:!0});e.setState(o),e.triggerSyncEvent(o),c()(n)&&n(o,t)}},e.handleMouseDown=function(t){var n=e.props.onMouseDown;c()(n)&&n(e.getMouseInfo(t),t)},e.handleMouseUp=function(t){var n=e.props.onMouseUp;c()(n)&&n(e.getMouseInfo(t),t)},e.handleTouchMove=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseMove(t.changedTouches[0])},e.handleTouchStart=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseDown(t.changedTouches[0])},e.handleTouchEnd=function(t){null!=t.changedTouches&&t.changedTouches.length>0&&e.handleMouseUp(t.changedTouches[0])},e.verticalCoordinatesGenerator=function(t){var e=t.xAxis,n=t.width,r=t.height,o=t.offset;return(0,ft.Rf)(st.getTicks(ve(ve(ve({},st.defaultProps),e),{},{ticks:(0,ft.uY)(e,!0),viewBox:{x:0,y:0,width:n,height:r}})),o.left,o.left+o.width)},e.horizontalCoordinatesGenerator=function(t){var e=t.yAxis,n=t.width,r=t.height,o=t.offset;return(0,ft.Rf)(st.getTicks(ve(ve(ve({},st.defaultProps),e),{},{ticks:(0,ft.uY)(e,!0),viewBox:{x:0,y:0,width:n,height:r}})),o.top,o.top+o.height)},e.axesTicksGenerator=function(t){return(0,ft.uY)(t,!0)},e.renderCursor=function(t){var n=e.state,o=n.isTooltipActive,i=n.activeCoordinate,a=n.activePayload,u=n.offset,c=n.activeTooltipIndex,s=e.getTooltipEventType();if(!t||!t.props.cursor||!o||!i||"ScatterChart"!==r&&"axis"!==s)return null;var l,f=e.props.layout,h=P.H;if("ScatterChart"===r)l=i,h=z;else if("BarChart"===r)l=e.getCursorRectangle(),h=q.A;else if("radial"===f){var p=e.getCursorPoints(),d=p.cx,y=p.cy,v=p.radius;l={cx:d,cy:y,startAngle:p.startAngle,endAngle:p.endAngle,innerRadius:v,outerRadius:v},h=V.L}else l={points:e.getCursorPoints()},h=P.H;var g=t.key||"_recharts-cursor",m=ve(ve(ve(ve({stroke:"#ccc",pointerEvents:"none"},u),l),(0,C.L6)(t.props.cursor)),{},{payload:a,payloadIndex:c,key:g,className:"recharts-tooltip-cursor"});return(0,_.isValidElement)(t.props.cursor)?(0,_.cloneElement)(t.props.cursor,m):(0,_.createElement)(h,m)},e.renderPolarAxis=function(t,n,r){var o=d()(t,"type.axisType"),i=d()(e.state,"".concat(o,"Map"))[t.props["".concat(o,"Id")]];return(0,_.cloneElement)(t,ve(ve({},i),{},{className:o,key:t.key||"".concat(n,"-").concat(r),ticks:(0,ft.uY)(i,!0)}))},e.renderXAxis=function(t,n,r){var o=e.state.xAxisMap[t.props.xAxisId];return e.renderAxis(o,t,n,r)},e.renderYAxis=function(t,n,r){var o=e.state.yAxisMap[t.props.yAxisId];return e.renderAxis(o,t,n,r)},e.renderGrid=function(t){var n=e.state,r=n.xAxisMap,i=n.yAxisMap,u=n.offset,c=e.props,s=c.width,l=c.height,f=(0,T.Kt)(r),h=a()(i,(function(t){return o()(t.domain,xe)}))||(0,T.Kt)(i),p=t.props||{};return(0,_.cloneElement)(t,{key:t.key||"grid",x:(0,T.hj)(p.x)?p.x:u.left,y:(0,T.hj)(p.y)?p.y:u.top,width:(0,T.hj)(p.width)?p.width:u.width,height:(0,T.hj)(p.height)?p.height:u.height,xAxis:f,yAxis:h,offset:u,chartWidth:s,chartHeight:l,verticalCoordinatesGenerator:p.verticalCoordinatesGenerator||e.verticalCoordinatesGenerator,horizontalCoordinatesGenerator:p.horizontalCoordinatesGenerator||e.horizontalCoordinatesGenerator})},e.renderPolarGrid=function(t){var n=t.props,r=n.radialLines,o=n.polarAngles,i=n.polarRadius,a=e.state,u=a.radiusAxisMap,c=a.angleAxisMap,s=(0,T.Kt)(u),l=(0,T.Kt)(c),f=l.cx,h=l.cy,p=l.innerRadius,d=l.outerRadius;return(0,_.cloneElement)(t,{polarAngles:O()(o)?o:(0,ft.uY)(l,!0).map((function(t){return t.coordinate})),polarRadius:O()(i)?i:(0,ft.uY)(s,!0).map((function(t){return t.coordinate})),cx:f,cy:h,innerRadius:p,outerRadius:d,key:t.key||"polar-grid",radialLines:r})},e.renderLegend=function(){var t=e.state.formattedGraphicalItems,n=e.props,r=n.children,o=n.width,i=n.height,a=e.props.margin||{},u=o-(a.left||0)-(a.right||0),c=(0,ft.zp)({children:r,formattedGraphicalItems:t,legendWidth:u,legendContent:v});if(!c)return null;var s=c.item,l=ie(c,["item"]);return(0,_.cloneElement)(s,ve(ve({},l),{},{chartWidth:o,chartHeight:i,margin:a,ref:function(t){e.legendInstance=t},onBBoxUpdate:e.handleLegendBBoxUpdate}))},e.renderTooltip=function(){var t=e.props.children,n=(0,H.sP)(t,j.u.displayName);if(!n)return null;var r=e.state,o=r.isTooltipActive,i=r.activeCoordinate,a=r.activePayload,u=r.activeLabel,c=r.offset;return(0,_.cloneElement)(n,{viewBox:ve(ve({},c),{},{x:c.left,y:c.top}),active:o,label:u,payload:o?a:[],coordinate:i})},e.renderBrush=function(t){var n=e.props,r=n.margin,o=n.data,i=e.state,a=i.offset,u=i.dataStartIndex,c=i.dataEndIndex,s=i.updateId;return(0,_.cloneElement)(t,{key:t.key||"_recharts-brush",onChange:(0,ft.DO)(e.handleBrushChange,null,t.props.onChange),data:o,x:(0,T.hj)(t.props.x)?t.props.x:a.left,y:(0,T.hj)(t.props.y)?t.props.y:a.top+a.height+a.brushBottom-(r.bottom||0),width:(0,T.hj)(t.props.width)?t.props.width:a.width,startIndex:u,endIndex:c,updateId:"brush-".concat(s)})},e.renderReferenceElement=function(t,n,r){if(!t)return null;var o=le(e).clipPathId,i=e.state,a=i.xAxisMap,u=i.yAxisMap,c=i.offset,s=t.props,l=s.xAxisId,f=s.yAxisId;return(0,_.cloneElement)(t,{key:t.key||"".concat(n,"-").concat(r),xAxis:a[l],yAxis:u[f],viewBox:{x:c.left,y:c.top,width:c.width,height:c.height},clipPathId:o})},e.renderActivePoints=function(t){var e=t.item,n=t.activePoint,r=t.basePoint,o=t.childIndex,i=t.isRange,a=[],u=e.props.key,c=e.item.props,s=c.activeDot,l=ve(ve({index:o,dataKey:c.dataKey,cx:n.x,cy:n.y,r:4,fill:(0,ft.fk)(e.item),strokeWidth:2,stroke:"#fff",payload:n.payload,value:n.value,key:"".concat(u,"-activePoint-").concat(o)},(0,C.L6)(s)),(0,C.Ym)(s));return a.push(f.renderActiveDot(s,l)),r?a.push(f.renderActiveDot(s,ve(ve({},l),{},{cx:r.x,cy:r.y,key:"".concat(u,"-basePoint-").concat(o)}))):i&&a.push(null),a},e.renderGraphicChild=function(t,n,r){var o=e.filterFormatItem(t,n,r);if(!o)return null;var i=e.getTooltipEventType(),a=e.state,u=a.isTooltipActive,c=a.tooltipAxis,s=a.activeTooltipIndex,l=a.activeLabel,f=e.props.children,h=(0,H.sP)(f,j.u.displayName),p=o.props,d=p.points,y=p.isRange,v=p.baseLine,g=o.item.props,b=g.activeDot,x=!g.hide&&u&&h&&b&&s>=0,w={};"axis"!==i&&h&&"click"===h.props.trigger?w={onClick:(0,ft.DO)(e.handleItemMouseEnter,null,t.props.onCLick)}:"axis"!==i&&(w={onMouseLeave:(0,ft.DO)(e.handleItemMouseLeave,null,t.props.onMouseLeave),onMouseEnter:(0,ft.DO)(e.handleItemMouseEnter,null,t.props.onMouseEnter)});var O=(0,_.cloneElement)(t,ve(ve({},o.props),w));if(x){var E,k;if(c.dataKey&&!c.allowDuplicatedCategory){var S="function"===typeof c.dataKey?function(t){return"function"===typeof c.dataKey?c.dataKey(t.payload):null}:"payload.".concat(c.dataKey.toString());E=(0,T.Ap)(d,S,l),k=y&&v&&(0,T.Ap)(v,S,l)}else E=d[s],k=y&&v&&v[s];if(!m()(E))return[O].concat(he(e.renderActivePoints({item:o,activePoint:E,basePoint:k,childIndex:s,isRange:y})))}return y?[O,null,null]:[O,null]},e.renderCustomized=function(t,n,r){return(0,_.cloneElement)(t,ve(ve({key:"recharts-customized-".concat(r)},e.props),e.state))},e.uniqueChartId=m()(t.id)?(0,T.EL)("recharts"):t.id,e.clipPathId="".concat(e.uniqueChartId,"-clip"),t.throttleDelay&&(e.triggeredAfterMouseMove=l()(e.triggeredAfterMouseMove,t.throttleDelay)),e.state={},e}return e=f,(n=[{key:"componentDidMount",value:function(){m()(this.props.syncId)||this.addListener()}},{key:"componentDidUpdate",value:function(t){m()(t.syncId)&&!m()(this.props.syncId)&&this.addListener(),!m()(t.syncId)&&m()(this.props.syncId)&&this.removeListener()}},{key:"componentWillUnmount",value:function(){this.clearDeferId(),m()(this.props.syncId)||this.removeListener(),this.cancelThrottledTriggerAfterMouseMove()}},{key:"cancelThrottledTriggerAfterMouseMove",value:function(){"function"===typeof this.triggeredAfterMouseMove.cancel&&this.triggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var t=(0,H.sP)(this.props.children,j.u.displayName);if(t&&x()(t.props.shared)){var e=t.props.shared?"axis":"item";return p.indexOf(e)>=0?e:s}return s}},{key:"getMouseInfo",value:function(t){if(!this.container)return null;var e=(0,W.os)(this.container),n=(0,W.IR)(t,e),r=this.inRange(n.chartX,n.chartY);if(!r)return null;var o=this.state,i=o.xAxisMap,a=o.yAxisMap;if("axis"!==this.getTooltipEventType()&&i&&a){var u=(0,T.Kt)(i).scale,c=(0,T.Kt)(a).scale,s=u&&u.invert?u.invert(n.chartX):null,l=c&&c.invert?c.invert(n.chartY):null;return ve(ve({},n),{},{xValue:s,yValue:l})}var f=ke(this.state,this.props.data,this.props.layout,r);return f?ve(ve({},n),f):null}},{key:"getCursorRectangle",value:function(){var t=this.props.layout,e=this.state,n=e.activeCoordinate,r=e.offset,o=e.tooltipAxisBandSize,i=o/2;return{stroke:"none",fill:"#ccc",x:"horizontal"===t?n.x-i:r.left+.5,y:"horizontal"===t?r.top+.5:n.y-i,width:"horizontal"===t?o:r.width-1,height:"horizontal"===t?r.height-1:o}}},{key:"getCursorPoints",value:function(){var t,e,n,r,o=this.props.layout,i=this.state,a=i.activeCoordinate,u=i.offset;if("horizontal"===o)n=t=a.x,e=u.top,r=u.top+u.height;else if("vertical"===o)r=e=a.y,t=u.left,n=u.left+u.width;else if(!m()(a.cx)||!m()(a.cy)){if("centric"!==o){var c=a.cx,s=a.cy,l=a.radius,f=a.startAngle,h=a.endAngle;return{points:[(0,Jt.op)(c,s,l,f),(0,Jt.op)(c,s,l,h)],cx:c,cy:s,radius:l,startAngle:f,endAngle:h}}var p=a.cx,d=a.cy,y=a.innerRadius,v=a.outerRadius,g=a.angle,b=(0,Jt.op)(p,d,y,g),x=(0,Jt.op)(p,d,v,g);t=b.x,e=b.y,n=x.x,r=x.y}return[{x:t,y:e},{x:n,y:r}]}},{key:"inRange",value:function(t,e){var n=this.props.layout;if("horizontal"===n||"vertical"===n){var r=this.state.offset;return t>=r.left&&t<=r.left+r.width&&e>=r.top&&e<=r.top+r.height?{x:t,y:e}:null}var o=this.state,i=o.angleAxisMap,a=o.radiusAxisMap;if(i&&a){var u=(0,T.Kt)(i);return(0,Jt.z3)({x:t,y:e},u)}return null}},{key:"parseEventsOfWrapper",value:function(){var t=this.props.children,e=this.getTooltipEventType(),n=(0,H.sP)(t,j.u.displayName),r={};return n&&"axis"===e&&(r="click"===n.props.trigger?{onClick:this.handleClick}:{onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd}),ve(ve({},(0,C.Ym)(this.props,this.handleOuterEvent)),r)}},{key:"addListener",value:function(){te.on(ee,this.handleReceiveSyncEvent),te.setMaxListeners&&te._maxListeners&&te.setMaxListeners(te._maxListeners+1)}},{key:"removeListener",value:function(){te.removeListener(ee,this.handleReceiveSyncEvent),te.setMaxListeners&&te._maxListeners&&te.setMaxListeners(te._maxListeners-1)}},{key:"triggerSyncEvent",value:function(t){var e=this.props.syncId;m()(e)||te.emit(ee,e,this.uniqueChartId,t)}},{key:"applySyncEvent",value:function(t){var e=this.props,n=e.layout,r=e.syncMethod,o=this.state.updateId,i=t.dataStartIndex,a=t.dataEndIndex;if(m()(t.dataStartIndex)&&m()(t.dataEndIndex))if(m()(t.activeTooltipIndex))this.setState(t);else{var u=t.chartX,c=t.chartY,s=t.activeTooltipIndex,l=this.state,f=l.offset,h=l.tooltipTicks;if(!f)return;if("function"===typeof r)s=r(h,t);else if("value"===r){s=-1;for(var p=0;pt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1;"insideStart"===i?(r=b+k*u,o=w):"insideEnd"===i?(r=x-k*u,o=!w):"end"===i&&(r=x+k*u,o=w),o=E<=0?o:!o;var S=(0,y.op)(p,v,_,r),M=(0,y.op)(p,v,_,r+359*(o?1:-1)),j="M".concat(S.x,",").concat(S.y,"\n A").concat(_,",").concat(_,",0,1,").concat(o?0:1,",\n ").concat(M.x,",").concat(M.y),A=c()(t.id)?(0,d.EL)("recharts-radial-line-"):t.id;return s.createElement("text",O({},n,{dominantBaseline:"central",className:f()("recharts-radial-bar-label",l)}),s.createElement("defs",null,s.createElement("path",{id:A,d:j})),s.createElement("textPath",{xlinkHref:"#".concat(A)},e))};function E(t){var e,n=t.viewBox,r=t.position,i=t.value,u=t.children,l=t.content,p=t.className,g=void 0===p?"":p,m=t.textBreakAll;if(!n||c()(i)&&c()(u)&&!(0,s.isValidElement)(l)&&!a()(l))return null;if((0,s.isValidElement)(l))return(0,s.cloneElement)(l,t);if(a()(l)){if(e=(0,s.createElement)(l,t),(0,s.isValidElement)(e))return e}else e=function(t){var e=t.value,n=t.formatter,r=c()(t.children)?e:t.children;return a()(n)?n(r):r}(t);var b=function(t){return(0,d.hj)(t.cx)}(n),w=(0,v.L6)(t,!0);if(b&&("insideStart"===r||"insideEnd"===r||"end"===r))return _(t,e,w);var E=b?function(t){var e=t.viewBox,n=t.offset,r=t.position,o=e,i=o.cx,a=o.cy,u=o.innerRadius,c=o.outerRadius,s=(o.startAngle+o.endAngle)/2;if("outside"===r){var l=(0,y.op)(i,a,c+n,s),f=l.x;return{x:f,y:l.y,textAnchor:f>=i?"start":"end",verticalAnchor:"middle"}}if("center"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"middle"};if("centerTop"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"start"};if("centerBottom"===r)return{x:i,y:a,textAnchor:"middle",verticalAnchor:"end"};var h=(u+c)/2,p=(0,y.op)(i,a,h,s);return{x:p.x,y:p.y,textAnchor:"middle",verticalAnchor:"middle"}}(t):function(t){var e=t.viewBox,n=t.parentViewBox,r=t.offset,i=t.position,a=e,u=a.x,c=a.y,s=a.width,l=a.height,f=l>=0?1:-1,h=f*r,p=f>0?"end":"start",y=f>0?"start":"end",v=s>=0?1:-1,g=v*r,m=v>0?"end":"start",b=v>0?"start":"end";if("top"===i)return x(x({},{x:u+s/2,y:c-f*r,textAnchor:"middle",verticalAnchor:p}),n?{height:Math.max(c-n.y,0),width:s}:{});if("bottom"===i)return x(x({},{x:u+s/2,y:c+l+h,textAnchor:"middle",verticalAnchor:y}),n?{height:Math.max(n.y+n.height-(c+l),0),width:s}:{});if("left"===i){var w={x:u-g,y:c+l/2,textAnchor:m,verticalAnchor:"middle"};return x(x({},w),n?{width:Math.max(w.x-n.x,0),height:l}:{})}if("right"===i){var O={x:u+s+g,y:c+l/2,textAnchor:b,verticalAnchor:"middle"};return x(x({},O),n?{width:Math.max(n.x+n.width-O.x,0),height:l}:{})}var _=n?{width:s,height:l}:{};return"insideLeft"===i?x({x:u+g,y:c+l/2,textAnchor:b,verticalAnchor:"middle"},_):"insideRight"===i?x({x:u+s-g,y:c+l/2,textAnchor:m,verticalAnchor:"middle"},_):"insideTop"===i?x({x:u+s/2,y:c+h,textAnchor:"middle",verticalAnchor:y},_):"insideBottom"===i?x({x:u+s/2,y:c+l-h,textAnchor:"middle",verticalAnchor:p},_):"insideTopLeft"===i?x({x:u+g,y:c+h,textAnchor:b,verticalAnchor:y},_):"insideTopRight"===i?x({x:u+s-g,y:c+h,textAnchor:m,verticalAnchor:y},_):"insideBottomLeft"===i?x({x:u+g,y:c+l-h,textAnchor:b,verticalAnchor:p},_):"insideBottomRight"===i?x({x:u+s-g,y:c+l-h,textAnchor:m,verticalAnchor:p},_):o()(i)&&((0,d.hj)(i.x)||(0,d.hU)(i.x))&&((0,d.hj)(i.y)||(0,d.hU)(i.y))?x({x:u+(0,d.h1)(i.x,s),y:c+(0,d.h1)(i.y,l),textAnchor:"end",verticalAnchor:"end"},_):x({x:u+s/2,y:c+l/2,textAnchor:"middle",verticalAnchor:"middle"},_)}(t);return s.createElement(h.x,O({className:f()("recharts-label",g)},w,E,{breakAll:m}),e)}E.displayName="Label",E.defaultProps={offset:5};var k=function(t){var e=t.cx,n=t.cy,r=t.angle,o=t.startAngle,i=t.endAngle,a=t.r,u=t.radius,c=t.innerRadius,s=t.outerRadius,l=t.x,f=t.y,h=t.top,p=t.left,y=t.width,v=t.height,g=t.clockWise,m=t.labelViewBox;if(m)return m;if((0,d.hj)(y)&&(0,d.hj)(v)){if((0,d.hj)(l)&&(0,d.hj)(f))return{x:l,y:f,width:y,height:v};if((0,d.hj)(h)&&(0,d.hj)(p))return{x:h,y:p,width:y,height:v}}return(0,d.hj)(l)&&(0,d.hj)(f)?{x:l,y:f,width:0,height:0}:(0,d.hj)(e)&&(0,d.hj)(n)?{cx:e,cy:n,startAngle:o||r||0,endAngle:i||r||0,innerRadius:c||0,outerRadius:s||u||a||0,clockWise:g}:t.viewBox?t.viewBox:{}},S=function(t,e){return t?!0===t?s.createElement(E,{key:"label-implicit",viewBox:e}):(0,d.P2)(t)?s.createElement(E,{key:"label-implicit",viewBox:e,value:t}):(0,s.isValidElement)(t)?t.type===E?(0,s.cloneElement)(t,{key:"label-implicit",viewBox:e}):s.createElement(E,{key:"label-implicit",content:t,viewBox:e}):a()(t)?s.createElement(E,{key:"label-implicit",content:t,viewBox:e}):o()(t)?s.createElement(E,O({viewBox:e},t,{key:"label-implicit"})):null:null};E.parseViewBox=k,E.renderCallByParent=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||!t.children&&n&&!t.label)return null;var r=t.children,o=k(t),i=(0,p.NN)(r,E.displayName).map((function(t,n){return(0,s.cloneElement)(t,{viewBox:e||o,key:"label-".concat(n)})}));if(!n)return i;var a=S(t.label,e||o);return[a].concat(g(i))}},87970:function(t,e,n){"use strict";n.d(e,{e:function(){return M}});var r=n(8092),o=n.n(r),i=n(74786),a=n.n(i),u=n(42854),c=n.n(u),s=n(15727),l=n.n(s),f=n(93629),h=n.n(f),p=n(72791),d=n(17684),y=n(46044),v=n(77612),g=n(56926),m=n(57241);function b(t){return function(t){if(Array.isArray(t))return x(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return x(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return x(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var S={valueAccessor:function(t){return h()(t.value)?l()(t.value):t.value}};function M(t){var e=t.data,n=t.valueAccessor,r=t.dataKey,o=t.clockWise,i=t.id,a=t.textBreakAll,u=k(t,["data","valueAccessor","dataKey","clockWise","id","textBreakAll"]);return e&&e.length?p.createElement(y.m,{className:"recharts-label-list"},e.map((function(t,e){var s=c()(r)?n(t,e):(0,g.F$)(t&&t.payload,r),l=c()(i)?{}:{id:"".concat(i,"-").concat(e)};return p.createElement(d._,w({},(0,m.L6)(t,!0),u,l,{parentViewBox:t.parentViewBox,index:e,value:s,textBreakAll:a,viewBox:d._.parseViewBox(c()(o)?t:_(_({},t),{},{clockWise:o})),key:"label-".concat(e)}))}))):null}function j(t,e){return t?!0===t?p.createElement(M,{key:"labelList-implicit",data:e}):p.isValidElement(t)||a()(t)?p.createElement(M,{key:"labelList-implicit",data:e,content:t}):o()(t)?p.createElement(M,w({data:e},t,{key:"labelList-implicit"})):null:null}M.displayName="LabelList",M.renderCallByParent=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||!t.children&&n&&!t.label)return null;var r=t.children,o=(0,v.NN)(r,M.displayName).map((function(t,n){return(0,p.cloneElement)(t,{data:e,key:"labelList-".concat(n)})}));if(!n)return o;var i=j(t.label,e);return[i].concat(b(o))},M.defaultProps=S},24296:function(t,e,n){"use strict";n.d(e,{D:function(){return mt}});var r=n(74786),o=n.n(r),i=n(66339),a=n.n(i),u=n(72791),c=n(81694),s=n.n(c),l=n(48933),f=n(52085),h=n.n(f),p=(Math.abs,Math.atan2,Math.cos,Math.max,Math.min,Math.sin,Math.sqrt,Math.PI),d=2*p;var y={draw:function(t,e){var n=Math.sqrt(e/p);t.moveTo(n,0),t.arc(0,0,n,0,d)}},v={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},g=Math.sqrt(1/3),m=2*g,b={draw:function(t,e){var n=Math.sqrt(e/m),r=n*g;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},x={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},w=Math.sin(p/10)/Math.sin(7*p/10),O=Math.sin(d/10)*w,_=-Math.cos(d/10)*w,E={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),r=O*n,o=_*n;t.moveTo(0,-n),t.lineTo(r,o);for(var i=1;i<5;++i){var a=d*i/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*n,-u*n),t.lineTo(u*r-c*o,c*r+u*o)}t.closePath()}},k=Math.sqrt(3),S={draw:function(t,e){var n=-Math.sqrt(e/(3*k));t.moveTo(0,2*n),t.lineTo(-k*n,-n),t.lineTo(k*n,-n),t.closePath()}},M=-.5,j=Math.sqrt(3)/2,A=1/Math.sqrt(12),P=3*(A/2+1),T={draw:function(t,e){var n=Math.sqrt(e/P),r=n/2,o=n*A,i=r,a=n*A+n,u=-i,c=a;t.moveTo(r,o),t.lineTo(i,a),t.lineTo(u,c),t.lineTo(M*r-j*o,j*r+M*o),t.lineTo(M*i-j*a,j*i+M*a),t.lineTo(M*u-j*c,j*u+M*c),t.lineTo(M*r+j*o,M*o-j*r),t.lineTo(M*i+j*a,M*a-j*i),t.lineTo(M*u+j*c,M*c-j*u),t.closePath()}},C=n(73339),I=n(76817);var N=n(57241);function D(t){return D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},D(t)}function R(){return R=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function vt(t){return t.value}function gt(t,e){return!0===t?a()(e,vt):o()(t)?a()(e,t):e}var mt=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ft(t,e)}(a,t);var e,n,r,i=ht(a);function a(){var t;st(this,a);for(var e=arguments.length,n=new Array(e),r=0;r=0&&n>=0?{width:e,height:n}:null}},{key:"getDefaultPosition",value:function(t){var e,n,r=this.props,o=r.layout,i=r.align,a=r.verticalAlign,u=r.margin,c=r.chartWidth,s=r.chartHeight;return t&&(void 0!==t.left&&null!==t.left||void 0!==t.right&&null!==t.right)||(e="center"===i&&"vertical"===o?{left:((c||0)-(this.getBBoxSnapshot()||{width:0}).width)/2}:"right"===i?{right:u&&u.right||0}:{left:u&&u.left||0}),t&&(void 0!==t.top&&null!==t.top||void 0!==t.bottom&&null!==t.bottom)||(n="middle"===a?{top:((s||0)-(this.getBBoxSnapshot()||{height:0}).height)/2}:"bottom"===a?{bottom:u&&u.bottom||0}:{top:u&&u.top||0}),ut(ut({},e),n)}},{key:"updateBBox",value:function(){var t=this.state,e=t.boxWidth,n=t.boxHeight,r=this.props.onBBoxUpdate;if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var o=this.wrapperNode.getBoundingClientRect();(Math.abs(o.width-e)>1||Math.abs(o.height-n)>1)&&this.setState({boxWidth:o.width,boxHeight:o.height},(function(){r&&r(o)}))}else-1===e&&-1===n||this.setState({boxWidth:-1,boxHeight:-1},(function(){r&&r(null)}))}},{key:"render",value:function(){var t=this,e=this.props,n=e.content,r=e.width,i=e.height,a=e.wrapperStyle,c=e.payloadUniqBy,s=e.payload,l=ut(ut({position:"absolute",width:r||"auto",height:i||"auto"},this.getDefaultPosition(a)),a);return u.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(e){t.wrapperNode=e}},function(t,e){if(u.isValidElement(t))return u.cloneElement(t,e);if(o()(t))return u.createElement(t,e);e.ref;var n=yt(e,["ref"]);return u.createElement(rt,n)}(n,ut(ut({},this.props),{},{payload:gt(c,s)})))}}])&<(e.prototype,n),r&<(e,r),a}(u.PureComponent);mt.displayName="Legend",mt.defaultProps={iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"}},77941:function(t,e,n){"use strict";n.d(e,{x:function(){return C}});var r=n(42854),o=n.n(r),i=n(72791),a=n(72692),u=n.n(a),c=n(81694),s=n.n(c),l=n(70587),f=n(36768),h=n(57241),p=n(93058);function d(t){return d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function y(){return y=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function m(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:[]).reduce((function(t,e){var i=e.word,a=e.width,u=t[t.length-1];if(u&&(null==r||o||u.width+a+nt.maxLines||function(t){return t.reduce((function(t,e){return t.width>e.width?t:e}))}(i).width>r;return[c,i]},h=0,p=a.length-1,d=0;h<=p&&d<=a.length-1;){var y=Math.floor((h+p)/2),v=_(f(y-1),2),g=v[0],m=v[1],b=_(f(y),1)[0];if(g||b||(h=y+1),g&&b&&(p=y-1),!g&&b){s=m;break}d++}return s||c}(t,n.wordsWithComputedWidth,n.spaceWidth,t.width,t.scaleToFit):P(t.children)}return P(t.children)},C=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&b(t,e)}(a,t);var e,n,r,o=x(a);function a(){var t;g(this,a);for(var e=arguments.length,n=new Array(e),r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);nl[n]+o?Math.max(f,l[n]):Math.max(h,l[n])},t}return e=u,(n=[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"updateBBox",value:function(){var t=this.state,e=t.boxWidth,n=t.boxHeight;if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();(Math.abs(r.width-e)>1||Math.abs(r.height-n)>1)&&this.setState({boxWidth:r.width,boxHeight:r.height})}else-1===e&&-1===n||this.setState({boxWidth:-1,boxHeight:-1})}},{key:"render",value:function(){var t,e,n,r=this,i=this.props,u=i.payload,f=i.isAnimationActive,p=i.animationDuration,d=i.animationEasing,y=i.filterNull,v=function(t,e){return!0===t?c()(e,q):a()(t)?c()(e,t):e}(i.payloadUniqBy,y&&u&&u.length?u.filter((function(t){return!o()(t.value)})):u),m=v&&v.length,b=this.props,x=b.content,w=b.viewBox,O=b.coordinate,_=b.position,E=b.active,k=D({pointerEvents:"none",visibility:E&&m?"visible":"hidden",position:"absolute",top:0,left:0},b.wrapperStyle);if(_&&(0,g.hj)(_.x)&&(0,g.hj)(_.y))e=_.x,n=_.y;else{var S=this.state,M=S.boxWidth,j=S.boxHeight;M>0&&j>0&&O?(e=this.getTranslate({key:"x",tooltipDimension:M,viewBoxDimension:w.width}),n=this.getTranslate({key:"y",tooltipDimension:j,viewBoxDimension:w.height})):k.visibility="hidden"}k=D(D({},(0,l.bO)({transform:this.props.useTranslate3d?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")})),k),f&&E&&(k=D(D({},(0,l.bO)({transition:"transform ".concat(p,"ms ").concat(d)})),k));var A=h()(G,(R(t={},"".concat(G,"-right"),(0,g.hj)(e)&&O&&(0,g.hj)(O.x)&&e>=O.x),R(t,"".concat(G,"-left"),(0,g.hj)(e)&&O&&(0,g.hj)(O.x)&&e=O.y),R(t,"".concat(G,"-top"),(0,g.hj)(n)&&O&&(0,g.hj)(O.y)&&n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t){var e=t.children,n=t.className,o=c(t,["children","className"]),s=i()("recharts-layer",n);return r.createElement("g",u({className:s},(0,a.L6)(o,!0)),e)}},48933:function(t,e,n){"use strict";n.d(e,{T:function(){return s}});var r=n(72791),o=n(81694),i=n.n(o),a=n(57241);function u(){return u=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t){var e=t.children,n=t.width,o=t.height,s=t.viewBox,l=t.className,f=t.style,h=c(t,["children","width","height","viewBox","className","style"]),p=s||{width:n,height:o,x:0,y:0},d=i()("recharts-surface",l);return r.createElement("svg",u({},(0,a.L6)(h,!0,!0),{className:d,width:n,height:o,style:f,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height),version:"1.1"}),e)}},57139:function(t,e,n){"use strict";n.d(e,{H:function(){return tt}});var r=n(93629),o=n.n(r),i=n(52085),a=n.n(i),u=n(74786),c=n.n(u),s=n(72791);function l(){}function f(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function h(t){this._context=t}function p(t){this._context=t}function d(t){this._context=t}function y(t){this._context=t}function v(t){this._context=t}function g(t){return new v(t)}function m(t){return t<0?-1:1}function b(t,e,n){var r=t._x1-t._x0,o=e-t._x1,i=(t._y1-t._y0)/(r||o<0&&-0),a=(n-t._y1)/(o||r<0&&-0),u=(i*o+a*r)/(r+o);return(m(i)+m(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(u))||0}function x(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function w(t,e,n){var r=t._x0,o=t._y0,i=t._x1,a=t._y1,u=(i-r)/3;t._context.bezierCurveTo(r+u,o+u*e,i-u,a-u*n,i,a)}function O(t){this._context=t}function _(t){this._context=new E(t)}function E(t){this._context=t}function k(t){this._context=t}function S(t){var e,n,r=t.length-1,o=new Array(r),i=new Array(r),a=new Array(r);for(o[0]=0,i[0]=2,a[0]=t[0]+2*t[1],e=1;e=0;--e)o[e]=(a[e]-o[e+1])/i[e];for(i[r-1]=(t[r]+o[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var j=n(73339),A=n(5803),P=n(76817);function T(t){return t[0]}function C(t){return t[1]}function I(t,e){var n=(0,P.Z)(!0),r=null,o=g,i=null;function a(a){var u,c,s,l=(a=(0,A.Z)(a)).length,f=!1;for(null==r&&(i=o(s=(0,j.Z)())),u=0;u<=l;++u)!(u=l;--f)u.point(v[f],g[f]);u.lineEnd(),u.areaEnd()}y&&(v[s]=+t(h,s,c),g[s]=+e(h,s,c),u.point(r?+r(h,s,c):v[s],n?+n(h,s,c):g[s]))}if(p)return u=null,p+""||null}function s(){return I().defined(o).curve(a).context(i)}return t="function"===typeof t?t:void 0===t?T:(0,P.Z)(+t),e="function"===typeof e?e:void 0===e?(0,P.Z)(0):(0,P.Z)(+e),n="function"===typeof n?n:void 0===n?C:(0,P.Z)(+n),c.x=function(e){return arguments.length?(t="function"===typeof e?e:(0,P.Z)(+e),r=null,c):t},c.x0=function(e){return arguments.length?(t="function"===typeof e?e:(0,P.Z)(+e),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"===typeof t?t:(0,P.Z)(+t),c):r},c.y=function(t){return arguments.length?(e="function"===typeof t?t:(0,P.Z)(+t),n=null,c):e},c.y0=function(t){return arguments.length?(e="function"===typeof t?t:(0,P.Z)(+t),c):e},c.y1=function(t){return arguments.length?(n=null==t?null:"function"===typeof t?t:(0,P.Z)(+t),c):n},c.lineX0=c.lineY0=function(){return s().x(t).y(e)},c.lineY1=function(){return s().x(t).y(n)},c.lineX1=function(){return s().x(r).y(e)},c.defined=function(t){return arguments.length?(o="function"===typeof t?t:(0,P.Z)(!!t),c):o},c.curve=function(t){return arguments.length?(a=t,null!=i&&(u=a(i)),c):a},c.context=function(t){return arguments.length?(null==t?i=u=null:u=a(i=t),c):i},c}var D=n(81694),R=n.n(D),L=n(57241),B=n(70587);function U(t){return U="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function F(){return F=Object.assign||function(t){for(var e=1;e=0?1:-1,c=n>=0?1:-1,s=r>=0&&n>=0||r<0&&n<0?1:0;if(a>0&&o instanceof Array){for(var l=[0,0,0,0],f=0;f<4;f++)l[f]=o[f]>a?a:o[f];i="M".concat(t,",").concat(e+u*l[0]),l[0]>0&&(i+="A ".concat(l[0],",").concat(l[0],",0,0,").concat(s,",").concat(t+c*l[0],",").concat(e)),i+="L ".concat(t+n-c*l[1],",").concat(e),l[1]>0&&(i+="A ".concat(l[1],",").concat(l[1],",0,0,").concat(s,",\n ").concat(t+n,",").concat(e+u*l[1])),i+="L ".concat(t+n,",").concat(e+r-u*l[2]),l[2]>0&&(i+="A ".concat(l[2],",").concat(l[2],",0,0,").concat(s,",\n ").concat(t+n-c*l[2],",").concat(e+r)),i+="L ".concat(t+c*l[3],",").concat(e+r),l[3]>0&&(i+="A ".concat(l[3],",").concat(l[3],",0,0,").concat(s,",\n ").concat(t,",").concat(e+r-u*l[3])),i+="Z"}else if(a>0&&o===+o&&o>0){var h=Math.min(a,o);i="M ".concat(t,",").concat(e+u*h,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+c*h,",").concat(e,"\n L ").concat(t+n-c*h,",").concat(e,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+n,",").concat(e+u*h,"\n L ").concat(t+n,",").concat(e+r-u*h,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t+n-c*h,",").concat(e+r,"\n L ").concat(t+c*h,",").concat(e+r,"\n A ").concat(h,",").concat(h,",0,0,").concat(s,",").concat(t,",").concat(e+r-u*h," Z")}else i="M ".concat(t,",").concat(e," h ").concat(n," v ").concat(r," h ").concat(-n," Z");return i},g=function(t,e){if(!t||!e)return!1;var n=t.x,r=t.y,o=e.x,i=e.y,a=e.width,u=e.height;if(Math.abs(a)>0&&Math.abs(u)>0){var c=Math.min(o,o+a),s=Math.max(o,o+a),l=Math.min(i,i+u),f=Math.max(i,i+u);return n>=c&&n<=s&&r>=l&&r<=f}return!1},m=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(d,t);var e,n,o,c=p(d);function d(){var t;l(this,d);for(var e=arguments.length,n=new Array(e),r=0;r0,from:{width:c,height:l,x:n,y:o},to:{width:c,height:l,x:n,y:o},duration:g,animationEasing:y,isActive:x},(function(e){var n=e.width,o=e.height,i=e.x,c=e.y;return r.createElement(a.ZP,{canBegin:p>0,from:"0px ".concat(-1===p?1:p,"px"),to:"".concat(p,"px 0px"),attributeName:"strokeDasharray",begin:m,duration:g,isActive:b,easing:y},r.createElement("path",s({},(0,u.L6)(t.props,!0),{className:w,d:v(i,c,n,o,f),ref:function(e){t.node=e}})))})):r.createElement("path",s({},(0,u.L6)(this.props,!0),{className:w,d:v(n,o,c,l,f)}))}}])&&f(e.prototype,n),o&&f(e,o),d}(r.PureComponent);m.defaultProps={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"}},96295:function(t,e,n){"use strict";n.d(e,{L:function(){return b}});var r=n(72791),o=n(81694),i=n.n(o),a=n(57241),u=n(24485),c=n(70587);function s(t){return s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(){return l=Object.assign||function(t){for(var e=1;e180),",").concat(+(i>s),",\n ").concat(f.x,",").concat(f.y,"\n ");if(r>0){var p=(0,u.op)(e,n,r,i),d=(0,u.op)(e,n,r,s);h+="L ".concat(d.x,",").concat(d.y,"\n A ").concat(r,",").concat(r,",0,\n ").concat(+(Math.abs(a)>180),",").concat(+(i<=s),",\n ").concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(e,",").concat(n," Z");return h},b=function(t){!function(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(s,t);var e,n,o,u=d(s);function s(){return f(this,s),u.apply(this,arguments)}return e=s,(n=[{key:"render",value:function(){var t=this.props,e=t.cx,n=t.cy,o=t.innerRadius,u=t.outerRadius,s=t.cornerRadius,f=t.forceCornerRadius,h=t.cornerIsExternal,p=t.startAngle,d=t.endAngle,y=t.className;if(u0&&Math.abs(p-d)<360?function(t){var e=t.cx,n=t.cy,r=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,a=t.forceCornerRadius,u=t.cornerIsExternal,s=t.startAngle,l=t.endAngle,f=(0,c.uY)(l-s),h=g({cx:e,cy:n,radius:o,angle:s,sign:f,cornerRadius:i,cornerIsExternal:u}),p=h.circleTangency,d=h.lineTangency,y=h.theta,v=g({cx:e,cy:n,radius:o,angle:l,sign:-f,cornerRadius:i,cornerIsExternal:u}),b=v.circleTangency,x=v.lineTangency,w=v.theta,O=u?Math.abs(s-l):Math.abs(s-l)-y-w;if(O<0)return a?"M ".concat(d.x,",").concat(d.y,"\n a").concat(i,",").concat(i,",0,0,1,").concat(2*i,",0\n a").concat(i,",").concat(i,",0,0,1,").concat(2*-i,",0\n "):m({cx:e,cy:n,innerRadius:r,outerRadius:o,startAngle:s,endAngle:l});var _="M ".concat(d.x,",").concat(d.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,"\n A").concat(o,",").concat(o,",0,").concat(+(O>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(x.x,",").concat(x.y,"\n ");if(r>0){var E=g({cx:e,cy:n,radius:r,angle:s,sign:f,isExternal:!0,cornerRadius:i,cornerIsExternal:u}),k=E.circleTangency,S=E.lineTangency,M=E.theta,j=g({cx:e,cy:n,radius:r,angle:l,sign:-f,isExternal:!0,cornerRadius:i,cornerIsExternal:u}),A=j.circleTangency,P=j.lineTangency,T=j.theta,C=u?Math.abs(s-l):Math.abs(s-l)-M-T;if(C<0&&0===i)return"".concat(_,"L").concat(e,",").concat(n,"Z");_+="L".concat(P.x,",").concat(P.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(A.x,",").concat(A.y,"\n A").concat(r,",").concat(r,",0,").concat(+(C>180),",").concat(+(f>0),",").concat(k.x,",").concat(k.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(S.x,",").concat(S.y,"Z")}else _+="L".concat(e,",").concat(n,"Z");return _}({cx:e,cy:n,innerRadius:o,outerRadius:u,cornerRadius:Math.min(w,x/2),forceCornerRadius:f,cornerIsExternal:h,startAngle:p,endAngle:d}):m({cx:e,cy:n,innerRadius:o,outerRadius:u,startAngle:p,endAngle:d}),r.createElement("path",l({},(0,a.L6)(this.props,!0),{className:b,d:v}))}}])&&h(e.prototype,n),o&&h(e,o),s}(r.PureComponent);b.defaultProps={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1}},93137:function(t,e,n){"use strict";n.d(e,{Ky:function(){return m},O1:function(){return y},_b:function(){return v},t9:function(){return d}});var r=n(82730),o=n.n(r),i=n(37702),a=n.n(i),u=n(56926),c=n(77612),s=n(70587);function l(t,e){for(var n=0;n0&&(j=Math.min((t||0)-(A[e-1]||0),j))}));var P=j/M,T="vertical"===b.layout?n.height:n.width;if("gap"===b.padding&&(c=P*T/2),"no-gap"===b.padding){var C=(0,s.h1)(t.barCategoryGap,P*T),I=P*T/2;c=I-C-(I-C)/T*C}}f="xAxis"===r?[n.left+(_.left||0)+(c||0),n.left+n.width-(_.right||0)-(c||0)]:"yAxis"===r?"horizontal"===l?[n.top+n.height-(_.bottom||0),n.top+(_.top||0)]:[n.top+(_.top||0)+(c||0),n.top+n.height-(_.bottom||0)-(c||0)]:b.range,k&&(f=[f[1],f[0]]);var N=(0,u.Hq)(b,o,v),D=N.scale,R=N.realScaleType;D.domain(w).range(f),(0,u.zF)(D);var L=(0,u.g$)(D,h(h({},b),{},{realScaleType:R}));"xAxis"===r?(m="top"===x&&!E||"bottom"===x&&E,d=n.left,g=y[S]-m*b.height):"yAxis"===r&&(m="left"===x&&!E||"right"===x&&E,d=y[S]-m*b.width,g=n.top);var B=h(h(h({},b),L),{},{realScaleType:R,x:d,y:g,scale:D,width:"xAxis"===r?n.width:b.width,height:"yAxis"===r?n.height:b.height});return B.bandSize=(0,u.zT)(B,L),b.hide||"xAxis"!==r?b.hide||(y[S]+=(m?-1:1)*B.width):y[S]+=(m?-1:1)*B.height,h(h({},i),{},p({},a,B))}),{})},y=function(t,e){var n=t.x,r=t.y,o=e.x,i=e.y;return{x:Math.min(n,o),y:Math.min(r,i),width:Math.abs(o-n),height:Math.abs(i-r)}},v=function(t){var e=t.x1,n=t.y1,r=t.x2,o=t.y2;return y({x:e,y:n},{x:r,y:o})},g=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.scale=void 0,this.scale=e}var e,n,r;return e=t,n=[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.bandAware,r=e.position;if(void 0!==t){if(r)switch(r){case"start":default:return this.scale(t);case"middle":var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+o;case"end":var i=this.bandwidth?this.bandwidth():0;return this.scale(t)+i}if(n){var a=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+a}return this.scale(t)}}},{key:"isInRange",value:function(t){var e=this.range(),n=e[0],r=e[e.length-1];return n<=r?t>=n&&t<=r:t>=r&&t<=n}}],r=[{key:"create",value:function(e){return new t(e)}}],n&&l(e.prototype,n),r&&l(e,r),t}();g.EPS=1e-4;var m=function(t){var e=Object.keys(t).reduce((function(e,n){return h(h({},e),{},p({},n,g.create(t[n])))}),{});return h(h({},e),{},{apply:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.bandAware,o=n.position;return a()(t,(function(t,n){return e[n].apply(t,{bandAware:r,position:o})}))},isInRange:function(t){return o()(t,(function(t,n){return e[n].isInRange(t)}))}})}},56926:function(t,e,n){"use strict";n.d(e,{By:function(){return Bi},VO:function(){return Ii},zF:function(){return Xi},DO:function(){return Hi},Bu:function(){return Yi},zT:function(){return sa},qz:function(){return Li},pt:function(){return Ri},Yj:function(){return ra},Fy:function(){return na},Hv:function(){return ea},Rf:function(){return Gi},gF:function(){return Ci},s6:function(){return zi},EB:function(){return ia},zp:function(){return Di},fk:function(){return Ni},wh:function(){return Qi},O3:function(){return oa},uY:function(){return qi},g$:function(){return ta},Qo:function(){return fa},F$:function(){return Ti},NA:function(){return Vi},ko:function(){return la},ZI:function(){return Fi},Hq:function(){return Zi},LG:function(){return ca},Vv:function(){return $i}});var r={};n.r(r),n.d(r,{scaleBand:function(){return tt.Z},scaleDiverging:function(){return fi},scaleDivergingLog:function(){return hi},scaleDivergingPow:function(){return di},scaleDivergingSqrt:function(){return yi},scaleDivergingSymlog:function(){return pi},scaleIdentity:function(){return Fe},scaleImplicit:function(){return tn.O},scaleLinear:function(){return Ue},scaleLog:function(){return Ye},scaleOrdinal:function(){return tn.Z},scalePoint:function(){return tt.x},scalePow:function(){return an},scaleQuantile:function(){return gn},scaleQuantize:function(){return bn},scaleRadial:function(){return ln},scaleSequential:function(){return ri},scaleSequentialLog:function(){return oi},scaleSequentialPow:function(){return ai},scaleSequentialQuantile:function(){return ci},scaleSequentialSqrt:function(){return ui},scaleSequentialSymlog:function(){return ii},scaleSqrt:function(){return un},scaleSymlog:function(){return Qe},scaleThreshold:function(){return xn},scaleTime:function(){return Qo},scaleUtc:function(){return ti},tickFormat:function(){return Le}});var o=n(18111),i=n.n(o),a=n(64286),u=n.n(a),c=n(82066),s=n.n(c),l=n(52085),f=n.n(l),h=n(26769),p=n.n(h),d=n(93629),y=n.n(d),v=n(29627),g=n.n(v),m=n(66452),b=n.n(m),x=n(5008),w=n.n(x),O=n(74786),_=n.n(O),E=n(26181),k=n.n(E),S=n(42854),M=n.n(S),j=n(4234),A=n.n(j);function P(t){return function(t){if(Array.isArray(t))return T(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return T(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,o):t(e-a,D((function(){for(var t=arguments.length,e=new Array(t),r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);nr&&(o=r,i=n),[o,i]}function Y(t,e,n){if(t.lte(0))return new(A())(0);var r=G.getDigitCount(t.toNumber()),o=new(A())(10).pow(r),i=t.div(o),a=1!==r?.05:.1,u=new(A())(Math.ceil(i.div(a).toNumber())).add(n).mul(a).mul(o);return e?u:new(A())(Math.ceil(u))}function $(t,e,n){var r=1,o=new(A())(t);if(!o.isint()&&n){var i=Math.abs(t);i<1?(r=new(A())(10).pow(G.getDigitCount(t)-1),o=new(A())(Math.floor(o.div(r).toNumber())).mul(r)):i>1&&(o=new(A())(Math.floor(t)))}else 0===t?o=new(A())(Math.floor((e-1)/2)):n||(o=new(A())(Math.floor(t)));var a=Math.floor((e-1)/2);return F(U((function(t){return o.add(new(A())(t-a).mul(r)).toNumber()})),B)(0,e)}function K(t,e,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new(A())(0),tickMin:new(A())(0),tickMax:new(A())(0)};var i,a=Y(new(A())(e).sub(t).div(n-1),r,o);i=t<=0&&e>=0?new(A())(0):(i=new(A())(t).add(e).div(2)).sub(new(A())(i).mod(a));var u=Math.ceil(i.sub(t).div(a).toNumber()),c=Math.ceil(new(A())(e).sub(i).div(a).toNumber()),s=u+c+1;return s>n?K(t,e,n,r,o+1):(s0?c+(n-s):c,u=e>0?u:u+(n-s)),{step:a,tickMin:i.sub(new(A())(u).mul(a)),tickMax:i.add(new(A())(c).mul(a))})}var J=V((function(t){var e=H(t,2),n=e[0],r=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=Math.max(o,2),u=X([n,r]),c=H(u,2),s=c[0],l=c[1];if(s===-1/0||l===1/0){var f=l===1/0?[s].concat(q(B(0,o-1).map((function(){return 1/0})))):[].concat(q(B(0,o-1).map((function(){return-1/0}))),[l]);return n>r?z(f):f}if(s===l)return $(s,o,i);var h=K(s,l,a,i),p=h.step,d=h.tickMin,y=h.tickMax,v=G.rangeStep(d,y.add(new(A())(.1).mul(p)),p);return n>r?z(v):v})),Q=(V((function(t){var e=H(t,2),n=e[0],r=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=Math.max(o,2),u=X([n,r]),c=H(u,2),s=c[0],l=c[1];if(s===-1/0||l===1/0)return[n,r];if(s===l)return $(s,o,i);var f=Y(new(A())(l).sub(s).div(a-1),i,0),h=F(U((function(t){return new(A())(s).add(new(A())(t).mul(f)).toNumber()})),B),p=h(0,a).filter((function(t){return t>=s&&t<=l}));return n>r?z(p):p})),V((function(t,e){var n=H(t,2),r=n[0],o=n[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=X([r,o]),u=H(a,2),c=u[0],s=u[1];if(c===-1/0||s===1/0)return[r,o];if(c===s)return[c];var l=Math.max(e,2),f=Y(new(A())(s).sub(c).div(l-1),i,0),h=[].concat(q(G.rangeStep(new(A())(c),new(A())(s).sub(new(A())(.99).mul(f)),f)),[s]);return r>o?z(h):h}))),tt=n(1925),et=Math.sqrt(50),nt=Math.sqrt(10),rt=Math.sqrt(2);function ot(t,e,n){var r,o,i,a,u=-1;if(n=+n,(t=+t)===(e=+e)&&n>0)return[t];if((r=e0){var c=Math.round(t/a),s=Math.round(e/a);for(c*ae&&--s,i=new Array(o=s-c+1);++ue&&--f,i=new Array(o=f-l+1);++u=0?(i>=et?10:i>=nt?5:i>=rt?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(i>=et?10:i>=nt?5:i>=rt?2:1)}function at(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=et?o*=10:i>=nt?o*=5:i>=rt&&(o*=2),ee?1:t>=e?0:NaN}function ct(t){var e=t,n=t;function r(t,e,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;n(t[i],e)<0?r=i+1:o=i}return r}return 1===t.length&&(e=function(e,n){return t(e)-n},n=function(t){return function(e,n){return ut(t(e),n)}}(t)),{left:r,center:function(t,n,o,i){null==o&&(o=0),null==i&&(i=t.length);var a=r(t,n,o,i-1);return a>o&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,e,r,o){for(null==r&&(r=0),null==o&&(o=t.length);r>>1;n(t[i],e)>0?o=i:r=i+1}return r}}}var st=n(37762),lt=n(87757),ft=n.n(lt),ht=ft().mark(dt);function pt(t){return null===t?NaN:+t}function dt(t,e){var n,r,o,i,a,u,c;return ft().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(void 0!==e){s.next=21;break}n=(0,st.Z)(t),s.prev=2,n.s();case 4:if((r=n.n()).done){s.next=11;break}if(!(null!=(o=r.value)&&(o=+o)>=o)){s.next=9;break}return s.next=9,o;case 9:s.next=4;break;case 11:s.next=16;break;case 13:s.prev=13,s.t0=s.catch(2),n.e(s.t0);case 16:return s.prev=16,n.f(),s.finish(16);case 19:s.next=40;break;case 21:i=-1,a=(0,st.Z)(t),s.prev=23,a.s();case 25:if((u=a.n()).done){s.next=32;break}if(c=u.value,!(null!=(c=e(c,++i,t))&&(c=+c)>=c)){s.next=30;break}return s.next=30,c;case 30:s.next=25;break;case 32:s.next=37;break;case 34:s.prev=34,s.t1=s.catch(23),a.e(s.t1);case 37:return s.prev=37,a.f(),s.finish(37);case 40:case"end":return s.stop()}}),ht,null,[[2,13,16,19],[23,34,37,40]])}var yt=ct(ut),vt=yt.right,gt=(yt.left,ct(pt).center,vt);function mt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function bt(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function xt(){}var wt=.7,Ot=1/wt,_t="\\s*([+-]?\\d+)\\s*",Et="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",kt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",St=/^#([0-9a-f]{3,8})$/,Mt=new RegExp("^rgb\\("+[_t,_t,_t]+"\\)$"),jt=new RegExp("^rgb\\("+[kt,kt,kt]+"\\)$"),At=new RegExp("^rgba\\("+[_t,_t,_t,Et]+"\\)$"),Pt=new RegExp("^rgba\\("+[kt,kt,kt,Et]+"\\)$"),Tt=new RegExp("^hsl\\("+[Et,kt,kt]+"\\)$"),Ct=new RegExp("^hsla\\("+[Et,kt,kt,Et]+"\\)$"),It={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Nt(){return this.rgb().formatHex()}function Dt(){return this.rgb().formatRgb()}function Rt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=St.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Lt(e):3===n?new zt(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Bt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Bt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Mt.exec(t))?new zt(e[1],e[2],e[3],1):(e=jt.exec(t))?new zt(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=At.exec(t))?Bt(e[1],e[2],e[3],e[4]):(e=Pt.exec(t))?Bt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Tt.exec(t))?Ht(e[1],e[2]/100,e[3]/100,1):(e=Ct.exec(t))?Ht(e[1],e[2]/100,e[3]/100,e[4]):It.hasOwnProperty(t)?Lt(It[t]):"transparent"===t?new zt(NaN,NaN,NaN,0):null}function Lt(t){return new zt(t>>16&255,t>>8&255,255&t,1)}function Bt(t,e,n,r){return r<=0&&(t=e=n=NaN),new zt(t,e,n,r)}function Ut(t){return t instanceof xt||(t=Rt(t)),t?new zt((t=t.rgb()).r,t.g,t.b,t.opacity):new zt}function Ft(t,e,n,r){return 1===arguments.length?Ut(t):new zt(t,e,n,null==r?1:r)}function zt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function Vt(){return"#"+qt(this.r)+qt(this.g)+qt(this.b)}function Gt(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function qt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ht(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Wt(t,e,n,r)}function Zt(t){if(t instanceof Wt)return new Wt(t.h,t.s,t.l,t.opacity);if(t instanceof xt||(t=Rt(t)),!t)return new Wt;if(t instanceof Wt)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),i=Math.max(e,n,r),a=NaN,u=i-o,c=(i+o)/2;return u?(a=e===i?(n-r)/u+6*(n0&&c<1?0:a,new Wt(a,u,c,t.opacity)}function Wt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Xt(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Yt(t,e,n,r,o){var i=t*t,a=i*t;return((1-3*t+3*i-a)*e+(4-6*i+3*a)*n+(1+3*t+3*i-3*a)*r+a*o)/6}mt(xt,Rt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Nt,formatHex:Nt,formatHsl:function(){return Zt(this).formatHsl()},formatRgb:Dt,toString:Dt}),mt(zt,Ft,bt(xt,{brighter:function(t){return t=null==t?Ot:Math.pow(Ot,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?wt:Math.pow(wt,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vt,formatHex:Vt,formatRgb:Gt,toString:Gt})),mt(Wt,(function(t,e,n,r){return 1===arguments.length?Zt(t):new Wt(t,e,n,null==r?1:r)}),bt(xt,{brighter:function(t){return t=null==t?Ot:Math.pow(Ot,t),new Wt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?wt:Math.pow(wt,t),new Wt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new zt(Xt(t>=240?t-240:t+120,o,r),Xt(t,o,r),Xt(t<120?t+240:t-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var $t=function(t){return function(){return t}};function Kt(t,e){return function(n){return t+n*e}}function Jt(t){return 1===(t=+t)?Qt:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):$t(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?Kt(t,n):$t(isNaN(t)?e:t)}var te=function t(e){var n=Jt(e);function r(t,e){var r=n((t=Ft(t)).r,(e=Ft(e)).r),o=n(t.g,e.g),i=n(t.b,e.b),a=Qt(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=o(e),t.b=i(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function ee(t){return function(e){var n,r,o=e.length,i=new Array(o),a=new Array(o),u=new Array(o);for(n=0;n=1?(n=1,e-1):Math.floor(n*e),o=t[r],i=t[r+1],a=r>0?t[r-1]:2*o-i,u=ri&&(o=e.slice(i,o),u[a]?u[a]+=o:u[++a]=o),(n=n[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:oe(n,r)})),i=ue.lastIndex;return ie&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}(a[0],a[t-1])),r=t>2?ge:ve,o=i=null,f}function f(e){return null==e||isNaN(e=+e)?n:(o||(o=r(a.map(t),u,c)))(t(s(e)))}return f.invert=function(n){return s(e((i||(i=r(u,a.map(t),oe)))(n)))},f.domain=function(t){return arguments.length?(a=Array.from(t,he),l()):a.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),l()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),c=fe,l()},f.clamp=function(t){return arguments.length?(s=!!t||de,l()):s!==de},f.interpolate=function(t){return arguments.length?(c=t,l()):c},f.unknown=function(t){return arguments.length?(n=t,f):n},function(n,r){return t=n,e=r,l()}}function xe(){return be()(de,de)}var we,Oe=n(37924),_e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ee(t){if(!(e=_e.exec(t)))throw new Error("invalid format: "+t);var e;return new ke({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function ke(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Se(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Me(t){return(t=Se(Math.abs(t)))?t[1]:NaN}function je(t,e){var n=Se(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}Ee.prototype=ke.prototype,ke.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Ae={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return je(100*t,e)},r:je,s:function(t,e){var n=Se(t,e);if(!n)return t+"";var r=n[0],o=n[1],i=o-(we=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+Se(t,Math.max(0,e+i-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Pe(t){return t}var Te,Ce,Ie,Ne=Array.prototype.map,De=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Re(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Pe:(e=Ne.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var o=t.length,i=[],a=0,u=e[0],c=0;o>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),i.push(t.substring(o-=u,o+u)),!((c+=u+1)>r));)u=e[a=(a+1)%e.length];return i.reverse().join(n)}),o=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?Pe:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Ne.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"\u2212":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function f(t){var e=(t=Ee(t)).fill,n=t.align,f=t.sign,h=t.symbol,p=t.zero,d=t.width,y=t.comma,v=t.precision,g=t.trim,m=t.type;"n"===m?(y=!0,m="g"):Ae[m]||(void 0===v&&(v=12),g=!0,m="g"),(p||"0"===e&&"="===n)&&(p=!0,e="0",n="=");var b="$"===h?o:"#"===h&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",x="$"===h?i:/[%p]/.test(m)?c:"",w=Ae[m],O=/[defgprs%]/.test(m);function _(t){var o,i,c,h=b,_=x;if("c"===m)_=w(t)+_,t="";else{var E=(t=+t)<0||1/t<0;if(t=isNaN(t)?l:w(Math.abs(t),v),g&&(t=function(t){t:for(var e,n=t.length,r=1,o=-1;r0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t}(t)),E&&0===+t&&"+"!==f&&(E=!1),h=(E?"("===f?f:s:"-"===f||"("===f?"":f)+h,_=("s"===m?De[8+we/3]:"")+_+(E&&"("===f?")":""),O)for(o=-1,i=t.length;++o(c=t.charCodeAt(o))||c>57){_=(46===c?a+t.slice(o+1):t.slice(o))+_,t=t.slice(0,o);break}}y&&!p&&(t=r(t,1/0));var k=h.length+t.length+_.length,S=k>1)+h+t+_+S.slice(k);break;default:t=S+h+t+_}return u(t)}return v=void 0===v?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),_.toString=function(){return t+""},_}return{format:f,formatPrefix:function(t,e){var n=f(((t=Ee(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Me(e)/3))),o=Math.pow(10,-r),i=De[8+r/3];return function(t){return n(o*t)+i}}}}function Le(t,e,n,r){var o,i=at(t,e,n);switch((r=Ee(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(o=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Me(e)/3)))-Me(Math.abs(t)))}(i,a))||(r.precision=o),Ie(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Me(e)-Me(t))+1}(i,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=function(t){return Math.max(0,-Me(Math.abs(t)))}(i))||(r.precision=o-2*("%"===r.type))}return Ce(r)}function Be(t){var e=t.domain;return t.ticks=function(t){var n=e();return ot(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return Le(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,o,i=e(),a=0,u=i.length-1,c=i[a],s=i[u],l=10;for(s0;){if((o=it(c,s,n))===r)return i[a]=c,i[u]=s,e(i);if(o>0)c=Math.floor(c/o)*o,s=Math.ceil(s/o)*o;else{if(!(o<0))break;c=Math.ceil(c*o)/o,s=Math.floor(s*o)/o}r=o}return t},t}function Ue(){var t=xe();return t.copy=function(){return me(t,Ue())},Oe.o.apply(t,arguments),Be(t)}function Fe(t){var e;function n(t){return null==t||isNaN(t=+t)?e:t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Array.from(e,he),n):t.slice()},n.unknown=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return Fe(t).unknown(e)},t=arguments.length?Array.from(t,he):[0,1],Be(n)}function ze(t,e){var n,r=0,o=(t=t.slice()).length-1,i=t[r],a=t[o];return a0){for(;h<=p;++h)for(l=1,s=n(h);lc)break;y.push(f)}}else for(;h<=p;++h)for(l=i-1,s=n(h);l>=1;--l)if(!((f=s*l)c)break;y.push(f)}2*y.length=i)&&(n=i)}}catch(l){o.e(l)}finally{o.f()}}else{var a,u=-1,c=(0,st.Z)(t);try{for(c.s();!(a=c.n()).done;){var s=a.value;null!=(s=e(s,++u,t))&&(n=s)&&(n=s)}}catch(l){c.e(l)}finally{c.f()}}return n}function hn(t,e){var n;if(void 0===e){var r,o=(0,st.Z)(t);try{for(o.s();!(r=o.n()).done;){var i=r.value;null!=i&&(n>i||void 0===n&&i>=i)&&(n=i)}}catch(l){o.e(l)}finally{o.f()}}else{var a,u=-1,c=(0,st.Z)(t);try{for(c.s();!(a=c.n()).done;){var s=a.value;null!=(s=e(s,++u,t))&&(n>s||void 0===n&&s>=s)&&(n=s)}}catch(l){c.e(l)}finally{c.f()}}return n}function pn(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ut;r>n;){if(r-n>600){var i=r-n+1,a=e-n+1,u=Math.log(i),c=.5*Math.exp(2*u/3),s=.5*Math.sqrt(u*c*(i-c)/i)*(a-i/2<0?-1:1),l=Math.max(n,Math.floor(e-a*c/i+s)),f=Math.min(r,Math.floor(e+(i-a)*c/i+s));pn(t,e,l,f,o)}var h=t[e],p=n,d=r;for(dn(t,n,e),o(t[r],h)>0&&dn(t,n,r);p0;)--d}0===o(t[n],h)?dn(t,n,d):dn(t,++d,r),d<=e&&(n=d+1),e<=d&&(r=d-1)}return t}function dn(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function yn(t,e,n){if(r=(t=Float64Array.from(dt(t,n))).length){if((e=+e)<=0||r<2)return hn(t);if(e>=1)return fn(t);var r,o=(r-1)*e,i=Math.floor(o),a=fn(pn(t,i).subarray(0,i+1));return a+(hn(t.subarray(i+1))-a)*(o-i)}}function vn(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:pt;if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,o=(r-1)*e,i=Math.floor(o),a=+n(t[i],i,t),u=+n(t[i+1],i+1,t);return a+(u-a)*(o-i)}}function gn(){var t,e=[],n=[],r=[];function o(){var t=0,o=Math.max(1,n.length);for(r=new Array(o-1);++t0?r[o-1]:e[0],o=r?[o[r-1],n]:[o[a-1],o[a]]},a.unknown=function(e){return arguments.length?(t=e,a):a},a.thresholds=function(){return o.slice()},a.copy=function(){return bn().domain([e,n]).range(i).unknown(t)},Oe.o.apply(Be(a),arguments)}function xn(){var t,e=[.5],n=[0,1],r=1;function o(o){return null!=o&&o<=o?n[gt(e,o,0,r)]:t}return o.domain=function(t){return arguments.length?(e=Array.from(t),r=Math.min(e.length,n.length-1),o):e.slice()},o.range=function(t){return arguments.length?(n=Array.from(t),r=Math.min(e.length,n.length-1),o):n.slice()},o.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return xn().domain(e).range(n).unknown(t)},Oe.o.apply(o,arguments)}var wn=1e3,On=6e4,_n=36e5,En=864e5,kn=6048e5,Sn=2592e6,Mn=31536e6,jn=new Date,An=new Date;function Pn(t,e,n,r){function o(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return o.floor=function(e){return t(e=new Date(+e)),e},o.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},o.round=function(t){var e=o(t),n=o.ceil(t);return t-e0))return u;do{u.push(a=new Date(+n)),e(n,i),t(n)}while(a=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(o.count=function(e,r){return jn.setTime(+e),An.setTime(+r),t(jn),t(An),Math.floor(n(jn,An))},o.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?o.filter(r?function(e){return r(e)%t===0}:function(e){return o.count(0,e)%t===0}):o:null}),o}var Tn=Pn((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Tn.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Pn((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Tn:null};var Cn=Tn,In=(Tn.range,Pn((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*wn)}),(function(t,e){return(e-t)/wn}),(function(t){return t.getUTCSeconds()}))),Nn=In,Dn=(In.range,Pn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wn)}),(function(t,e){t.setTime(+t+e*On)}),(function(t,e){return(e-t)/On}),(function(t){return t.getMinutes()}))),Rn=Dn,Ln=(Dn.range,Pn((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wn-t.getMinutes()*On)}),(function(t,e){t.setTime(+t+e*_n)}),(function(t,e){return(e-t)/_n}),(function(t){return t.getHours()}))),Bn=Ln,Un=(Ln.range,Pn((function(t){return t.setHours(0,0,0,0)}),(function(t,e){return t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*On)/En}),(function(t){return t.getDate()-1}))),Fn=Un;Un.range;function zn(t){return Pn((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*On)/kn}))}var Vn=zn(0),Gn=zn(1),qn=zn(2),Hn=zn(3),Zn=zn(4),Wn=zn(5),Xn=zn(6),Yn=(Vn.range,Gn.range,qn.range,Hn.range,Zn.range,Wn.range,Xn.range,Pn((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}))),$n=Yn,Kn=(Yn.range,Pn((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()})));Kn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Pn((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Jn=Kn,Qn=(Kn.range,Pn((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*On)}),(function(t,e){return(e-t)/On}),(function(t){return t.getUTCMinutes()}))),tr=Qn,er=(Qn.range,Pn((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*_n)}),(function(t,e){return(e-t)/_n}),(function(t){return t.getUTCHours()}))),nr=er,rr=(er.range,Pn((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/En}),(function(t){return t.getUTCDate()-1}))),or=rr;rr.range;function ir(t){return Pn((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/kn}))}var ar=ir(0),ur=ir(1),cr=ir(2),sr=ir(3),lr=ir(4),fr=ir(5),hr=ir(6),pr=(ar.range,ur.range,cr.range,sr.range,lr.range,fr.range,hr.range,Pn((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}))),dr=pr,yr=(pr.range,Pn((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()})));yr.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Pn((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var vr=yr;yr.range;function gr(t,e,n,r,o,i){var a=[[Nn,1,wn],[Nn,5,5e3],[Nn,15,15e3],[Nn,30,3e4],[i,1,On],[i,5,3e5],[i,15,9e5],[i,30,18e5],[o,1,_n],[o,3,108e5],[o,6,216e5],[o,12,432e5],[r,1,En],[r,2,1728e5],[n,1,kn],[e,1,Sn],[e,3,7776e6],[t,1,Mn]];function u(e,n,r){var o=Math.abs(n-e)/r,i=ct((function(t){return(0,mn.Z)(t,3)[2]})).right(a,o);if(i===a.length)return t.every(at(e/Mn,n/Mn,r));if(0===i)return Cn.every(Math.max(at(e,n,r),1));var u=(0,mn.Z)(a[o/a[i-1][2]68?1900:2e3),n+r[0].length):-1}function Wr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Xr(t,e,n){var r=Ir.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function Yr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function $r(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Kr(t,e,n){var r=Ir.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Jr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Qr(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function to(t,e,n){var r=Ir.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function eo(t,e,n){var r=Ir.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function no(t,e,n){var r=Ir.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ro(t,e,n){var r=Nr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function oo(t,e,n){var r=Ir.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function io(t,e,n){var r=Ir.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function ao(t,e){return Rr(t.getDate(),e,2)}function uo(t,e){return Rr(t.getHours(),e,2)}function co(t,e){return Rr(t.getHours()%12||12,e,2)}function so(t,e){return Rr(1+Fn.count(Jn(t),t),e,3)}function lo(t,e){return Rr(t.getMilliseconds(),e,3)}function fo(t,e){return lo(t,e)+"000"}function ho(t,e){return Rr(t.getMonth()+1,e,2)}function po(t,e){return Rr(t.getMinutes(),e,2)}function yo(t,e){return Rr(t.getSeconds(),e,2)}function vo(t){var e=t.getDay();return 0===e?7:e}function go(t,e){return Rr(Vn.count(Jn(t)-1,t),e,2)}function mo(t){var e=t.getDay();return e>=4||0===e?Zn(t):Zn.ceil(t)}function bo(t,e){return t=mo(t),Rr(Zn.count(Jn(t),t)+(4===Jn(t).getDay()),e,2)}function xo(t){return t.getDay()}function wo(t,e){return Rr(Gn.count(Jn(t)-1,t),e,2)}function Oo(t,e){return Rr(t.getFullYear()%100,e,2)}function _o(t,e){return Rr((t=mo(t)).getFullYear()%100,e,2)}function Eo(t,e){return Rr(t.getFullYear()%1e4,e,4)}function ko(t,e){var n=t.getDay();return Rr((t=n>=4||0===n?Zn(t):Zn.ceil(t)).getFullYear()%1e4,e,4)}function So(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Rr(e/60|0,"0",2)+Rr(e%60,"0",2)}function Mo(t,e){return Rr(t.getUTCDate(),e,2)}function jo(t,e){return Rr(t.getUTCHours(),e,2)}function Ao(t,e){return Rr(t.getUTCHours()%12||12,e,2)}function Po(t,e){return Rr(1+or.count(vr(t),t),e,3)}function To(t,e){return Rr(t.getUTCMilliseconds(),e,3)}function Co(t,e){return To(t,e)+"000"}function Io(t,e){return Rr(t.getUTCMonth()+1,e,2)}function No(t,e){return Rr(t.getUTCMinutes(),e,2)}function Do(t,e){return Rr(t.getUTCSeconds(),e,2)}function Ro(t){var e=t.getUTCDay();return 0===e?7:e}function Lo(t,e){return Rr(ar.count(vr(t)-1,t),e,2)}function Bo(t){var e=t.getUTCDay();return e>=4||0===e?lr(t):lr.ceil(t)}function Uo(t,e){return t=Bo(t),Rr(lr.count(vr(t),t)+(4===vr(t).getUTCDay()),e,2)}function Fo(t){return t.getUTCDay()}function zo(t,e){return Rr(ur.count(vr(t)-1,t),e,2)}function Vo(t,e){return Rr(t.getUTCFullYear()%100,e,2)}function Go(t,e){return Rr((t=Bo(t)).getUTCFullYear()%100,e,2)}function qo(t,e){return Rr(t.getUTCFullYear()%1e4,e,4)}function Ho(t,e){var n=t.getUTCDay();return Rr((t=n>=4||0===n?lr(t):lr.ceil(t)).getUTCFullYear()%1e4,e,4)}function Zo(){return"+0000"}function Wo(){return"%"}function Xo(t){return+t}function Yo(t){return Math.floor(+t/1e3)}function $o(t){return new Date(t)}function Ko(t){return t instanceof Date?+t:+new Date(+t)}function Jo(t,e,n,r,o,i,a,u,c,s){var l=xe(),f=l.invert,h=l.domain,p=s(".%L"),d=s(":%S"),y=s("%I:%M"),v=s("%I %p"),g=s("%a %d"),m=s("%b %d"),b=s("%B"),x=s("%Y");function w(t){return(c(t)1)for(var n,r,o,i=1,a=t[e[0]],u=a.length;i=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Xo,s:Yo,S:yo,u:vo,U:go,V:bo,w:xo,W:wo,x:null,X:null,y:Oo,Y:Eo,Z:So,"%":Wo},x={a:function(t){return a[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Mo,e:Mo,f:Co,g:Go,G:Ho,H:jo,I:Ao,j:Po,L:To,m:Io,M:No,p:function(t){return o[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Xo,s:Yo,S:Do,u:Ro,U:Lo,V:Uo,w:Fo,W:zo,x:null,X:null,y:Vo,Y:qo,Z:Zo,"%":Wo},w={a:function(t,e,n){var r=p.exec(e.slice(n));return r?(t.w=d.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=h.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.m=m.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(t,e,n){var r=y.exec(e.slice(n));return r?(t.m=v.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(t,n,r){return E(t,e,n,r)},d:$r,e:$r,f:no,g:Zr,G:Hr,H:Jr,I:Jr,j:Kr,L:eo,m:Yr,M:Qr,p:function(t,e,n){var r=s.exec(e.slice(n));return r?(t.p=l.get(r[0].toLowerCase()),n+r[0].length):-1},q:Xr,Q:oo,s:io,S:to,u:zr,U:Vr,V:Gr,w:Fr,W:qr,x:function(t,e,r){return E(t,n,e,r)},X:function(t,e,n){return E(t,r,e,n)},y:Zr,Y:Hr,Z:Wr,"%":ro};function O(t,e){return function(n){var r,o,i,a=[],u=-1,c=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u53)return null;"w"in i||(i.w=1),"Z"in i?(o=(r=Mr(jr(i.y,0,1))).getUTCDay(),r=o>4||0===o?ur.ceil(r):ur(r),r=or.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(o=(r=Sr(jr(i.y,0,1))).getDay(),r=o>4||0===o?Gn.ceil(r):Gn(r),r=Fn.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),o="Z"in i?Mr(jr(i.y,0,1)).getUTCDay():Sr(jr(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Mr(i)):Sr(i)}}function E(t,e,n,r){for(var o,i,a=0,u=e.length,c=n.length;a=c)return-1;if(37===(o=e.charCodeAt(a++))){if(o=e.charAt(a++),!(i=w[o in Cr?e.charAt(a++):o])||(r=i(t,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return b.x=O(n,b),b.X=O(r,b),b.c=O(e,b),x.x=O(n,x),x.X=O(r,x),x.c=O(e,x),{format:function(t){var e=O(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=O(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}(t),Pr=Ar.format,Ar.parse,Tr=Ar.utcFormat,Ar.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var gi=n(5803),mi=n(76817);function bi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function xi(t,e){return t[e]}function wi(t){var e=[];return e.key=t,e}var Oi=n(70587),_i=n(24296),Ei=n(77612),ki=n(57241);function Si(t){return function(t){if(Array.isArray(t))return Mi(t)}(t)||function(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"===typeof t)return Mi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mi(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=-1,a=null!==(e=null===n||void 0===n?void 0:n.length)&&void 0!==e?e:0;if(a>1){if(o&&"angleAxis"===o.axisType&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var u=o.range,c=0;c0?r[c-1].coordinate:r[a-1].coordinate,l=r[c].coordinate,f=c>=a-1?r[0].coordinate:r[c+1].coordinate,h=void 0;if((0,Oi.uY)(l-s)!==(0,Oi.uY)(f-l)){var p=[];if((0,Oi.uY)(f-l)===(0,Oi.uY)(u[1]-u[0])){h=f;var d=l+u[1]-u[0];p[0]=Math.min(d,(d+s)/2),p[1]=Math.max(d,(d+s)/2)}else{h=s;var y=f+u[1]-u[0];p[0]=Math.min(l,(y+l)/2),p[1]=Math.max(l,(y+l)/2)}var v=[Math.min(l,(h+l)/2),Math.max(l,(h+l)/2)];if(t>v[0]&&t<=v[1]||t>=p[0]&&t<=p[1]){i=r[c].index;break}}else{var g=Math.min(s,f),m=Math.max(s,f);if(t>(g+l)/2&&t<=(m+l)/2){i=r[c].index;break}}}else for(var b=0;b0&&b(n[b].coordinate+n[b-1].coordinate)/2&&t<=(n[b].coordinate+n[b+1].coordinate)/2||b===a-1&&t>(n[b].coordinate+n[b-1].coordinate)/2){i=n[b].index;break}}else i=0;return i},Ni=function(t){var e,n=t.type.displayName,r=t.props,o=r.stroke,i=r.fill;switch(n){case"Line":e=o;break;case"Area":case"Radar":e=o&&"none"!==o?o:i;break;default:e=i}return e},Di=function(t){var e,n=t.children,r=t.formattedGraphicalItems,o=t.legendWidth,i=t.legendContent,a=(0,Ei.sP)(n,_i.D.displayName);return a?(e=a.props&&a.props.payload?a.props&&a.props.payload:"children"===i?(r||[]).reduce((function(t,e){var n=e.item,r=e.props,o=r.sectors||r.data||[];return t.concat(o.map((function(t){return{type:a.props.iconType||n.props.legendType,value:t.name,color:t.fill,payload:t}})))}),[]):(r||[]).map((function(t){var e=t.item,n=e.props,r=n.dataKey,o=n.name,i=n.legendType;return{inactive:n.hide,dataKey:r,type:a.props.iconType||i||"square",color:Ni(e),value:o||r,payload:e.props}})),Ai(Ai(Ai({},a.props),_i.D.getWithHeight(a,o)),{},{payload:e,item:a})):null},Ri=function(t){var e=t.barSize,n=t.stackGroups,r=void 0===n?{}:n;if(!r)return{};for(var o={},i=Object.keys(r),a=0,u=i.length;a=0}));if(y&&y.length){var v=y[0].props.barSize,g=y[0].props[d];o[g]||(o[g]=[]),o[g].push({item:y[0],stackList:y.slice(1),barSize:M()(v)?e:v})}}return o},Li=function(t){var e=t.barGap,n=t.barCategoryGap,r=t.bandSize,o=t.sizeList,i=void 0===o?[]:o,a=t.maxBarSize,u=i.length;if(u<1)return null;var c,s=(0,Oi.h1)(e,r,0,!0);if(i[0].barSize===+i[0].barSize){var l=!1,f=r/u,h=i.reduce((function(t,e){return t+e.barSize||0}),0);(h+=(u-1)*s)>=r&&(h-=(u-1)*s,s=0),h>=r&&f>0&&(l=!0,h=u*(f*=.9));var p={offset:((r-h)/2>>0)-s,size:0};c=i.reduce((function(t,e){var n=[].concat(Si(t),[{item:e.item,position:{offset:p.offset+p.size+s,size:l?f:e.barSize}}]);return p=n[n.length-1].position,e.stackList&&e.stackList.length&&e.stackList.forEach((function(t){n.push({item:t,position:p})})),n}),[])}else{var d=(0,Oi.h1)(n,r,0,!0);r-2*d-(u-1)*s<=0&&(s=0);var y=(r-2*d-(u-1)*s)/u;y>1&&(y>>=0);var v=a===+a?Math.min(y,a):y;c=i.reduce((function(t,e,n){var r=[].concat(Si(t),[{item:e.item,position:{offset:d+(y+s)*n+(y-v)/2,size:v}}]);return e.stackList&&e.stackList.length&&e.stackList.forEach((function(t){r.push({item:t,position:r[r.length-1].position})})),r}),[])}return c},Bi=function(t,e,n,r){var o=n.children,i=n.width,a=n.margin,u=i-(a.left||0)-(a.right||0),c=Di({children:o,legendWidth:u}),s=t;if(c){var l=r||{},f=c.align,h=c.verticalAlign,p=c.layout;("vertical"===p||"horizontal"===p&&"center"===h)&&(0,Oi.hj)(t[f])&&(s=Ai(Ai({},t),{},Pi({},f,s[f]+(l.width||0)))),("horizontal"===p||"vertical"===p&&"center"===f)&&(0,Oi.hj)(t[h])&&(s=Ai(Ai({},t),{},Pi({},h,s[h]+(l.height||0))))}return s},Ui=function(t,e,n,r){var o=e.props.children,i=(0,Ei.NN)(o,"ErrorBar").filter((function(t){var e=t.props.direction;return!(!M()(e)&&!M()(r))||r.indexOf(e)>=0}));if(i&&i.length){var a=i.map((function(t){return t.props.dataKey}));return t.reduce((function(t,e){var r=Ti(e,n,0),o=y()(r)?[b()(r),g()(r)]:[r,r],i=a.reduce((function(t,n){var r=Ti(e,n,0),i=o[0]-Math.abs(y()(r)?r[0]:r),a=o[1]+Math.abs(y()(r)?r[1]:r);return[Math.min(i,t[0]),Math.max(a,t[1])]}),[1/0,-1/0]);return[Math.min(i[0],t[0]),Math.max(i[1],t[1])]}),[1/0,-1/0])}return null},Fi=function(t,e,n,r){var o=e.map((function(e){return Ui(t,e,n,r)})).filter((function(t){return!M()(t)}));return o&&o.length?o.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0]):null},zi=function(t,e,n,r){var o=e.map((function(e){var o=e.props.dataKey;return"number"===n&&o&&Ui(t,e,o)||Ci(t,o,n,r)}));if("number"===n)return o.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0]);var i={};return o.reduce((function(t,e){for(var n=0,r=e.length;n=0||e.indexOf("AreaChart")>=0||e.indexOf("ComposedChart")>=0&&!n)?{scale:tt.x(),realScaleType:"point"}:"category"===i?{scale:tt.Z(),realScaleType:"band"}:{scale:Ue(),realScaleType:"linear"};if(p()(o)){var c="scale".concat(f()(o));return{scale:(r[c]||tt.x)(),realScaleType:r[c]?c:"point"}}return _()(o)?{scale:o}:{scale:tt.x(),realScaleType:"point"}},Wi=1e-4,Xi=function(t){var e=t.domain();if(e&&!(e.length<=2)){var n=e.length,r=t.range(),o=Math.min(r[0],r[1])-Wi,i=Math.max(r[0],r[1])+Wi,a=t(e[0]),u=t(e[n-1]);(ai||ui)&&t.domain([e[0],e[n-1]])}},Yi=function(t,e){if(!t)return null;for(var n=0,r=t.length;nr)&&(o[1]=r),o[0]>r&&(o[0]=r),o[1]=0?(t[a][n][0]=o,t[a][n][1]=o+u,o=t[a][n][1]):(t[a][n][0]=i,t[a][n][1]=i+u,i=t[a][n][1])}},expand:function(t,e){if((r=t.length)>0){for(var n,r,o,i=0,a=t[0].length;i0){for(var n,r=0,o=t[e[0]],i=o.length;r0&&(r=(n=t[e[0]]).length)>0){for(var n,r,o,i=0,a=1;a=0?(t[i][n][0]=o,t[i][n][1]=o+a,o=t[i][n][1]):(t[i][n][0]=0,t[i][n][1]=0)}}},Ji=function(t,e,n){var r=e.map((function(t){return t.props.dataKey})),o=function(){var t=(0,mi.Z)([]),e=bi,n=vi,r=xi;function o(o){var i,a,u,c=Array.from(t.apply(this,arguments),wi),s=c.length,l=-1,f=(0,st.Z)(o);try{for(f.s();!(u=f.n()).done;){var h=u.value;for(i=0,++l;i=0?0:o<0?o:r}return n[0]},oa=function(t,e){var n=t.props.stackId;if((0,Oi.P2)(n)){var r=e[n];if(r&&r.items.length){for(var o=-1,i=0,a=r.items.length;i=0?r.stackedData[o]:null}}return null},ia=function(t,e,n){return Object.keys(t).reduce((function(r,o){var i=t[o].stackedData.reduce((function(t,r){var o=r.slice(e,n+1).reduce((function(t,e){return[b()(e.concat([t[0]]).filter(Oi.hj)),g()(e.concat([t[1]]).filter(Oi.hj))]}),[1/0,-1/0]);return[Math.min(t[0],o[0]),Math.max(t[1],o[1])]}),[1/0,-1/0]);return[Math.min(i[0],r[0]),Math.max(i[1],r[1])]}),[1/0,-1/0]).map((function(t){return t===1/0||t===-1/0?0:t}))},aa=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ua=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ca=function(t,e,n){if(_()(t))return t(e,n);if(!y()(t))return e;var r=[];if((0,Oi.hj)(t[0]))r[0]=n?t[0]:Math.min(t[0],e[0]);else if(aa.test(t[0])){var o=+aa.exec(t[0])[1];r[0]=e[0]-o}else _()(t[0])?r[0]=t[0](e[0]):r[0]=e[0];if((0,Oi.hj)(t[1]))r[1]=n?t[1]:Math.max(t[1],e[1]);else if(ua.test(t[1])){var i=+ua.exec(t[1])[1];r[1]=e[1]+i}else _()(t[1])?r[1]=t[1](e[1]):r[1]=e[1];return r},sa=function(t,e,n){if(t&&t.scale&&t.scale.bandwidth){var r=t.scale.bandwidth();if(!n||r>0)return r}if(t&&e&&e.length>=2){for(var o=u()(e,(function(t){return t.coordinate})),i=1/0,a=1,c=o.length;at.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0&&o===+o?"".concat(o,"px"):o),";");var r,o,i}),"")},d=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===t||null===t||r.x.isSsr)return{width:0,height:0};var n="".concat(t),o=p(e),a="".concat(n,"-").concat(o);if(s.widthCache[a])return s.widthCache[a];try{var u=document.getElementById(h);u||((u=document.createElement("span")).setAttribute("id",h),u.setAttribute("aria-hidden","true"),document.body.appendChild(u));var c=i(i({},l),e);Object.keys(c).map((function(t){return u.style[t]=c[t],t})),u.textContent=n;var f=u.getBoundingClientRect(),d={width:f.width,height:f.height};return s.widthCache[a]=d,++s.cacheCount>2e3&&(s.cacheCount=0,s.widthCache={}),d}catch(y){return{width:0,height:0}}},y=function(t){var e=t.ownerDocument.documentElement,n={top:0,left:0};return"undefined"!==typeof t.getBoundingClientRect&&(n=t.getBoundingClientRect()),{top:n.top+window.pageYOffset-e.clientTop,left:n.left+window.pageXOffset-e.clientLeft}},v=function(t,e){return{chartX:Math.round(t.pageX-e.left),chartY:Math.round(t.pageY-e.top)}}},70587:function(t,e,n){"use strict";n.d(e,{Ap:function(){return _},EL:function(){return m},Kt:function(){return x},P2:function(){return v},bv:function(){return w},h1:function(){return b},hU:function(){return d},hj:function(){return y},k4:function(){return O},uY:function(){return p}});var r=n(26181),o=n.n(r),i=n(93629),a=n.n(i),u=n(82066),c=n.n(u),s=n(30298),l=n.n(s),f=n(26769),h=n.n(f),p=function(t){return 0===t?0:t>0?1:-1},d=function(t){return h()(t)&&t.indexOf("%")===t.length-1},y=function(t){return l()(t)&&!c()(t)},v=function(t){return y(t)||h()(t)},g=0,m=function(t){var e=++g;return"".concat(t||"").concat(e)},b=function(t,e){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!y(t)&&!h()(t))return r;if(d(t)){var i=t.indexOf("%");n=e*parseFloat(t.slice(0,i))/100}else n=+t;return c()(n)&&(n=r),o&&n>e&&(n=e),n},x=function(t){if(!t)return null;var e=Object.keys(t);return e&&e.length?t[e[0]]:null},w=function(t){if(!a()(t))return!1;for(var e=t.length,n={},r=0;r2?n-2:0),o=2;ot.length)&&(e=t.length);for(var n=0,r=new Array(e);n2&&void 0!==arguments[2]?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(e-(n.top||0)-(n.bottom||0)))/2},v=function(t,e,n,r,u){var f=t.width,h=t.height,p=t.startAngle,d=t.endAngle,v=(0,i.h1)(t.cx,f,f/2),g=(0,i.h1)(t.cy,h,h/2),m=y(f,h,n),b=(0,i.h1)(t.innerRadius,m,0),x=(0,i.h1)(t.outerRadius,m,.8*m);return Object.keys(e).reduce((function(t,n){var i,f=e[n],h=f.domain,y=f.reversed;if(o()(f.range))"angleAxis"===r?i=[p,d]:"radiusAxis"===r&&(i=[b,x]),y&&(i=[i[1],i[0]]);else{var m=l(i=f.range,2);p=m[0],d=m[1]}var w=(0,a.Hq)(f,u),O=w.realScaleType,_=w.scale;_.domain(h).range(i),(0,a.zF)(_);var E=(0,a.g$)(_,c(c({},f),{},{realScaleType:O})),k=c(c(c({},f),E),{},{range:i,radius:x,realScaleType:O,scale:_,cx:v,cy:g,innerRadius:b,outerRadius:x,startAngle:p,endAngle:d});return c(c({},t),{},s({},n,k))}),{})},g=function(t,e){var n=t.x,r=t.y,o=e.cx,i=e.cy,a=function(t,e){var n=t.x,r=t.y,o=e.x,i=e.y;return Math.sqrt(Math.pow(n-o,2)+Math.pow(r-i,2))}({x:n,y:r},{x:o,y:i});if(a<=0)return{radius:a};var u=(n-o)/a,c=Math.acos(u);return r>i&&(c=2*Math.PI-c),{radius:a,angle:p(c),angleInRadian:c}},m=function(t,e){var n=e.startAngle,r=e.endAngle,o=Math.floor(n/360),i=Math.floor(r/360);return t+360*Math.min(o,i)},b=function(t,e){var n=t.x,r=t.y,o=g({x:n,y:r},e),i=o.radius,a=o.angle,u=e.innerRadius,s=e.outerRadius;if(is)return!1;if(0===i)return!0;var l,f=function(t){var e=t.startAngle,n=t.endAngle,r=Math.floor(e/360),o=Math.floor(n/360),i=Math.min(r,o);return{startAngle:e-360*i,endAngle:n-360*i}}(e),h=f.startAngle,p=f.endAngle,d=a;if(h<=p){for(;d>p;)d-=360;for(;d=h&&d<=p}else{for(;d>h;)d-=360;for(;d=p&&d<=h}return l?c(c({},e),{},{radius:i,angle:m(d,e)}):null}},77612:function(t,e,n){"use strict";n.d(e,{$R:function(){return P},Bh:function(){return A},Gf:function(){return g},NN:function(){return w},TT:function(){return _},eu:function(){return j},rL:function(){return S},sP:function(){return O}});var r=n(26769),o=n.n(r),i=n(26181),a=n.n(i),u=n(42854),c=n.n(u),s=n(93629),l=n.n(s),f=n(72791),h=n(8493),p=n(70587),d=n(94520);function y(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var v={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},g=function(t){return"string"===typeof t?t:t?t.displayName||t.name||"Component":""},m=null,b=null,x=function t(e){if(e===m&&l()(b))return b;var n=[];return f.Children.forEach(e,(function(e){c()(e)||((0,h.isFragment)(e)?n=n.concat(t(e.props.children)):n.push(e))})),b=n,m=e,n},w=function(t,e){var n=[],r=[];return r=l()(e)?e.map((function(t){return g(t)})):[g(e)],x(t).forEach((function(t){var e=a()(t,"type.displayName")||a()(t,"type.name");-1!==r.indexOf(e)&&n.push(t)})),n},O=function(t,e){var n=w(t,e);return n&&n[0]},_=function(t){if(!t||!t.props)return!1;var e=t.props,n=e.width,r=e.height;return!(!(0,p.hj)(n)||n<=0||!(0,p.hj)(r)||r<=0)},E=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],k=function(t){return t&&t.type&&o()(t.type)&&E.indexOf(t.type)>=0},S=function t(e,n){if(e===n)return!0;var r=f.Children.count(e);if(r!==f.Children.count(n))return!1;if(0===r)return!0;if(1===r)return M(l()(e)?e[0]:e,l()(n)?n[0]:n);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:5;return(0,r.default)(t).walk((function(t){if("function"===t.type&&c.test(t.value)){var n=r.default.stringify(t.nodes);if(!(n.indexOf("constant")>=0||n.indexOf("env")>=0)){var u=o.parser.parse(n),s=(0,i.default)(u,e);t.type="word",t.value=(0,a.default)(t.value,s,e)}}}),!0).toString()},t.exports=e.default},78334:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(74890),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t,e,n){switch(t.type){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":return function(t,e,n){e.type===t.type&&(e={type:t.type,value:(0,i.default)(e.value,e.unit,t.unit,n),unit:t.unit});return{left:t,right:e}}(t,e,n);default:return{left:t,right:e}}},t.exports=e.default},34849:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.flip=s;var r,o=n(78334),i=(r=o)&&r.__esModule?r:{default:r};function a(t,e){return"MathExpression"===t.type?function(t,e){switch(t=function(t,e){var n=(0,i.default)(t.left,t.right,e),r=a(n.left,e),o=a(n.right,e);"MathExpression"===r.type&&"MathExpression"===o.type&&("/"===r.operator&&"*"===o.operator||"-"===r.operator&&"+"===o.operator||"*"===r.operator&&"/"===o.operator||"+"===r.operator&&"-"===o.operator)&&(u(r.right,o.right)?n=(0,i.default)(r.left,o.left,e):u(r.right,o.left)&&(n=(0,i.default)(r.left,o.right,e)),r=a(n.left,e),o=a(n.right,e));return t.left=r,t.right=o,t}(t,e),t.operator){case"+":case"-":return function(t,e){var n=t,r=n.left,o=n.right,i=n.operator;if("CssVariable"===r.type||"CssVariable"===o.type)return t;if(0===o.value)return r;if(0===r.value&&"+"===i)return o;if(0===r.value&&"-"===i)return l(o);r.type===o.type&&c(r.type)&&((t=Object.assign({},r)).value="+"===i?r.value+o.value:r.value-o.value);if(c(r.type)&&("+"===o.operator||"-"===o.operator)&&"MathExpression"===o.type){if(r.type===o.left.type)return(t=Object.assign({},t)).left=a({type:"MathExpression",operator:i,left:r,right:o.left},e),t.right=o.right,t.operator="-"===i?s(o.operator):o.operator,a(t,e);if(r.type===o.right.type)return(t=Object.assign({},t)).left=a({type:"MathExpression",operator:"-"===i?s(o.operator):o.operator,left:r,right:o.right},e),t.right=o.left,a(t,e)}if("MathExpression"===r.type&&("+"===r.operator||"-"===r.operator)&&c(o.type)){if(o.type===r.left.type)return(t=Object.assign({},r)).left=a({type:"MathExpression",operator:i,left:r.left,right:o},e),a(t,e);if(o.type===r.right.type)return t=Object.assign({},r),"-"===r.operator?(t.right=a({type:"MathExpression",operator:"-"===i?"+":"-",left:o,right:r.right},e),t.operator="-"===i?"-":"+"):t.right=a({type:"MathExpression",operator:i,left:r.right,right:o},e),t.right.value<0&&(t.right.value*=-1,t.operator="-"===t.operator?"+":"-"),a(t,e)}return t}(t,e);case"/":return function(t,e){if(!c(t.right.type))return t;if("Value"!==t.right.type)throw new Error('Cannot divide by "'+t.right.unit+'", number expected');if(0===t.right.value)throw new Error("Cannot divide by zero");if("MathExpression"===t.left.type)return c(t.left.left.type)&&c(t.left.right.type)?(t.left.left.value/=t.right.value,t.left.right.value/=t.right.value,a(t.left,e)):t;if(c(t.left.type))return t.left.value/=t.right.value,t.left;return t}(t,e);case"*":return function(t){if("MathExpression"===t.left.type&&"Value"===t.right.type){if(c(t.left.left.type)&&c(t.left.right.type))return t.left.left.value*=t.right.value,t.left.right.value*=t.right.value,t.left}else{if(c(t.left.type)&&"Value"===t.right.type)return t.left.value*=t.right.value,t.left;if("Value"===t.left.type&&"MathExpression"===t.right.type){if(c(t.right.left.type)&&c(t.right.right.type))return t.right.left.value*=t.left.value,t.right.right.value*=t.left.value,t.right}else if("Value"===t.left.type&&c(t.right.type))return t.right.value*=t.left.value,t.right}return t}(t)}return t}(t,e):"Calc"===t.type?a(t.value,e):t}function u(t,e){return t.type===e.type&&t.value===e.value}function c(t){switch(t){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":case"EmValue":case"ExValue":case"ChValue":case"RemValue":case"VhValue":case"VwValue":case"VminValue":case"VmaxValue":case"PercentageValue":case"Value":return!0}return!1}function s(t){return"+"===t?"-":"+"}function l(t){return c(t.type)?t.value=-t.value:"MathExpression"==t.type&&(t.left=l(t.left),t.right=l(t.right)),t}e.default=a},94170:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){var r=a(e,n);return"MathExpression"===e.type&&(r=t+"("+r+")"),r};var r=n(34849),o={"*":0,"/":0,"+":1,"-":1};function i(t,e){if(!1!==e){var n=Math.pow(10,e);return Math.round(t*n)/n}return t}function a(t,e){switch(t.type){case"MathExpression":var n=t.left,u=t.right,c=t.operator,s="";return"MathExpression"===n.type&&o[c]1)return t;if(e.cleanupAfterLex&&e.cleanupAfterLex(a),f&&(f.lexer=void 0,f.parser=void 0,e.yy===f&&(e.yy=void 0)),f=void 0,this.parseError=this.originalParseError,this.quoteName=this.originalQuoteName,r.length=0,o.length=0,i.length=0,u=0,!a){for(var l=this.__error_infos.length-1;l>=0;l--){var h=this.__error_infos[l];h&&"function"===typeof h.destroy&&h.destroy()}this.__error_infos.length=0}return t},this.constructParseErrorInfo=function(t,n,a,s){var l={errStr:t,exception:n,text:e.match,value:e.yytext,token:this.describeSymbol(c)||c,token_id:c,line:e.yylineno,expected:a,recoverable:s,state:p,action:d,new_state:x,symbol_stack:r,state_stack:o,value_stack:i,stack_pointer:u,yy:f,lexer:e,parser:this,destroy:function(){var t=!!this.recoverable;for(var e in this)this.hasOwnProperty(e)&&"object"===typeof e&&(this[e]=void 0);this.recoverable=t}};return this.__error_infos.push(l),l};var p,d,y,v,g,m,b,x,w=function(){var t=e.lex();return"number"!==typeof t&&(t=n.symbols_[t]||t),t||s},O={$:!0,_$:void 0,yy:f},_=!1;try{if(this.__reentrant_call_depth++,e.setInput(t,f),"function"===typeof e.canIUse)e.canIUse().fastLex&&(w=h);for(i[u]=null,o[u]=0,r[u]=0,++u,this.pre_parse&&this.pre_parse.call(this,f),f.pre_parse&&f.pre_parse.call(this,f),x=o[u-1];;){if(p=x,this.defaultActions[p])d=2,x=this.defaultActions[p];else if(c||(c=w()),v=a[p]&&a[p][c]||l,x=v[1],!(d=v[0])){var E,k=this.describeSymbol(c)||c,S=this.collect_expected_token_set(p);E="number"===typeof e.yylineno?"Parse error on line "+(e.yylineno+1)+": ":"Parse error: ","function"===typeof e.showPosition&&(E+="\n"+e.showPosition(69,10)+"\n"),S.length?E+="Expecting "+S.join(", ")+", got unexpected "+k:E+="Unexpected "+k,g=this.constructParseErrorInfo(E,null,S,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break}switch(d){default:if(d instanceof Array){g=this.constructParseErrorInfo("Parse Error: multiple actions possible at state: "+p+", token: "+c,null,null,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break}g=this.constructParseErrorInfo("Parsing halted. No viable error recovery approach available due to internal system failure.",null,null,!1),"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y);break;case 1:r[u]=c,i[u]=e.yytext,o[u]=x,++u,c=0;continue;case 2:if(m=(b=this.productions_[x-1])[1],"undefined"!==typeof(y=this.performAction.call(O,x,u-1,i))){_=y;break}u-=m;var M=b[0];r[u]=M,i[u]=O.$,x=a[o[u-1]][M],o[u]=x,++u;continue;case 3:-2!==u&&(_=!0,u--,"undefined"!==typeof i[u]&&(_=i[u]))}break}}catch(j){if(j instanceof this.JisonParserError)throw j;if(e&&"function"===typeof e.JisonLexerError&&j instanceof e.JisonLexerError)throw j;g=this.constructParseErrorInfo("Parsing aborted due to exception.",j,null,!1),_=!1,"undefined"!==typeof(y=this.parseError(g.errStr,g,this.JisonParserError))&&(_=y)}finally{_=this.cleanupAfterParse(_,!0,!0),this.__reentrant_call_depth--}return _}};o.originalParseError=o.parseError,o.originalQuoteName=o.quoteName;var i=function(){function t(t,e){var n;if(Object.defineProperty(this,"name",{enumerable:!1,writable:!1,value:"JisonLexerError"}),null==t&&(t="???"),Object.defineProperty(this,"message",{enumerable:!1,writable:!0,value:t}),this.hash=e,e&&e.exception instanceof Error){var r=e.exception;this.message=r.message||t,n=r.stack}n||(Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,this.constructor):n=new Error(t).stack),n&&Object.defineProperty(this,"stack",{enumerable:!1,writable:!1,value:n})}"function"===typeof Object.setPrototypeOf?Object.setPrototypeOf(t.prototype,Error.prototype):t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.name="JisonLexerError";var e={EOF:1,ERROR:2,__currentRuleSet__:null,__error_infos:[],__decompressed:!1,done:!1,_backtrack:!1,_input:"",_more:!1,_signaled_error_token:!1,conditionStack:[],match:"",matched:"",matches:!1,yytext:"",offset:0,yyleng:0,yylineno:0,yylloc:null,constructLexErrorInfo:function(t,e,n){if(t=""+t,void 0==n&&(n=!(t.indexOf("\n")>0&&t.indexOf("^")>0)),this.yylloc&&n)if("function"===typeof this.prettyPrintRange){this.prettyPrintRange(this.yylloc);/\n\s*$/.test(t)||(t+="\n"),t+="\n Erroneous area:\n"+this.prettyPrintRange(this.yylloc)}else if("function"===typeof this.showPosition){var r=this.showPosition();r&&(t.length&&"\n"!==t[t.length-1]&&"\n"!==r[0]?t+="\n"+r:t+=r)}var o={errStr:t,recoverable:!!e,text:this.match,token:null,line:this.yylineno,loc:this.yylloc,yy:this.yy,lexer:this,destroy:function(){var t=!!this.recoverable;for(var e in this)this.hasOwnProperty(e)&&"object"===typeof e&&(this[e]=void 0);this.recoverable=t}};return this.__error_infos.push(o),o},parseError:function(t,e,n){if(n||(n=this.JisonLexerError),this.yy){if(this.yy.parser&&"function"===typeof this.yy.parser.parseError)return this.yy.parser.parseError.call(this,t,e,n)||this.ERROR;if("function"===typeof this.yy.parseError)return this.yy.parseError.call(this,t,e,n)||this.ERROR}throw new n(t,e)},yyerror:function(t){var e="";this.yylloc&&(e=" on line "+(this.yylineno+1));var n=this.constructLexErrorInfo("Lexical error"+e+": "+t,this.options.lexerErrorsAreRecoverable),r=Array.prototype.slice.call(arguments,1);return r.length&&(n.extra_error_attributes=r),this.parseError(n.errStr,n,this.JisonLexerError)||this.ERROR},cleanupAfterLex:function(t){if(this.setInput("",{}),!t){for(var e=this.__error_infos.length-1;e>=0;e--){var n=this.__error_infos[e];n&&"function"===typeof n.destroy&&n.destroy()}this.__error_infos.length=0}return this},clear:function(){this.yytext="",this.yyleng=0,this.match="",this.matches=!1,this._more=!1,this._backtrack=!1;var t=this.yylloc?this.yylloc.last_column:0;this.yylloc={first_line:this.yylineno+1,first_column:t,last_line:this.yylineno+1,last_column:t,range:[this.offset,this.offset]}},setInput:function(t,e){if(this.yy=e||this.yy||{},!this.__decompressed){for(var n=this.rules,r=0,o=n.length;r1){this.yylineno-=n.length-1,this.yylloc.last_line=this.yylineno+1;var r=this.match,o=r.split(/(?:\r\n?|\n)/g);1===o.length&&(o=(r=this.matched).split(/(?:\r\n?|\n)/g)),this.yylloc.last_column=o[o.length-1].length}else this.yylloc.last_column-=e;return this.yylloc.range[1]=this.yylloc.range[0]+this.yyleng,this.done=!1,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else{var t="";this.yylloc&&(t=" on line "+(this.yylineno+1));var e=this.constructLexErrorInfo("Lexical error"+t+": You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).",!1);this._signaled_error_token=this.parseError(e.errStr,e,this.JisonLexerError)||this.ERROR}return this},less:function(t){return this.unput(this.match.slice(t))},pastInput:function(t,e){var n=this.matched.substring(0,this.matched.length-this.match.length);t<0?t=n.length:t||(t=20),e<0?e=n.length:e||(e=1);var r=(n=n.substr(2*-t-2)).replace(/\r\n|\r/g,"\n").split("\n");return(n=(r=r.slice(-e)).join("\n")).length>t&&(n="..."+n.substr(-t)),n},upcomingInput:function(t,e){var n=this.match;t<0?t=n.length+this._input.length:t||(t=20),e<0?e=t:e||(e=1),n.length<2*t+2&&(n+=this._input.substring(0,2*t+2));var r=n.replace(/\r\n|\r/g,"\n").split("\n");return(n=(r=r.slice(0,e)).join("\n")).length>t&&(n=n.substring(0,t)+"..."),n},showPosition:function(t,e){var n=this.pastInput(t).replace(/\s/g," "),r=new Array(n.length+1).join("-");return n+this.upcomingInput(e).replace(/\s/g," ")+"\n"+r+"^"},deriveLocationInfo:function(t,e,n,r){var o={first_line:1,first_column:0,last_line:1,last_column:0,range:[0,0]};return t&&(o.first_line=0|t.first_line,o.last_line=0|t.last_line,o.first_column=0|t.first_column,o.last_column=0|t.last_column,t.range&&(o.range[0]=0|t.range[0],o.range[1]=0|t.range[1])),(o.first_line<=0||o.last_line=o.first_line)&&(o.last_line=0|r.last_line,o.last_column=0|r.last_column,r.range&&(o.range[1]=0|r.range[1]))),o.last_line<=0&&(o.first_line<=0?(o.first_line=this.yylloc.first_line,o.last_line=this.yylloc.last_line,o.first_column=this.yylloc.first_column,o.last_column=this.yylloc.last_column,o.range[0]=this.yylloc.range[0],o.range[1]=this.yylloc.range[1]):(o.last_line=this.yylloc.last_line,o.last_column=this.yylloc.last_column,o.range[1]=this.yylloc.range[1])),o.first_line<=0&&(o.first_line=o.last_line,o.first_column=0,o.range[1]=o.range[0]),o.first_column<0&&(o.first_column=0),o.last_column<0&&(o.last_column=o.first_column>0?o.first_column:80),o},prettyPrintRange:function(t,e,n){t=this.deriveLocationInfo(t,e,n);var r=(this.matched+this._input).split("\n"),o=Math.max(1,e?e.first_line:t.first_line-3),i=Math.max(1,n?n.last_line:t.last_line+1),a=1+Math.log10(1|i)|0,u=new Array(a).join(" "),c=[],s=r.slice(o-1,i+1).map((function(e,n){var r=n+o,i=(u+r).substr(-a)+": "+e,s=new Array(a+1).join("^"),l=3,f=0;(r===t.first_line?(l+=t.first_column,f=Math.max(2,(r===t.last_line?t.last_column:e.length)-t.first_column+1)):r===t.last_line?f=Math.max(2,t.last_column+1):r>t.first_line&&r0&&c.push(n));return i=i.replace(/\t/g," ")}));if(c.length>4){var l=c[1]+1,f=c[c.length-2]-1,h=new Array(a+1).join(" ")+" (...continued...)";h+="\n"+new Array(a+1).join("-")+" (---------------)",s.splice(l,f-l+1,h)}return s.join("\n")},describeYYLLOC:function(t,e){var n,r=t.first_line,o=t.last_line,i=t.first_column,a=t.last_column;if(0===o-r?(n="line "+r+", ",n+=a-i<=1?"column "+i:"columns "+i+" .. "+a):n="lines "+r+"(column "+i+") .. "+o+"(column "+a+")",t.range&&e){var u=t.range[0],c=t.range[1]-1;n+=c<=u?" {String Offset: "+u+"}":" {String Offset range: "+u+" .. "+c+"}"}return n},test_match:function(t,e){var n,r,o,i,a;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.yylloc.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column,range:this.yylloc.range.slice(0)},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done}),a=(i=t[0]).length,(r=i.split(/(?:\r\n?|\n)/g)).length>1?(this.yylineno+=r.length-1,this.yylloc.last_line=this.yylineno+1,this.yylloc.last_column=r[r.length-1].length):this.yylloc.last_column+=a,this.yytext+=i,this.match+=i,this.matched+=i,this.matches=t,this.yyleng=this.yytext.length,this.yylloc.range[1]+=a,this.offset+=a,this._more=!1,this._backtrack=!1,this._input=this._input.slice(a),n=this.performAction.call(this,this.yy,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var u in o)this[u]=o[u];return this.__currentRuleSet__=null,!1}return!!this._signaled_error_token&&(n=this._signaled_error_token,this._signaled_error_token=!1,n)},next:function(){if(this.done)return this.clear(),this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||this.clear();var o=this.__currentRuleSet__;if(!o&&(!(o=this.__currentRuleSet__=this._currentRules())||!o.rules)){var i="";this.options.trackPosition&&(i=" on line "+(this.yylineno+1));var a=this.constructLexErrorInfo("Internal lexer engine error"+i+': The lex grammar programmer pushed a non-existing condition name "'+this.topState()+'"; this is a fatal error and should be reported to the application programmer team!',!1);return this.parseError(a.errStr,a,this.JisonLexerError)||this.ERROR}for(var u=o.rules,c=o.__rule_regexes,s=o.__rule_count,l=1;l<=s;l++)if((n=this._input.match(c[l]))&&(!e||n[0].length>e[0].length)){if(e=n,r=l,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,u[l])))return t;if(this._backtrack){e=void 0;continue}return!1}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,u[r]))&&t;if(this._input){i="";this.options.trackPosition&&(i=" on line "+(this.yylineno+1));a=this.constructLexErrorInfo("Lexical error"+i+": Unrecognized text.",this.options.lexerErrorsAreRecoverable);var f=this._input,h=this.topState(),p=this.conditionStack.length;return(t=this.parseError(a.errStr,a,this.JisonLexerError)||this.ERROR)===this.ERROR&&(this.matches||f!==this._input||h!==this.topState()||p!==this.conditionStack.length||this.input()),t}return this.done=!0,this.clear(),this.EOF},lex:function(){var t;for("function"===typeof this.pre_lex&&(t=this.pre_lex.call(this,0)),"function"===typeof this.options.pre_lex&&(t=this.options.pre_lex.call(this,t)||t),this.yy&&"function"===typeof this.yy.pre_lex&&(t=this.yy.pre_lex.call(this,t)||t);!t;)t=this.next();return this.yy&&"function"===typeof this.yy.post_lex&&(t=this.yy.post_lex.call(this,t)||t),"function"===typeof this.options.post_lex&&(t=this.options.post_lex.call(this,t)||t),"function"===typeof this.post_lex&&(t=this.post_lex.call(this,t)||t),t},fastLex:function(){for(var t;!t;)t=this.next();return t},canIUse:function(){return{fastLex:!("function"===typeof this.pre_lex||"function"===typeof this.options.pre_lex||this.yy&&"function"===typeof this.yy.pre_lex||this.yy&&"function"===typeof this.yy.post_lex||"function"===typeof this.options.post_lex||"function"===typeof this.post_lex)&&"function"===typeof this.fastLex}},begin:function(t){return this.pushState(t)},pushState:function(t){return this.conditionStack.push(t),this.__currentRuleSet__=null,this},popState:function(){return this.conditionStack.length-1>0?(this.__currentRuleSet__=null,this.conditionStack.pop()):this.conditionStack[0]},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]]:this.conditions.INITIAL},stateStackSize:function(){return this.conditionStack.length},options:{trackPosition:!0},JisonLexerError:t,performAction:function(t,e,n){if(1!==e)return this.simpleCaseActionClusters[e]},simpleCaseActionClusters:{0:13,2:5,3:6,4:3,5:4,6:15,7:15,8:15,9:15,10:15,11:15,12:16,13:16,14:16,15:16,16:17,17:17,18:18,19:18,20:19,21:19,22:19,23:20,24:21,25:22,26:23,27:25,28:24,29:26,30:27,31:28,32:11,33:9,34:12,35:10,36:7,37:8,38:14,39:1},rules:[/^(?:(--[\d\-A-Za-z]*))/,/^(?:\s+)/,/^(?:\*)/,/^(?:\/)/,/^(?:\+)/,/^(?:-)/,/^(?:(\d+(\.\d*)?|\.\d+)px\b)/,/^(?:(\d+(\.\d*)?|\.\d+)cm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)mm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)in\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pt\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pc\b)/,/^(?:(\d+(\.\d*)?|\.\d+)deg\b)/,/^(?:(\d+(\.\d*)?|\.\d+)grad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)turn\b)/,/^(?:(\d+(\.\d*)?|\.\d+)s\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ms\b)/,/^(?:(\d+(\.\d*)?|\.\d+)Hz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)kHz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpi\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpcm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dppx\b)/,/^(?:(\d+(\.\d*)?|\.\d+)em\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ex\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ch\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rem\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vw\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vh\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmin\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmax\b)/,/^(?:(\d+(\.\d*)?|\.\d+)%)/,/^(?:(\d+(\.\d*)?|\.\d+)\b)/,/^(?:(calc))/,/^(?:(var))/,/^(?:([a-z]+))/,/^(?:\()/,/^(?:\))/,/^(?:,)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};return e}();function a(){this.yy={}}return o.lexer=i,a.prototype=o,o.Parser=a,new a}();e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)}},40082:function(t,e,n){var r=n(83257),o=n(42993),i=n(19581);function a(t){return this instanceof a?(this.nodes=r(t),this):new a(t)}a.prototype.toString=function(){return Array.isArray(this.nodes)?i(this.nodes):""},a.prototype.walk=function(t,e){return o(this.nodes,t,e),this},a.unit=n(54119),a.walk=o,a.stringify=i,t.exports=a},83257:function(t){var e="(".charCodeAt(0),n=")".charCodeAt(0),r="'".charCodeAt(0),o='"'.charCodeAt(0),i="\\".charCodeAt(0),a="/".charCodeAt(0),u=",".charCodeAt(0),c=":".charCodeAt(0),s="*".charCodeAt(0);t.exports=function(t){for(var l,f,h,p,d,y,v,g,m=[],b=t,x=0,w=b.charCodeAt(x),O=b.length,_=[{nodes:m}],E=0,k="",S="",M="";x=48&&a<=57)f=!0;else if(a===o||a===i){if(l>-1)break;l=u}else if(a===r){if(s)break;s=!0}else{if(a!==n&&a!==e)break;if(0!==u)break}u+=1}return l+1===u&&u--,!!f&&{number:t.slice(0,u),unit:t.slice(u)}}},42993:function(t){t.exports=function t(e,n,r){var o,i,a,u;for(o=0,i=e.length;o epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\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","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled 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 throttled 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
    I appear first
    \n *
    I replace the above
    \n *
    \n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\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\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\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 // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","conversions","Math","PI","value","sourceUnit","targetUnit","precision","Error","converted","pow","parseInt","round","pi","tau","epsilon","tauEpsilon","Path","this","_x0","_y0","_x1","_y1","_","path","constructor","moveTo","x","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","start","stop","step","n","max","ceil","range","band","bandwidth","scale","ordinal","unknown","undefined","domain","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","reverse","floor","values","sequence","map","rangeRound","padding","min","copy","initRange","pointish","point","initInterpolator","interpolator","implicit","Symbol","index","Map","d","get","set","slice","has","from","globalScope","ONE","MAX_DIGITS","Decimal","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","add","carry","e","k","len","xd","yd","Ctor","pr","s","unshift","pop","checkInt32","digitsToString","ws","indexOfLastWord","str","getZeroString","absoluteValue","comparedTo","cmp","j","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","base","wpr","ln","minus","sub","subtract","modulo","mod","q","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","t","toExponential","indexOf","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","val","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c","c0","numerator","charAt","parseDecimal","replace","search","substring","charCodeAt","rd","doRound","xdi","xe","xLTy","isExp","arr","config","obj","p","v","ps","clone","test","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","getOwnPropertySymbols","concat","listeners","handlers","ee","listenerCount","emit","a2","a3","a4","a5","args","removeListener","on","removeAllListeners","off","prefixed","func","thisArg","array","predicate","baseIndexOf","require","comparator","string","split","baseEach","collection","result","isSymbol","iteratee","current","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","other","baseFindIndex","baseIsNaN","strictIndexOf","isArrayLike","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","iteratees","orders","object","nativeCeil","nativeMax","end","overRest","setToString","constant","defineProperty","baseSetToString","comparer","sort","trimmedEndIndex","reTrimStart","SetCache","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","includes","isCommon","seen","outer","seenIndex","baseSlice","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","keys","findIndexFunc","iterable","baseRange","isIterateeCall","toFinite","Set","noop","reHasUnicode","RegExp","isArguments","spreadableSymbol","isConcatSpreadable","isIndex","isObject","type","transform","otherArgs","shortOut","nativeNow","Date","now","count","lastCalled","stamp","remaining","asciiToArray","unicodeToArray","reWhitespace","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","match","nativeMin","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","arrayEvery","baseEvery","guard","find","createFind","baseGetTag","isObjectLike","isNumber","baseAssignValue","baseForOwn","baseExtremum","baseGt","baseLt","root","createRange","arraySome","baseSome","baseOrderBy","baseRest","sortBy","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseUniq","upperFirst","createCaseFirst","performance","process","hrtime","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","uptime","loadTime","getTime","window","global","vendors","suffix","raf","caf","last","id","queue","callback","_now","next","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","setRafTimeout","timeout","currTime","shouldUpdate","_typeof","iterator","_toArray","_arrayWithHoles","iter","_iterableToArray","o","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","createAnimateManager","handleChange","shouldStop","setStyle","_style","_styles","curr","restStyles","bind","style","subscribe","_handleChange","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","param","mapObject","reduce","res","translateStyle","isTransition","camelName","toUpperCase","styleVal","property","generatePrefixStyle","getTransitionVal","props","duration","easing","prop","toLowerCase","_slicedToArray","_arr","_n","_d","_e","_s","_i","done","err","_iterableToArrayLimit","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_len","_key","_easing$1$split$0$spl","parseFloat","_easing$1$split$0$spl2","every","num","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","alpha","begin","needContinue","_ref","to","calStepperVals","preVals","steps","nextStepVals","_easing2","velocity","render","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","update","currStyle","finalStyle","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_defineProperties","descriptor","_setPrototypeOf","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","Animate","_PureComponent","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_this$props","isActive","attributeName","children","handleStyleChange","changeStyle","state","_this$props2","canBegin","mounted","runAnimation","prevProps","_this$props3","shouldReAnimate","deepEqual","isTriggered","manager","stopJSAnimation","_newState","setState","newState","unSubscribe","_this2","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","_len2","_key2","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","others","onAnimationReStart","Children","stateStyle","cloneContainer","container","_container$props","_container$props$styl","className","cloneElement","React","child","PureComponent","displayName","propTypes","PropTypes","defaultProps","_extends","assign","Number","isFinite","parseDurationOfSingleTransition","entry","AnimateGroupChild","_Component","handleEnter","node","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","Component","AnimateGroup","component","appear","enter","leave","TransitionGroup","_interopRequireDefault","__esModule","element","classList","_hasClass","setAttribute","baseVal","contains","replaceClassName","origClass","classToRemove","remove","newObj","desc","_interopRequireWildcard","_addClass","_removeClass","_react","_Transition","addClass","removeClass","CSSTransition","_React$Component","appearing","getClassNames","removeClasses","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExiting","onExited","isStringClassNames","_proto","_this$getClassNames6","scrollTop","createElement","_default","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","idx","originalArgs","_child$props","toArray","findDOMNode","inProp","in","_React$Children$toArr","first","second","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","getChildContext","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","timeouts","enterTimeout","safeSetState","onTransitionEnd","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","childProps","only","contextTypes","childContextTypes","_propTypes","_ChildMapping","firstRender","appeared","nextProps","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","isRequired","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","classNamesShape","timeoutsShape","Cross","width","height","top","left","filterProps","getPath","CartesianAxis","tick","ticks","viewBox","minTickGap","orientation","interval","tickFormatter","unit","Global","getNumberIntervalTicks","getTicksStart","getTicksEnd","_ref2","preserveEnd","sizeKey","unitSize","getStringSize","mathSign","coordinate","tail","tailContent","_isFunction","tailSize","tailGap","tickCoord","isShow","content","size","gap","_ref3","option","Text","restProps","viewBoxOld","restPropsOld","shallowEqual","data","tx","ty","tickSize","mirror","tickMargin","finalTickSize","line","textAnchor","verticalAnchor","_this$props5","axisLine","fill","needHeight","needWidth","_get","_this$props6","tickLine","stroke","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","items","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","payload","visibleTicksCount","Layer","adaptEventsOfChild","renderTickItem","_this$props7","ticksGenerator","hide","_this$props8","noTicksProps","renderAxisLine","renderTicks","Label","isTouch","changedTouches","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","pageX","attachDragEndListener","startX","handleTravellerDragStart","endX","lineY","renderDefaultTraveller","travellerWidth","updateId","startIndex","endIndex","prevData","prevUpdateId","prevTravellerWidth","prevX","prevWidth","scalePoint","_range","scaleValues","createScale","middle","lastIndex","minIndex","getIndexInRange","maxIndex","dataKey","text","getValueByDataKey","addEventListener","removeEventListener","_this$state","onChange","delta","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","_this$state2","prevValue","isFullGap","chartElement","margin","compact","travellerX","traveller","travellerProps","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","cursor","renderTraveller","fillOpacity","_this$props9","_this$state3","attrs","pointerEvents","getTextOfTick","_this$props10","alwaysShowText","_this$state4","layerClass","isPanoramic","onMouseMove","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","right","bottom","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","clipPathId","isX","isNumOrStr","isY","warn","xAxis","yAxis","scales","createLabeledScales","bandAware","isInRange","getCoordinate","cx","cy","shape","dotProps","clipPath","renderDot","isFront","xAxisId","yAxisId","strokeWidth","Dot","ReferenceLine","fixedX","fixedY","segment","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","position","yCoord","coord","points","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","rectWithPoints","getRect","renderRect","Rectangle","detectReferenceElementsDomain","axisId","axisType","specifiedTicks","lines","findAllByType","dots","elements","areas","idKey","valueKey","finalDomain","el","key1","key2","value1","value2","eventCenter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","isFinit","defer","setImmediate","deferClear","clearImmediate","getDisplayedData","item","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","allowDuplicatedCategory","entries","findEntryInArray","getTooltipItem","getTooltipData","layout","rangeObj","rangeData","chartX","chartY","pos","angle","radius","calculateTooltipPos","orderedTooltipTicks","axis","tooltipTicks","calculateActiveTickIndex","activePayload","activeCoordinate","_angle","_radius","polarToCartesian","getActiveCoordinate","activeTooltipIndex","getAxisMap","_ref4","_ref4$axisType","AxisComp","stackGroups","axisIdKey","axes","axisMap","stackOffset","isCategorical","isCategoricalAxis","allowDataOverflow","duplicateDomain","categoricalDomain","getDomainOfDataByKey","duplicate","hasDuplicate","parseDomainOfCategoryAxis","_isNil","errorBarsDomain","parseErrorBarsOfAxis","hasStack","getDomainOfStackGroups","getDomainOfItemsWithSameAxis","parseSpecifiedDomain","axisDomain","originalDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","findChildByType","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","_ref6","_class","_temp","chartName","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","legendContent","formatAxisMap","getFormatItems","currentState","offset","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","some","getDisplayName","hasGraphicalBarItem","sizeList","getBarSizeList","formattedItems","_item$props","childMaxBarSize","numericAxisId","cateAxisId","axisObj","_objectSpread6","getTicksOfAxis","cateAxis","cateTicks","stackedData","getStackedDataOfItem","itemIsBar","bandSize","getBandSizeOfAxis","barPosition","_ref7","_getBandSizeOfAxis","barBandSize","getBarPosition","_objectSpread7","composedFn","getComposedData","childIndex","parseChildIndex","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","validateWidthHeight","reverseStackOrder","_getAxisNameByLayout2","getStackGroupsByAxisId","_ref5","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","appendOffsetOfLegend","calculateOffset","legendBBox","ticksObj","getAnyElementOfObject","_sortBy","tooltipAxisBandSize","tooltipTicksGenerator","formattedGraphicalItems","CategoricalChartWrapper","_props","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","box","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","eventName","getReactEventByType","handleClick","onClick","_nextState2","handleMouseDown","handleMouseUp","onMouseUp","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","_ref10","getCoordinatesOfGrid","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","Curve","getCursorRectangle","_this$getCursorPoints","getCursorPoints","startAngle","endAngle","innerRadius","outerRadius","Sector","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","_find","_every","chartWidth","chartHeight","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","_isArray","renderLegend","legendWidth","getLegendProps","otherProps","ref","legend","onBBoxUpdate","renderTooltip","tooltipItem","Tooltip","_this$state5","label","renderBrush","_this$state6","combineEventHandlers","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","getMainColorOfGraphicItem","adaptEventHandlers","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$props2","baseLine","_item$item$props2","hasActive","itemEvents","trigger","onCLick","graphicalItem","specifiedKey","renderCustomized","uniqueId","throttleDelay","_throttle","_isBoolean","shared","eventType","containerOffset","getOffset","calculateChartCoordinate","inRange","_this$state9","xScale","yScale","xValue","invert","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","inRangeOfSector","tooltipEvents","onTouchEnd","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","isInRectangle","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","Surface","renderClipPath","renderByOrder","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","isChildrenEqual","newUpdateId","dot","renderRadialLabel","labelProps","labelAngle","direction","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","_props$className","textBreakAll","formatter","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_x","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","_isObject","isPercent","getPercentValue","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","valueAccessor","_last","LabelList","idProps","parseLabelList","ckeckPropsLabel","explicitChilren","implicitLabelList","atan2","draw","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","sizeType","symbolFactory","_upperFirst","getSymbolFactory","symbol","buffer","circle","shapeSymbol","calculateAreaSize","registerSymbol","factory","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","color","inactive","strokeDasharray","legendIcon","iconProps","iconSize","itemStyle","display","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","renderIcon","textAlign","renderItems","defaultUniqBy","getUniqPayload","_uniqBy","wrapperNode","boxWidth","boxHeight","updateBBox","getBoundingClientRect","hPos","vPos","getBBoxSnapshot","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","renderContent","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","lineWidth","shouldLimitLines","maxLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","lineHeight","capHeight","textProps","startDy","reduceCSSCalc","transforms","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","restricted","unrestricted","translateX","translateY","isAnimationActive","animationDuration","animationEasing","filterNull","finalPayload","hasPayload","visibility","useTranslate3d","cls","cursorStyle","svgView","version","that","_context","Basis","BasisClosed","BasisOpen","LinearClosed","Linear","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","m","Step","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","_t0","_y","px","py","i0","i1","defined","curve","curveLinear","output","defined0","pointX","pointY","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","lineFunction","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","minX","maxX","minY","maxY","totalLength","getTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","reversed","offsetKey","diff","smallestDistanceBetweenValues","Infinity","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","parseScale","realScaleType","checkDomainOfScale","getTicksOfScale","finalAxis","ScaleHelper","_offset","_offset2","EPS","_mapValues","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","compose","fns","firstFn","tailsFn","memoize","lastResult","rangeStep","getDigitCount","interpolateNumber","newA","uninterpolateNumber","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_getValidInterval3","_getValidInterval4","_getValidInterval5","_getValidInterval6","e10","e5","e2","tickIncrement","power","error","tickStep","step0","step1","f","lo","hi","mid","ascending","ascendingComparator","numbers","valueof","ascendingBisect","bisector","bisectRight","number","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","trim","exec","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","Hsl","hslConvert","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t2","t3","channels","displayable","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","zero","date","ArrayBuffer","isView","DataView","numberArray","normalize","bimap","interpolate","d0","d1","polymap","bisect","clamp","transformer","untransform","piecewise","input","interpolateValue","clamper","interpolateRound","u","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","coefficient","toLocaleString","formatRounded","locale","formatPrefix","prefixes","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","E","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","formatLocale","transformPow","transformSqrt","transformSquare","powish","square","unsquare","radial","squared","quickselect","newLeft","newRight","swap","quantile","Float64Array","value0","subarray","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","field","previous","millisecond","getMilliseconds","getUTCSeconds","minute","getSeconds","getMinutes","hour","getHours","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","month","setMonth","getMonth","getFullYear","year","setFullYear","utcMinute","setUTCSeconds","getUTCMinutes","utcHour","setUTCMinutes","getUTCHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","ticker","week","tickIntervals","tickInterval","utcWeek","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","I","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","order","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","parse","X","utcParse","defaultLocale","stackValue","stackSeries","defaultValue","filterNil","flattenData","_flatMap","_min","_max","_ticks$length","unsortedTicks","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","legendData","sectors","iconType","legendType","globalSize","_ref5$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","_ref6$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","legendBox","legendProps","newOffset","getDomainOfErrorBars","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","domains","tag","hasMin","hasMax","isGrid","isAll","niceTicks","scaleContent","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","chartType","d3Scales","_isString","findPositionOfBar","truncateByDomain","STACK_OFFSET_MAP","positive","negative","_isNaN","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","stack","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","_items","_item$props3","stackId","childGroup","opts","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","itemIndex","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","_value","isBar","bandWidth","orderedTicks","calculatedDomain","axisChild","_isEqual","_graphicalItem$props","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","styleString","cacheKey","measurementSpan","document","getElementById","body","appendChild","measurementSpanStyle","styleKey","textContent","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","pageY","_isNumber","idCounter","totalValue","validate","ary","cache","numberA","numberB","specifiedValue","isSsr","condition","radianToDegree","angleInRadian","getMaxRadius","_range2","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngleOfSector","formatAngle","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","isFragment","types","childType","_el$props","SVG_TAGS","isSvgElement","nextChildren","isSingleChildEqual","nextChild","renderMap","record","results","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","isSvg","inputProps","newHandler","originalHandler","getEventHandlerOfChild","for","$$typeof","A","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","contents","stringify","nodes","ast","parser","reducedAst","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","flip","_convert","_convert2","operator","isEqual","convertMathExpression","_node","op","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","calc","_reducer","prec","fallback","JisonParserError","msg","hash","stacktrace","exception","ex2","message","captureStackTrace","rv","trace","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","check","state_descriptions_","table","productions_","rule","bp","performAction","yystate","yysp","yyvstack","lexer","$","mode","goto","bt","defaultActions","bda","parseError","ExceptionClass","recoverable","destroy","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","token","assert","yyGetSharedState","dst","src","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","ex","expected","pei","errStr","yytext","token_id","yylineno","action","new_state","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","retval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","matched","matches","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","loc","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","clear","col","last_column","first_line","first_column","last_line","rules","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","ch","slice_len","ch2","unput","substr","pre_lines","more","reject","backtrack_lexer","less","pastInput","maxSize","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","actual","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","splice","describeYYLLOC","display_range_too","l2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","flex","pendingInput","activeCondition","conditionStackDepth","pushState","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","Parser","ValueParser","cb","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","colon","star","quote","escape","escapePos","whitespacePos","tokens","code","balanced","sourceIndex","unclosed","stringifyNode","custom","buf","customResult","EXP","dotted","sciPos","containsNumber"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2076.e7bf07b8.chunk.js b/portal-ui/build/static/js/2076.e7bf07b8.chunk.js deleted file mode 100644 index 27e9e5d6b..000000000 --- a/portal-ui/build/static/js/2076.e7bf07b8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2076],{42419:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");e.Z=a},99663:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.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");e.Z=a},86711:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.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");e.Z=a},22918:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.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-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z"}),"Casino");e.Z=a},29823:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(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");e.Z=a},27247:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(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");e.Z=a},94721:function(t,e,n){"use strict";var r=n(63366),o=n(87462),i=n(72791),a=n(28182),l=n(90767),c=n(12065),s=n(47630),u=n(93736),p=n(90133),f=n(80184),d=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],v=(0,s.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,n.absolute&&e.absolute,e[n.variant],n.light&&e.light,"vertical"===n.orientation&&e.vertical,n.flexItem&&e.flexItem,n.children&&e.withChildren,n.children&&"vertical"===n.orientation&&e.withChildrenVertical,"right"===n.textAlign&&"vertical"!==n.orientation&&e.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&e.textAlignLeft]}})((function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:e.palette.divider,borderBottomWidth:"thin"},n.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},n.light&&{borderColor:(0,c.Fq)(e.palette.divider,.08)},"inset"===n.variant&&{marginLeft:72},"middle"===n.variant&&"horizontal"===n.orientation&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},"middle"===n.variant&&"vertical"===n.orientation&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},"vertical"===n.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},n.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({},n.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,n=t.ownerState;return(0,o.Z)({},n.children&&"vertical"===n.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,o.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%"}})})),h=(0,s.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(t,e){var n=t.ownerState;return[e.wrapper,"vertical"===n.orientation&&e.wrapperVertical]}})((function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({display:"inline-block",paddingLeft:"calc(".concat(e.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(e.spacing(1)," * 1.2)")},"vertical"===n.orientation&&{paddingTop:"calc(".concat(e.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(e.spacing(1)," * 1.2)")})})),m=i.forwardRef((function(t,e){var n=(0,u.Z)({props:t,name:"MuiDivider"}),i=n.absolute,c=void 0!==i&&i,s=n.children,m=n.className,b=n.component,g=void 0===b?s?"div":"hr":b,y=n.flexItem,w=void 0!==y&&y,x=n.light,C=void 0!==x&&x,S=n.orientation,Z=void 0===S?"horizontal":S,O=n.role,j=void 0===O?"hr"!==g?"separator":void 0:O,P=n.textAlign,E=void 0===P?"center":P,A=n.variant,D=void 0===A?"fullWidth":A,T=(0,r.Z)(n,d),R=(0,o.Z)({},n,{absolute:c,component:g,flexItem:w,light:C,orientation:Z,role:j,textAlign:E,variant:D}),z=function(t){var e=t.absolute,n=t.children,r=t.classes,o=t.flexItem,i=t.light,a=t.orientation,c=t.textAlign,s={root:["root",e&&"absolute",t.variant,i&&"light","vertical"===a&&"vertical",o&&"flexItem",n&&"withChildren",n&&"vertical"===a&&"withChildrenVertical","right"===c&&"vertical"!==a&&"textAlignRight","left"===c&&"vertical"!==a&&"textAlignLeft"],wrapper:["wrapper","vertical"===a&&"wrapperVertical"]};return(0,l.Z)(s,p.V,r)}(R);return(0,f.jsx)(v,(0,o.Z)({as:g,className:(0,a.Z)(z.root,m),role:j,ref:e,ownerState:R},T,{children:s?(0,f.jsx)(h,{className:z.wrapper,ownerState:R,children:s}):null}))}));e.Z=m},63466:function(t,e,n){"use strict";n.d(e,{Z:function(){return C}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),l=n(28182),c=n(90767),s=n(14036),u=n(20890),p=n(93840),f=n(52930),d=n(47630),v=n(95159);function h(t){return(0,v.Z)("MuiInputAdornment",t)}var m,b=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),g=n(93736),y=n(80184),w=["children","className","component","disablePointerEvents","disableTypography","position","variant"],x=(0,d.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,e["position".concat((0,s.Z)(n.position))],!0===n.disablePointerEvents&&e.disablePointerEvents,e[n.variant]]}})((function(t){var e=t.theme,n=t.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:e.palette.action.active},"filled"===n.variant&&(0,r.Z)({},"&.".concat(b.positionStart,"&:not(.").concat(b.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),C=a.forwardRef((function(t,e){var n=(0,g.Z)({props:t,name:"MuiInputAdornment"}),r=n.children,d=n.className,v=n.component,b=void 0===v?"div":v,C=n.disablePointerEvents,S=void 0!==C&&C,Z=n.disableTypography,O=void 0!==Z&&Z,j=n.position,P=n.variant,E=(0,o.Z)(n,w),A=(0,f.Z)()||{},D=P;P&&A.variant,A&&!D&&(D=A.variant);var T=(0,i.Z)({},n,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:S,position:j,variant:D}),R=function(t){var e=t.classes,n=t.disablePointerEvents,r=t.hiddenLabel,o=t.position,i=t.size,a=t.variant,l={root:["root",n&&"disablePointerEvents",o&&"position".concat((0,s.Z)(o)),a,r&&"hiddenLabel",i&&"size".concat((0,s.Z)(i))]};return(0,c.Z)(l,h,e)}(T);return(0,y.jsx)(p.Z.Provider,{value:null,children:(0,y.jsx)(x,(0,i.Z)({as:b,ownerState:T,className:(0,l.Z)(R.root,d),ref:e},E,{children:"string"!==typeof r||O?(0,y.jsxs)(a.Fragment,{children:["start"===j?m||(m=(0,y.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,y.jsx)(u.Z,{color:"text.secondary",children:r})}))})}))},76998:function(t,e,n){"use strict";var r=n(42458),o={"text/plain":"Text","text/html":"Url",default:"Text"};t.exports=function(t,e){var n,i,a,l,c,s,u=!1;e||(e={}),n=e.debug||!1;try{if(a=r(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=t,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(r){if(r.stopPropagation(),e.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[e.format]||o.default;window.clipboardData.setData(i,t)}else r.clipboardData.clearData(),r.clipboardData.setData(e.format,t);e.onCopy&&(r.preventDefault(),e.onCopy(r.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(p){n&&console.error("unable to copy using execCommand: ",p),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",t),e.onCopy&&e.onCopy(window.clipboardData),u=!0}catch(p){n&&console.error("unable to copy using clipboardData: ",p),n&&console.error("falling back to prompt"),i=function(t){var e=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return t.replace(/#{\s*key\s*}/g,e)}("message"in e?e.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,t)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),a()}return u}},20821:function(t,e,n){var r=n(26050),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},26050:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},48573:function(t,e,n){var r=n(8092),o=n(50072),i=n(42582),a=Math.max,l=Math.min;t.exports=function(t,e,n){var c,s,u,p,f,d,v=0,h=!1,m=!1,b=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function g(e){var n=c,r=s;return c=s=void 0,v=e,p=t.apply(r,n)}function y(t){return v=t,f=setTimeout(x,e),h?g(t):p}function w(t){var n=t-d;return void 0===d||n>=e||n<0||m&&t-v>=u}function x(){var t=o();if(w(t))return C(t);f=setTimeout(x,function(t){var n=e-(t-d);return m?l(n,u-(t-v)):n}(t))}function C(t){return f=void 0,b&&c?g(t):(c=s=void 0,p)}function S(){var t=o(),n=w(t);if(c=arguments,s=this,d=t,n){if(void 0===f)return y(d);if(m)return clearTimeout(f),f=setTimeout(x,e),g(d)}return void 0===f&&(f=setTimeout(x,e)),p}return e=i(e)||0,r(n)&&(h=!!n.leading,u=(m="maxWait"in n)?a(i(n.maxWait)||0,e):u,b="trailing"in n?!!n.trailing:b),S.cancel=function(){void 0!==f&&clearTimeout(f),v=0,c=d=s=f=void 0},S.flush=function(){return void 0===f?p:C(o())},S}},50072:function(t,e,n){var r=n(97009);t.exports=function(){return r.Date.now()}},42582:function(t,e,n){var r=n(20821),o=n(8092),i=n(70152),a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=l.test(t);return n||c.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}},568:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CopyToClipboard=void 0;var r=i(n(72791)),o=i(n(76998));function i(t){return t&&t.__esModule?t:{default:t}}function a(t){return a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){for(var n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}}}]); -//# sourceMappingURL=2076.e7bf07b8.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.4cc30535.chunk.js b/portal-ui/build/static/js/2112.4cc30535.chunk.js new file mode 100644 index 000000000..fd1b04faa --- /dev/null +++ b/portal-ui/build/static/js/2112.4cc30535.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2112],{9505:function(e,n,t){var a=t(29439),r=t(72791),o=t(81207);n.Z=function(e,n){var t=(0,r.useState)(!1),c=(0,a.Z)(t,2),i=c[0],s=c[1];return[i,function(t,a,r){s(!0),o.Z.invoke(t,a,r).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},32112:function(e,n,t){t.r(n);var a=t(29439),r=t(72791),o=t(51691),c=t(21435),i=t(61889),s=t(60364),u=t(42649),l=t(9505),f=t(2148),p=t(93656),d=t(80184),m=(0,s.$j)(null,{setErrorSnackMessage:u.Ih});n.default=m((function(e){var n=e.deleteOpen,t=e.selectedPVC,s=e.closeDeleteModalAndRefresh,u=e.setErrorSnackMessage,m=(0,r.useState)(""),h=(0,a.Z)(m,2),C=h[0],v=h[1],Z=(0,l.Z)((function(){return s(!0)}),(function(e){return u(e)})),x=(0,a.Z)(Z,2),j=x[0],k=x[1];return(0,d.jsx)(f.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,d.jsx)(p.Nv,{}),isLoading:j,onConfirm:function(){C===t.name?k("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):u({errorMessage:"PVC name is incorrect",detailedError:""})},onClose:function(){return s(!1)},confirmButtonProps:{disabled:C!==t.name||j},confirmationContent:(0,d.jsxs)(o.Z,{children:["To continue please type ",(0,d.jsx)("b",{children:t.name})," in the box.",(0,d.jsx)(i.ZP,{item:!0,xs:12,children:(0,d.jsx)(c.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){v(e.target.value)},label:"",value:C})})]})})}))}}]); +//# sourceMappingURL=2112.4cc30535.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.4cc30535.chunk.js.map b/portal-ui/build/static/js/2112.4cc30535.chunk.js.map new file mode 100644 index 000000000..38ad42b65 --- /dev/null +++ b/portal-ui/build/static/js/2112.4cc30535.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2112.4cc30535.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,wJCuEVC,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,GAAkCb,EAAAA,EAAAA,UAAS,IAA3C,eAAOiB,EAAP,KAAkBC,EAAlB,KAMA,GAAyCC,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACN,GAAD,OAA+BG,EAAqBH,MAGvE,eAAOU,EAAP,KAAsBC,EAAtB,KAgBA,OACE,SAAC,IAAD,CACEC,MAAK,aACLC,YAAa,SACbC,OAAQV,EACRW,WAAW,SAAC,KAAD,IACXxB,UAAWmB,EACXM,UArBoB,WAClBT,IAAcF,EAAYY,KAO9BN,EACE,SADa,6BAESN,EAAYa,UAFrB,oBAE0Cb,EAAYc,OAFtD,gBAEoEd,EAAYY,OAR7Fd,EAAqB,CACnBiB,aAAc,wBACdC,cAAe,MAkBjBC,QA1BY,kBAAMhB,GAA2B,IA2B7CiB,mBAAoB,CAClBC,SAAUjB,IAAcF,EAAYY,MAAQP,GAE9Ce,qBACE,UAAC,IAAD,uCAC0B,uBAAIpB,EAAYY,OAD1C,gBAEE,SAAC,KAAD,CAAMS,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEC,GAAG,aACHX,KAAK,aACLY,SAAU,SAACC,GACTtB,EAAasB,EAAMC,OAAOC,QAE5BC,MAAM,GACND,MAAOzB","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.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","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","connector","connect","setErrorSnackMessage","deleteOpen","selectedPVC","closeDeleteModalAndRefresh","retypePVC","setRetypePVC","useApi","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","name","namespace","tenant","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","item","xs","id","onChange","event","target","value","label"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.6991f0b0.chunk.js b/portal-ui/build/static/js/2112.6991f0b0.chunk.js deleted file mode 100644 index 3edc98982..000000000 --- a/portal-ui/build/static/js/2112.6991f0b0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2112],{9505:function(e,n,t){var o=t(29439),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(29439),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(93656),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.6991f0b0.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.6991f0b0.chunk.js.map b/portal-ui/build/static/js/2112.6991f0b0.chunk.js.map deleted file mode 100644 index 841712429..000000000 --- a/portal-ui/build/static/js/2112.6991f0b0.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2112.6991f0b0.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/2180.c83301fc.chunk.js b/portal-ui/build/static/js/2180.c83301fc.chunk.js new file mode 100644 index 000000000..0dc53aa3f --- /dev/null +++ b/portal-ui/build/static/js/2180.c83301fc.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2180],{47494:function(e,t,n){"use strict";n.r(t);var o=n(29439),c=n(1413),r=n(72791),i=n(60364),a=n(11135),s=n(25787),l=n(10703),u=n(42649),d=n(92983),f=n(81207),p=n(47919),m=n(61889),h=n(23814),Z=n(56087),v=n(60680),k=n(38442),x=n(75578),b=n(40603),C=n(80184),g=(0,x.Z)(r.lazy((function(){return n.e(4619).then(n.bind(n,94619))}))),S=(0,x.Z)(r.lazy((function(){return n.e(8990).then(n.bind(n,8990))}))),j=(0,x.Z)(r.lazy((function(){return n.e(8455).then(n.bind(n,58455))}))),_=(0,i.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:u.Ih});t.default=(0,s.Z)((function(e){return(0,a.Z)((0,c.Z)((0,c.Z)((0,c.Z)((0,c.Z)((0,c.Z)({"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},listButton:{marginLeft:"10px",align:"right"}},h.VX),h.OR),h.qg),h.cx),(0,h.Bz)(e.spacing(4))))}))(_((function(e){var t=e.classes,n=e.match,c=e.setErrorSnackMessage,i=e.loadingBucket,a=(e.bucketInfo,(0,r.useState)(!0)),s=(0,o.Z)(a,2),u=s[0],h=s[1],x=(0,r.useState)([]),_=(0,o.Z)(x,2),z=_[0],E=_[1],B=(0,r.useState)(!1),F=(0,o.Z)(B,2),I=F[0],P=F[1],y=(0,r.useState)(!1),w=(0,o.Z)(y,2),T=w[0],L=w[1],O=(0,r.useState)(""),A=(0,o.Z)(O,2),M=A[0],R=A[1],U=(0,r.useState)(!1),V=(0,o.Z)(U,2),H=V[0],K=V[1],D=(0,r.useState)(""),Y=(0,o.Z)(D,2),N=Y[0],G=Y[1],q=(0,r.useState)(""),X=(0,o.Z)(q,2),$=X[0],J=X[1],Q=n.params.bucketName,W=(0,k.F)(Q,[Z.Ft.S3_GET_BUCKET_POLICY]),ee=(0,k.F)(Q,[Z.Ft.S3_DELETE_BUCKET_POLICY]),te=(0,k.F)(Q,[Z.Ft.S3_PUT_BUCKET_POLICY]);(0,r.useEffect)((function(){i&&h(!0)}),[i,h]);var ne=[{type:"delete",disableButtonFunction:function(){return!ee},onClick:function(e){L(!0),R(e.prefix)}},{type:"view",disableButtonFunction:function(){return!te},onClick:function(e){G(e.prefix),J(e.access),K(!0)}}];(0,r.useEffect)((function(){u&&(W?f.Z.invoke("GET","/api/v1/bucket/".concat(Q,"/access-rules")).then((function(e){E(e.accessRules),h(!1)})).catch((function(e){c(e),h(!1)})):h(!1))}),[u,c,W,Q]);return(0,C.jsxs)(r.Fragment,{children:[I&&(0,C.jsx)(g,{modalOpen:I,onClose:function(){P(!1),h(!0)},bucket:Q}),T&&(0,C.jsx)(S,{modalOpen:T,onClose:function(){L(!1),h(!0)},bucket:Q,toDelete:M}),H&&(0,C.jsx)(j,{modalOpen:H,onClose:function(){K(!1),h(!0)},bucket:Q,toEdit:N,initial:$}),(0,C.jsxs)(m.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,C.jsx)(v.Z,{children:"Access Rules"}),(0,C.jsx)(k.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY,Z.Ft.S3_PUT_BUCKET_POLICY],resource:Q,matchAll:!0,errorProps:{disabled:!0},children:(0,C.jsx)(b.Z,{tooltip:"Add Access Rule",onClick:function(){P(!0)},text:"Add Access Rule",icon:(0,C.jsx)(p.Z,{}),color:"primary",variant:"contained"})})]}),(0,C.jsx)(l.Z,{className:t.tableBlock,children:(0,C.jsx)(k.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:Q,errorProps:{disabled:!0},children:(0,C.jsx)(d.Z,{noBackground:!0,itemActions:ne,columns:[{label:"Prefix",elementKey:"prefix"},{label:"Access",elementKey:"access"}],isLoading:u,records:z,entityName:"Access Rules",idField:"prefix"})})})]})})))},60680:function(e,t,n){"use strict";n(72791);var o=n(11135),c=n(25787),r=n(80184);t.Z=(0,c.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,r.jsx)("h1",{className:t.root,children:n})}))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 z}});var o=n(4942),c=n(63366),r=n(87462),i=n(72791),a=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"),p=(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"),h=n(14036),Z=n(93736),v=n(47630),k=n(95159);function x(e){return(0,k.Z)("MuiCheckbox",e)}var b=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),C=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],g=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.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,h.Z)(n.color))]]}})((function(e){var t,n=e.theme,c=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!c.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===c.color?n.palette.action.active:n.palette[c.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==c.color&&(t={},(0,o.Z)(t,"&.".concat(b.checked,", &.").concat(b.indeterminate),{color:n.palette[c.color].main}),(0,o.Z)(t,"&.".concat(b.disabled),{color:n.palette.action.disabled}),t))})),S=(0,d.jsx)(p,{}),j=(0,d.jsx)(f,{}),_=(0,d.jsx)(m,{}),z=i.forwardRef((function(e,t){var n,o,s=(0,Z.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,u=void 0===l?S:l,f=s.color,p=void 0===f?"primary":f,m=s.icon,v=void 0===m?j:m,k=s.indeterminate,b=void 0!==k&&k,z=s.indeterminateIcon,E=void 0===z?_:z,B=s.inputProps,F=s.size,I=void 0===F?"medium":F,P=(0,c.Z)(s,C),y=b?E:v,w=b?E:u,T=(0,r.Z)({},s,{color:p,indeterminate:b,size:I}),L=function(e){var t=e.classes,n=e.indeterminate,o=e.color,c={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},i=(0,a.Z)(c,x,t);return(0,r.Z)({},t,i)}(T);return(0,d.jsx)(g,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":b},B),icon:i.cloneElement(y,{fontSize:null!=(n=y.props.fontSize)?n:I}),checkedIcon:i.cloneElement(w,{fontSize:null!=(o=w.props.fontSize)?o:I}),ownerState:T,ref:t},P,{classes:L}))}))},26769:function(e,t,n){var o=n(39066),c=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!c(e)&&r(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=2180.c83301fc.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2180.f0842e9e.chunk.js.map b/portal-ui/build/static/js/2180.c83301fc.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2180.f0842e9e.chunk.js.map rename to portal-ui/build/static/js/2180.c83301fc.chunk.js.map index ecebb7c8b..78e396594 100644 --- a/portal-ui/build/static/js/2180.f0842e9e.chunk.js.map +++ b/portal-ui/build/static/js/2180.c83301fc.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2180.f0842e9e.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AccessRulePanel.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/@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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Paper } from \"@mui/material\";\nimport { AppState } from \"../../../../store\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ISessionResponse } from \"../../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../../common/api\";\n\nimport AddIcon from \"../../../../icons/AddIcon\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n containerForHeader,\n objectBrowserCommon,\n searchField,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketInfo } from \"../types\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\n\nconst AddAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./AddAccessRule\"))\n);\nconst DeleteAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./DeleteAccessRule\"))\n);\nconst EditAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./EditAccessRule\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\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 listButton: {\n marginLeft: \"10px\",\n align: \"right\",\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n ...objectBrowserCommon,\n ...containerForHeader(theme.spacing(4)),\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, { setErrorSnackMessage });\n\ninterface IAccessRuleProps {\n session: ISessionResponse;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n match: any;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst AccessRule = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IAccessRuleProps) => {\n const [loadingAccessRules, setLoadingAccessRules] = useState(true);\n const [accessRules, setAccessRules] = useState([]);\n const [addAccessRuleOpen, setAddAccessRuleOpen] = useState(false);\n const [deleteAccessRuleOpen, setDeleteAccessRuleOpen] =\n useState(false);\n const [accessRuleToDelete, setAccessRuleToDelete] = useState(\"\");\n const [editAccessRuleOpen, setEditAccessRuleOpen] = useState(false);\n const [accessRuleToEdit, setAccessRuleToEdit] = useState(\"\");\n const [initialAccess, setInitialAccess] = useState(\"\");\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n ]);\n\n const deleteAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_DELETE_BUCKET_POLICY,\n ]);\n\n const editAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingAccessRules(true);\n }\n }, [loadingBucket, setLoadingAccessRules]);\n\n const AccessRuleActions = [\n {\n type: \"delete\",\n disableButtonFunction: () => !deleteAccessRules,\n onClick: (accessRule: any) => {\n setDeleteAccessRuleOpen(true);\n setAccessRuleToDelete(accessRule.prefix);\n },\n },\n {\n type: \"view\",\n disableButtonFunction: () => !editAccessRules,\n onClick: (accessRule: any) => {\n setAccessRuleToEdit(accessRule.prefix);\n setInitialAccess(accessRule.access);\n setEditAccessRuleOpen(true);\n },\n },\n ];\n\n useEffect(() => {\n if (loadingAccessRules) {\n if (displayAccessRules) {\n api\n .invoke(\"GET\", `/api/v1/bucket/${bucketName}/access-rules`)\n .then((res: any) => {\n setAccessRules(res.accessRules);\n setLoadingAccessRules(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingAccessRules(false);\n });\n } else {\n setLoadingAccessRules(false);\n }\n }\n }, [\n loadingAccessRules,\n setErrorSnackMessage,\n displayAccessRules,\n bucketName,\n ]);\n\n const closeAddAccessRuleModal = () => {\n setAddAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n const closeDeleteAccessRuleModal = () => {\n setDeleteAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n const closeEditAccessRuleModal = () => {\n setEditAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n return (\n \n {addAccessRuleOpen && (\n \n )}\n {deleteAccessRuleOpen && (\n \n )}\n {editAccessRuleOpen && (\n \n )}\n \n Access Rules\n \n {\n setAddAccessRuleOpen(true);\n }}\n text={\"Add Access Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(connector(AccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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;","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":["AddAccessRuleModal","withSuspense","React","DeleteAccessRuleModal","EditAccessRuleModal","connector","connect","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","withStyles","theme","createStyles","backgroundImage","listButton","marginLeft","align","tableStyles","actionsTray","searchField","objectBrowserCommon","containerForHeader","spacing","classes","match","useState","loadingAccessRules","setLoadingAccessRules","accessRules","setAccessRules","addAccessRuleOpen","setAddAccessRuleOpen","deleteAccessRuleOpen","setDeleteAccessRuleOpen","accessRuleToDelete","setAccessRuleToDelete","editAccessRuleOpen","setEditAccessRuleOpen","accessRuleToEdit","setAccessRuleToEdit","initialAccess","setInitialAccess","bucketName","params","displayAccessRules","hasPermission","IAM_SCOPES","deleteAccessRules","editAccessRules","useEffect","AccessRuleActions","type","disableButtonFunction","onClick","accessRule","prefix","access","api","then","res","catch","err","Fragment","modalOpen","onClose","bucket","toDelete","toEdit","initial","item","xs","className","scopes","resource","matchAll","errorProps","disabled","tooltip","text","icon","color","variant","tableBlock","noBackground","itemActions","columns","label","elementKey","isLoading","records","entityName","idField","root","padding","margin","fontSize","children","_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","indeterminate","capitalize","_extends","palette","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module","value"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2180.c83301fc.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AccessRulePanel.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/@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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Paper } from \"@mui/material\";\nimport { AppState } from \"../../../../store\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ISessionResponse } from \"../../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../../common/api\";\n\nimport AddIcon from \"../../../../icons/AddIcon\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n containerForHeader,\n objectBrowserCommon,\n searchField,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketInfo } from \"../types\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\n\nconst AddAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./AddAccessRule\"))\n);\nconst DeleteAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./DeleteAccessRule\"))\n);\nconst EditAccessRuleModal = withSuspense(\n React.lazy(() => import(\"./EditAccessRule\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\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 listButton: {\n marginLeft: \"10px\",\n align: \"right\",\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n ...objectBrowserCommon,\n ...containerForHeader(theme.spacing(4)),\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, { setErrorSnackMessage });\n\ninterface IAccessRuleProps {\n session: ISessionResponse;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n match: any;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst AccessRule = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IAccessRuleProps) => {\n const [loadingAccessRules, setLoadingAccessRules] = useState(true);\n const [accessRules, setAccessRules] = useState([]);\n const [addAccessRuleOpen, setAddAccessRuleOpen] = useState(false);\n const [deleteAccessRuleOpen, setDeleteAccessRuleOpen] =\n useState(false);\n const [accessRuleToDelete, setAccessRuleToDelete] = useState(\"\");\n const [editAccessRuleOpen, setEditAccessRuleOpen] = useState(false);\n const [accessRuleToEdit, setAccessRuleToEdit] = useState(\"\");\n const [initialAccess, setInitialAccess] = useState(\"\");\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n ]);\n\n const deleteAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_DELETE_BUCKET_POLICY,\n ]);\n\n const editAccessRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingAccessRules(true);\n }\n }, [loadingBucket, setLoadingAccessRules]);\n\n const AccessRuleActions = [\n {\n type: \"delete\",\n disableButtonFunction: () => !deleteAccessRules,\n onClick: (accessRule: any) => {\n setDeleteAccessRuleOpen(true);\n setAccessRuleToDelete(accessRule.prefix);\n },\n },\n {\n type: \"view\",\n disableButtonFunction: () => !editAccessRules,\n onClick: (accessRule: any) => {\n setAccessRuleToEdit(accessRule.prefix);\n setInitialAccess(accessRule.access);\n setEditAccessRuleOpen(true);\n },\n },\n ];\n\n useEffect(() => {\n if (loadingAccessRules) {\n if (displayAccessRules) {\n api\n .invoke(\"GET\", `/api/v1/bucket/${bucketName}/access-rules`)\n .then((res: any) => {\n setAccessRules(res.accessRules);\n setLoadingAccessRules(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingAccessRules(false);\n });\n } else {\n setLoadingAccessRules(false);\n }\n }\n }, [\n loadingAccessRules,\n setErrorSnackMessage,\n displayAccessRules,\n bucketName,\n ]);\n\n const closeAddAccessRuleModal = () => {\n setAddAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n const closeDeleteAccessRuleModal = () => {\n setDeleteAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n const closeEditAccessRuleModal = () => {\n setEditAccessRuleOpen(false);\n setLoadingAccessRules(true);\n };\n\n return (\n \n {addAccessRuleOpen && (\n \n )}\n {deleteAccessRuleOpen && (\n \n )}\n {editAccessRuleOpen && (\n \n )}\n \n Access Rules\n \n {\n setAddAccessRuleOpen(true);\n }}\n text={\"Add Access Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(connector(AccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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;","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":["AddAccessRuleModal","withSuspense","React","DeleteAccessRuleModal","EditAccessRuleModal","connector","connect","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","withStyles","theme","createStyles","backgroundImage","listButton","marginLeft","align","tableStyles","actionsTray","searchField","objectBrowserCommon","containerForHeader","spacing","classes","match","useState","loadingAccessRules","setLoadingAccessRules","accessRules","setAccessRules","addAccessRuleOpen","setAddAccessRuleOpen","deleteAccessRuleOpen","setDeleteAccessRuleOpen","accessRuleToDelete","setAccessRuleToDelete","editAccessRuleOpen","setEditAccessRuleOpen","accessRuleToEdit","setAccessRuleToEdit","initialAccess","setInitialAccess","bucketName","params","displayAccessRules","hasPermission","IAM_SCOPES","deleteAccessRules","editAccessRules","useEffect","AccessRuleActions","type","disableButtonFunction","onClick","accessRule","prefix","access","api","then","res","catch","err","Fragment","modalOpen","onClose","bucket","toDelete","toEdit","initial","item","xs","className","scopes","resource","matchAll","errorProps","disabled","tooltip","text","icon","color","variant","tableBlock","noBackground","itemActions","columns","label","elementKey","isLoading","records","entityName","idField","root","padding","margin","fontSize","children","_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","indeterminate","capitalize","_extends","palette","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module","value"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2180.f0842e9e.chunk.js b/portal-ui/build/static/js/2180.f0842e9e.chunk.js deleted file mode 100644 index 8a10562b7..000000000 --- a/portal-ui/build/static/js/2180.f0842e9e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2180],{47494:function(e,t,n){"use strict";n.r(t);var o=n(29439),c=n(1413),r=n(72791),i=n(60364),a=n(11135),s=n(25787),l=n(10703),u=n(42649),d=n(92983),f=n(81207),m=n(47919),p=n(61889),h=n(23814),Z=n(56087),v=n(60680),k=n(38442),x=n(75578),b=n(40603),C=n(80184),g=(0,x.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(4619)]).then(n.bind(n,94619))}))),S=(0,x.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(2442),n.e(8990)]).then(n.bind(n,8990))}))),j=(0,x.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(8455)]).then(n.bind(n,58455))}))),_=(0,i.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:u.Ih});t.default=(0,s.Z)((function(e){return(0,a.Z)((0,c.Z)((0,c.Z)((0,c.Z)((0,c.Z)((0,c.Z)({"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},listButton:{marginLeft:"10px",align:"right"}},h.VX),h.OR),h.qg),h.cx),(0,h.Bz)(e.spacing(4))))}))(_((function(e){var t=e.classes,n=e.match,c=e.setErrorSnackMessage,i=e.loadingBucket,a=(e.bucketInfo,(0,r.useState)(!0)),s=(0,o.Z)(a,2),u=s[0],h=s[1],x=(0,r.useState)([]),_=(0,o.Z)(x,2),z=_[0],E=_[1],P=(0,r.useState)(!1),B=(0,o.Z)(P,2),F=B[0],I=B[1],y=(0,r.useState)(!1),w=(0,o.Z)(y,2),T=w[0],L=w[1],O=(0,r.useState)(""),A=(0,o.Z)(O,2),M=A[0],R=A[1],U=(0,r.useState)(!1),V=(0,o.Z)(U,2),H=V[0],K=V[1],D=(0,r.useState)(""),Y=(0,o.Z)(D,2),N=Y[0],G=Y[1],q=(0,r.useState)(""),X=(0,o.Z)(q,2),$=X[0],J=X[1],Q=n.params.bucketName,W=(0,k.F)(Q,[Z.Ft.S3_GET_BUCKET_POLICY]),ee=(0,k.F)(Q,[Z.Ft.S3_DELETE_BUCKET_POLICY]),te=(0,k.F)(Q,[Z.Ft.S3_PUT_BUCKET_POLICY]);(0,r.useEffect)((function(){i&&h(!0)}),[i,h]);var ne=[{type:"delete",disableButtonFunction:function(){return!ee},onClick:function(e){L(!0),R(e.prefix)}},{type:"view",disableButtonFunction:function(){return!te},onClick:function(e){G(e.prefix),J(e.access),K(!0)}}];(0,r.useEffect)((function(){u&&(W?f.Z.invoke("GET","/api/v1/bucket/".concat(Q,"/access-rules")).then((function(e){E(e.accessRules),h(!1)})).catch((function(e){c(e),h(!1)})):h(!1))}),[u,c,W,Q]);return(0,C.jsxs)(r.Fragment,{children:[F&&(0,C.jsx)(g,{modalOpen:F,onClose:function(){I(!1),h(!0)},bucket:Q}),T&&(0,C.jsx)(S,{modalOpen:T,onClose:function(){L(!1),h(!0)},bucket:Q,toDelete:M}),H&&(0,C.jsx)(j,{modalOpen:H,onClose:function(){K(!1),h(!0)},bucket:Q,toEdit:N,initial:$}),(0,C.jsxs)(p.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,C.jsx)(v.Z,{children:"Access Rules"}),(0,C.jsx)(k.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY,Z.Ft.S3_PUT_BUCKET_POLICY],resource:Q,matchAll:!0,errorProps:{disabled:!0},children:(0,C.jsx)(b.Z,{tooltip:"Add Access Rule",onClick:function(){I(!0)},text:"Add Access Rule",icon:(0,C.jsx)(m.Z,{}),color:"primary",variant:"contained"})})]}),(0,C.jsx)(l.Z,{className:t.tableBlock,children:(0,C.jsx)(k.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:Q,errorProps:{disabled:!0},children:(0,C.jsx)(d.Z,{noBackground:!0,itemActions:ne,columns:[{label:"Prefix",elementKey:"prefix"},{label:"Access",elementKey:"access"}],isLoading:u,records:z,entityName:"Access Rules",idField:"prefix"})})})]})})))},60680:function(e,t,n){"use strict";n(72791);var o=n(11135),c=n(25787),r=n(80184);t.Z=(0,c.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,r.jsx)("h1",{className:t.root,children:n})}))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 c=o(n(45649)),r=n(80184),i=(0,c.default)((0,r.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 z}});var o=n(4942),c=n(63366),r=n(87462),i=n(72791),a=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"),m=(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"),p=(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"),h=n(14036),Z=n(93736),v=n(47630),k=n(95159);function x(e){return(0,k.Z)("MuiCheckbox",e)}var b=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),C=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],g=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.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,h.Z)(n.color))]]}})((function(e){var t,n=e.theme,c=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!c.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===c.color?n.palette.action.active:n.palette[c.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==c.color&&(t={},(0,o.Z)(t,"&.".concat(b.checked,", &.").concat(b.indeterminate),{color:n.palette[c.color].main}),(0,o.Z)(t,"&.".concat(b.disabled),{color:n.palette.action.disabled}),t))})),S=(0,d.jsx)(m,{}),j=(0,d.jsx)(f,{}),_=(0,d.jsx)(p,{}),z=i.forwardRef((function(e,t){var n,o,s=(0,Z.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,u=void 0===l?S:l,f=s.color,m=void 0===f?"primary":f,p=s.icon,v=void 0===p?j:p,k=s.indeterminate,b=void 0!==k&&k,z=s.indeterminateIcon,E=void 0===z?_:z,P=s.inputProps,B=s.size,F=void 0===B?"medium":B,I=(0,c.Z)(s,C),y=b?E:v,w=b?E:u,T=(0,r.Z)({},s,{color:m,indeterminate:b,size:F}),L=function(e){var t=e.classes,n=e.indeterminate,o=e.color,c={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},i=(0,a.Z)(c,x,t);return(0,r.Z)({},t,i)}(T);return(0,d.jsx)(g,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":b},P),icon:i.cloneElement(y,{fontSize:null!=(n=y.props.fontSize)?n:F}),checkedIcon:i.cloneElement(w,{fontSize:null!=(o=w.props.fontSize)?o:F}),ownerState:T,ref:t},I,{classes:L}))}))},26769:function(e,t,n){var o=n(39066),c=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!c(e)&&r(e)&&"[object String]"==o(e)}}}]); -//# sourceMappingURL=2180.f0842e9e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2249.39222819.chunk.js b/portal-ui/build/static/js/2249.39222819.chunk.js deleted file mode 100644 index d18705891..000000000 --- a/portal-ui/build/static/js/2249.39222819.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(93656),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(29439),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.39222819.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2249.39222819.chunk.js.map b/portal-ui/build/static/js/2249.39222819.chunk.js.map deleted file mode 100644 index e1ee9f44a..000000000 --- a/portal-ui/build/static/js/2249.39222819.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2249.39222819.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/2249.922e46ea.chunk.js b/portal-ui/build/static/js/2249.922e46ea.chunk.js new file mode 100644 index 000000000..05934ee05 --- /dev/null +++ b/portal-ui/build/static/js/2249.922e46ea.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2249],{23804:function(n,e,o){o(72791);var t=o(11135),i=o(25787),r=o(61889),a=o(80184);e.Z=(0,i.Z)((function(n){return(0,t.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(n){var e=n.classes,o=n.iconComponent,t=n.title,i=n.help;return(0,a.jsx)("div",{className:e.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:e.leftItems,children:[o,t]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:e.helpText,children:i})]})})}))},60937:function(n,e,o){o.d(e,{Z:function(){return d}});var t=o(32291),i=o(72791),r=o(61889),a=o(64554),s=o(23804),c=o(80184),l=function(n){var e=n.iconComponent,o=void 0===e?null:e,t=n.title,i=void 0===t?"":t,l=n.message,u=void 0===l?"":l;return(0,c.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,c.jsx)(r.ZP,{item:!0,xs:12,children:(0,c.jsx)(s.Z,{title:i,iconComponent:o,help:(0,c.jsx)(a.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(n){return n.colors.link},textDecoration:"underline"}},children:u})})})})},u=o(74794),d=function(n){var e=n.pageHeaderText,o=void 0===e?"":e,r=n.icon,a=void 0===r?null:r,s=n.title,d=void 0===s?"":s,f=n.message,x=void 0===f?null:f;return(0,c.jsxs)(i.Fragment,{children:[(0,c.jsx)(t.Z,{label:o}),(0,c.jsx)(u.Z,{children:(0,c.jsx)(l,{iconComponent:a,title:d,message:x})})]})}},75578:function(n,e,o){var t=o(1413),i=o(72791),r=o(80184);e.Z=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function o(o){return(0,r.jsx)(i.Suspense,{fallback:e,children:(0,r.jsx)(n,(0,t.Z)({},o))})}return o}},2249:function(n,e,o){o.r(e),o.d(e,{default:function(){return L}});var t=o(72791),i=o(79271),r=o(62666),a=o(50099),s=o(1413),c=o(11135),l=o(25787),u=o(61889),d=o(23814),f=o(32291),x=o(91523),g=o(80184),p=(0,l.Z)((function(n){return(0,c.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(n){var e=n.classes,o=n.configuration,t=n.prefix,i=void 0===t?"settings":t,r=n.disabled,a=void 0!==r&&r;return(0,g.jsxs)(x.rU,{to:a?"/".concat(i):"/".concat(i,"/").concat(o.configuration_id),className:"".concat(e.configurationLink," ").concat(a?"disabled":""),children:[o.icon,o.configuration_label]})})),h=o(74794),m=o(93656),b=o(56087),j=o(38442),Z=(0,o(60364).$j)((function(n){return{features:n.console.session.features}}),null)((0,l.Z)((function(n){return(0,c.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"}},d.qg),d.OR),(0,d.Bz)(n.spacing(4))))}))((function(n){var e=n.classes,o=(n.features,[{icon:(0,g.jsx)(m.I$,{}),configuration_id:"logs",configuration_label:"Logs",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_LOGS])},{icon:(0,g.jsx)(m.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)(m.fO,{}),configuration_id:"watch",configuration_label:"Watch",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_WATCH])},{icon:(0,g.jsx)(m.C_,{}),configuration_id:"trace",configuration_label:"Trace",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_TRACE])},{icon:(0,g.jsx)(m.ln,{}),configuration_id:"heal",configuration_label:"Heal",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_HEAL])},{icon:(0,g.jsx)(m.MX,{}),configuration_id:"diagnostics",configuration_label:"Diagnostics",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_DIAGNOSTICS])},{icon:(0,g.jsx)(m.QB,{}),configuration_id:"speedtest",configuration_label:"Speedtest",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_SPEEDTEST])}]);return(0,g.jsxs)(t.Fragment,{children:[(0,g.jsx)(f.Z,{label:"Tools"}),(0,g.jsx)(h.Z,{children:(0,g.jsx)(u.ZP,{item:!0,xs:12,children:(0,g.jsx)(u.ZP,{item:!0,xs:12,children:(0,g.jsx)("div",{className:e.settingsOptionsContainer,children:o.map((function(n){return(0,g.jsx)(p,{prefix:"tools",configuration:n,disabled:n.disabled||!1},"configItem-".concat(n.configuration_label))}))})})})})]})}))),v=o(60937),C=o(25183),S=o(75578),A=(0,S.Z)(t.lazy((function(){return Promise.all([o.e(7757),o.e(8833)]).then(o.bind(o,58833))}))),y=(0,S.Z)(t.lazy((function(){return o.e(471).then(o.bind(o,80471))}))),T=(0,S.Z)(t.lazy((function(){return o.e(483).then(o.bind(o,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:y}),(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:A}),(0,g.jsx)(i.AW,{component:a.Z})]})})}},50099:function(n,e,o){o.d(e,{Z:function(){return l}});o(72791);var t=o(64554),i=o(20890),r=o(23060),a=o(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 c=o(74794),l=function(){return(0,a.jsx)(c.Z,{children:(0,a.jsxs)(t.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,a.jsx)(t.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,a.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,a.jsx)(t.Z,{mt:5,children:(0,a.jsx)(s,{})})]})})}},23060:function(n,e,o){o.d(e,{Z:function(){return y}});var t=o(29439),i=o(4942),r=o(63366),a=o(87462),s=o(72791),c=o(28182),l=o(90767),u=o(18529),d=o(12065),f=o(14036),x=o(47630),g=o(93736),p=o(23031),h=o(42071),m=o(20890),b=o(95159);function j(n){return(0,b.Z)("MuiLink",n)}var Z=(0,o(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),v=o(80184),C=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},A=(0,x.ZP)(m.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(n,e){var o=n.ownerState;return[e.root,e["underline".concat((0,f.Z)(o.underline))],"button"===o.component&&e.button]}})((function(n){var e=n.theme,o=n.ownerState,t=(0,u.D)(e,"palette.".concat(function(n){return S[n]||n}(o.color)))||o.color;return(0,a.Z)({},"none"===o.underline&&{textDecoration:"none"},"hover"===o.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===o.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==t?(0,d.Fq)(t,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===o.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"}))})),y=s.forwardRef((function(n,e){var o=(0,g.Z)({props:n,name:"MuiLink"}),i=o.className,u=o.color,d=void 0===u?"primary":u,x=o.component,m=void 0===x?"a":x,b=o.onBlur,Z=o.onFocus,S=o.TypographyClasses,y=o.underline,T=void 0===y?"always":y,L=o.variant,O=void 0===L?"inherit":L,F=(0,r.Z)(o,C),_=(0,p.Z)(),w=_.isFocusVisibleRef,E=_.onBlur,k=_.onFocus,P=_.ref,R=s.useState(!1),W=(0,t.Z)(R,2),I=W[0],D=W[1],z=(0,h.Z)(e,P),H=(0,a.Z)({},o,{color:d,component:m,focusVisible:I,underline:T,variant:O}),N=function(n){var e=n.classes,o=n.component,t=n.focusVisible,i=n.underline,r={root:["root","underline".concat((0,f.Z)(i)),"button"===o&&"button",t&&"focusVisible"]};return(0,l.Z)(r,j,e)}(H);return(0,v.jsx)(A,(0,a.Z)({className:(0,c.Z)(N.root,i),classes:S,color:d,component:m,onBlur:function(n){E(n),!1===w.current&&D(!1),b&&b(n)},onFocus:function(n){k(n),!0===w.current&&D(!0),Z&&Z(n)},ref:z,ownerState:H,variant:O},F))}))}}]); +//# sourceMappingURL=2249.922e46ea.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2249.922e46ea.chunk.js.map b/portal-ui/build/static/js/2249.922e46ea.chunk.js.map new file mode 100644 index 000000000..637d249e1 --- /dev/null +++ b/portal-ui/build/static/js/2249.922e46ea.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2249.922e46ea.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/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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","configurationLink","padding","maxWidth","margin","overflow","textOverflow","lineClamp","cursor","configuration","prefix","disabled","to","configuration_id","configuration_label","connect","state","features","console","session","settingsOptionsContainer","flexDirection","justifyContent","flexWrap","searchField","actionsTray","containerForHeader","spacing","configurationElements","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","Fragment","map","element","Inspect","withSuspense","React","Register","Profile","history","path","exact","component","ToolsList","render","FeatureNotAvailablePage","NotFoundPage","Copyright","Typography","variant","align","Link","href","Date","getFullYear","textAlign","fontStyle","mt","getLinkUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","colorTransformations","primary","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.2294f835.chunk.js b/portal-ui/build/static/js/2338.2294f835.chunk.js new file mode 100644 index 000000000..5bab3e1b8 --- /dev/null +++ b/portal-ui/build/static/js/2338.2294f835.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2338],{72338:function(e,t,n){n.r(t),n.d(t,{default:function(){return d}});var r=n(72791),i=n(32291),o=n(34345),s=n(84669),a=n(74794),l=n(64554),c=n(80184),u=function(e){var t=e.onClick,n=e.icon,r=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(){t(r)},children:[n?(0,c.jsx)(l.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:n}):null,(0,c.jsx)("div",{style:{fontWeight:600,marginLeft:20},children:r})]})},g=n(56087),d=function(e){var t=e.history;return(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(i.Z,{label:(0,c.jsx)(r.Fragment,{children:(0,c.jsx)(s.Z,{to:g.gA.TIERS,label:"Tier Types"})}),actions:(0,c.jsx)(r.Fragment,{})}),(0,c.jsx)(a.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:o.Bh.map((function(e,n){return(0,c.jsx)(u,{name:e.targetTitle,onClick:function(){var n;n=e.serviceName,t.push("".concat(g.gA.TIERS_ADD,"/").concat(n))},icon:e.logo},"tierOpt-".concat(n.toString,"-").concat(e.targetTitle))}))})]})})]})}},34345:function(e,t,n){n.d(t,{Bh:function(){return c},Pp:function(){return o},b2:function(){return a},f0:function(){return s},vB:function(){return l}});var r=n(93656),i=n(80184),o="minio",s="gcs",a="s3",l="azure",c=[{serviceName:o,targetTitle:"MinIO",logo:(0,i.jsx)(r.$E,{}),logoXs:(0,i.jsx)(r.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,i.jsx)(r.UQ,{}),logoXs:(0,i.jsx)(r.Vw,{})},{serviceName:a,targetTitle:"AWS S3",logo:(0,i.jsx)(r.fe,{}),logoXs:(0,i.jsx)(r.Xj,{})},{serviceName:l,targetTitle:"Azure",logo:(0,i.jsx)(r.jz,{}),logoXs:(0,i.jsx)(r.nA,{})}]}}]); +//# sourceMappingURL=2338.2294f835.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.2294f835.chunk.js.map b/portal-ui/build/static/js/2338.2294f835.chunk.js.map new file mode 100644 index 000000000..b5135b181 --- /dev/null +++ b/portal-ui/build/static/js/2338.2294f835.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2338.2294f835.chunk.js","mappings":"2OAkEA,EA1CqB,SAAC,GAAgD,IAA9CA,EAA6C,EAA7CA,QAASC,EAAoC,EAApCA,KAAMC,EAA8B,EAA9BA,KACrC,OACE,oBACEC,MAAO,CACLC,QAAS,OACTC,WAAY,SACZC,eAAgB,aAChBC,QAAS,GACTC,WAAY,cACZC,OAAQ,oBACRC,aAAc,EACdC,OAAQ,WAEVX,QAAS,WACPA,EAAQE,IAZZ,UAeGD,GACC,SAACW,EAAA,EAAD,CACEC,GAAI,CACF,cAAe,CACbC,OAAQ,OACRC,MAAO,SAJb,SAQGd,IAED,MAEJ,gBACEE,MAAO,CACLa,WAAY,IACZC,WAAY,IAHhB,SAMGf,Q,WC0BT,EAxDyB,SAAC,GAAmC,IAAjCgB,EAAgC,EAAhCA,QAK1B,OACE,UAAC,EAAAC,SAAD,YACE,SAACC,EAAA,EAAD,CACEC,OACE,SAAC,EAAAF,SAAD,WACE,SAACG,EAAA,EAAD,CAAUC,GAAIC,EAAAA,GAAAA,MAAiBH,MAAM,iBAGzCI,SAAS,SAAC,WAAD,OAGX,SAACC,EAAA,EAAD,WACE,UAACd,EAAA,EAAD,CACEC,GAAI,CACFJ,OAAQ,oBACRF,QAAS,QAHb,WAME,gBAAKJ,MAAO,CAAEwB,SAAU,GAAIX,WAAY,IAAKY,cAAe,IAA5D,+BAGA,SAAChB,EAAA,EAAD,CACEC,GAAI,CACFgB,OAAQ,SACRzB,QAAS,OACT0B,QAAS,OACTC,oBAAqB,CACnBC,GAAI,iBACJC,GAAI,iBACJC,GAAI,iBACJC,GAAI,mBATV,SAaGC,EAAAA,GAAAA,KAAc,SAACC,EAAUC,GAAX,OACb,SAAC,EAAD,CAEEpC,KAAMmC,EAASE,YACfvC,QAAS,WA1CJ,IAACwC,EAAAA,EA2COH,EAASI,YA1ClCvB,EAAQwB,KAAR,UAAgBlB,EAAAA,GAAAA,UAAhB,YAAuCgB,KA4C3BvC,KAAMoC,EAASM,MANjB,kBACkBL,EAAMM,SADxB,YACoCP,EAASE,6B,iLC5C9CM,EAAmB,QACnBC,EAAiB,MACjBC,EAAgB,KAChBC,EAAmB,QAEnBZ,EAAY,CACvB,CACEK,YAAaI,EACbN,YAAa,QACbI,MAAM,SAAC,KAAD,IACNM,QAAQ,SAAC,KAAD,KAEV,CACER,YAAaK,EACbP,YAAa,uBACbI,MAAM,SAAC,KAAD,IACNM,QAAQ,SAAC,KAAD,KAEV,CACER,YAAaM,EACbR,YAAa,SACbI,MAAM,SAAC,KAAD,IACNM,QAAQ,SAAC,KAAD,KAEV,CACER,YAAaO,EACbT,YAAa,QACbI,MAAM,SAAC,KAAD,IACNM,QAAQ,SAAC,KAAD","sources":["screens/Console/Configurations/TiersConfiguration/TierTypeCard.tsx","screens/Console/Configurations/TiersConfiguration/TierTypeSelector.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { 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":["onClick","icon","name","style","display","alignItems","justifyContent","padding","background","border","borderRadius","cursor","Box","sx","height","width","fontWeight","marginLeft","history","Fragment","PageHeader","label","BackLink","to","IAM_PAGES","actions","PageLayout","fontSize","paddingBottom","margin","gridGap","gridTemplateColumns","xs","sm","md","lg","tierTypes","tierType","index","targetTitle","selectName","serviceName","push","logo","toString","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","logoXs"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.8b9b592f.chunk.js b/portal-ui/build/static/js/2338.8b9b592f.chunk.js deleted file mode 100644 index df83afa82..000000000 --- a/portal-ui/build/static/js/2338.8b9b592f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(93656),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(93656),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.8b9b592f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.8b9b592f.chunk.js.map b/portal-ui/build/static/js/2338.8b9b592f.chunk.js.map deleted file mode 100644 index 6bb0dbfad..000000000 --- a/portal-ui/build/static/js/2338.8b9b592f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2338.8b9b592f.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 diff --git a/portal-ui/build/static/js/2426.172b5361.chunk.js b/portal-ui/build/static/js/2426.172b5361.chunk.js new file mode 100644 index 000000000..7b805388a --- /dev/null +++ b/portal-ui/build/static/js/2426.172b5361.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 2426.172b5361.chunk.js.LICENSE.txt */ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2426],{72426:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,n;function s(){return t.apply(null,arguments)}function i(e){t=e}function r(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function l(e){return void 0===e}function h(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function c(e,t){var n,s=[],i=e.length;for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,F=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,L={},V={};function E(e,t,n,s){var i=s;"string"===typeof s&&(i=function(){return this[s]()}),e&&(V[e]=i),t&&(V[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(V[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function A(e){var t,n,s=e.match(H);for(t=0,n=s.length;t=0&&F.test(e);)e=e.replace(F,s),F.lastIndex=0,n-=1;return e}var Z={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function z(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(H).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var $="Invalid date";function q(){return this._invalidDate}var B="%d",J=/\d{1,2}/;function Q(e){return this._ordinal.replace("%d",e)}var X={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function K(e,t,n,s){var i=this._relativeTime[n];return T(i)?i(e,t,n,s):i.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return T(n)?n(t):n.replace(/%s/i,t)}var te={};function ne(e,t){var n=e.toLowerCase();te[n]=te[n+"s"]=te[t]=e}function se(e){return"string"===typeof e?te[e]||te[e.toLowerCase()]:void 0}function ie(e){var t,n,s={};for(n in e)o(e,n)&&(t=se(n))&&(s[t]=e[n]);return s}var re={};function ae(e,t){re[e]=t}function oe(e){var t,n=[];for(t in e)o(e,t)&&n.push({unit:t,priority:re[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}function ue(e){return e%4===0&&e%100!==0||e%400===0}function le(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function he(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=le(t)),n}function de(e,t){return function(n){return null!=n?(fe(this,e,n),s.updateOffset(this,t),this):ce(this,e)}}function ce(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function fe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ue(e.year())&&1===e.month()&&29===e.date()?(n=he(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Ke(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function me(e){return T(this[e=se(e)])?this[e]():this}function _e(e,t){if("object"===typeof e){var n,s=oe(e=ie(e)),i=s.length;for(n=0;n68?1900:2e3)};var yt=de("FullYear",!0);function gt(){return ue(this.year())}function wt(e,t,n,s,i,r,a){var o;return e<100&&e>=0?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function pt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function vt(e,t,n){var s=7+t-n;return-(7+pt(e,0,s).getUTCDay()-t)%7+s-1}function kt(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+vt(e,s,i);return o<=0?a=_t(r=e-1)+o:o>_t(e)?(r=e+1,a=o-_t(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Mt(e,t,n){var s,i,r=vt(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Dt(i=e.year()-1,t,n):a>Dt(e.year(),t,n)?(s=a-Dt(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Dt(e,t,n){var s=vt(e,t,n),i=vt(e+1,t,n);return(_t(e)-s+i)/7}function St(e){return Mt(e,this._week.dow,this._week.doy).week}E("w",["ww",2],"wo","week"),E("W",["WW",2],"Wo","isoWeek"),ne("week","w"),ne("isoWeek","W"),ae("week",5),ae("isoWeek",5),Ce("w",Me),Ce("ww",Me,we),Ce("W",Me),Ce("WW",Me,we),Ee(["w","ww","W","WW"],(function(e,t,n,s){t[s.substr(0,1)]=he(e)}));var Yt={dow:0,doy:6};function Ot(){return this._week.dow}function bt(){return this._week.doy}function xt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Tt(e){var t=Mt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Nt(e,t){return"string"!==typeof e?e:isNaN(e)?"number"===typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Pt(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Rt(e,t){return e.slice(t,7).concat(e.slice(0,t))}E("d",0,"do","day"),E("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),E("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),E("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),E("e",0,0,"weekday"),E("E",0,0,"isoWeekday"),ne("day","d"),ne("weekday","e"),ne("isoWeekday","E"),ae("day",11),ae("weekday",11),ae("isoWeekday",11),Ce("d",Me),Ce("e",Me),Ce("E",Me),Ce("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Ce("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Ce("dddd",(function(e,t){return t.weekdaysRegex(e)})),Ee(["dd","ddd","dddd"],(function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:y(n).invalidWeekday=e})),Ee(["d","e","E"],(function(e,t,n,s){t[s]=he(e)}));var Wt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ct="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ut="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ht=We,Ft=We,Lt=We;function Vt(e,t){var n=r(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Rt(n,this._week.dow):e?n[e.day()]:n}function Et(e){return!0===e?Rt(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Gt(e){return!0===e?Rt(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function At(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=m([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ae.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ae.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._shortWeekdaysParse,a))||-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ae.call(this._shortWeekdaysParse,a))||-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ae.call(this._minWeekdaysParse,a))||-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._shortWeekdaysParse,a))?i:null}function jt(e,t,n){var s,i,r;if(this._weekdaysParseExact)return At.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=m([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}}function It(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Nt(e,this.localeData()),this.add(e-t,"d")):t}function Zt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function zt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pt(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function $t(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function qt(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ft),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Bt(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Lt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Jt(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),s=Fe(this.weekdaysMin(n,"")),i=Fe(this.weekdaysShort(n,"")),r=Fe(this.weekdays(n,"")),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);a.sort(e),o.sort(e),u.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qt(){return this.hours()%12||12}function Xt(){return this.hours()||24}function Kt(e,t){E(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function en(e,t){return t._meridiemParse}function tn(e){return"p"===(e+"").toLowerCase().charAt(0)}E("H",["HH",2],0,"hour"),E("h",["hh",2],0,Qt),E("k",["kk",2],0,Xt),E("hmm",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)})),E("hmmss",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)})),E("Hmm",0,0,(function(){return""+this.hours()+U(this.minutes(),2)})),E("Hmmss",0,0,(function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)})),Kt("a",!0),Kt("A",!1),ne("hour","h"),ae("hour",13),Ce("a",en),Ce("A",en),Ce("H",Me),Ce("h",Me),Ce("k",Me),Ce("HH",Me,we),Ce("hh",Me,we),Ce("kk",Me,we),Ce("hmm",De),Ce("hmmss",Se),Ce("Hmm",De),Ce("Hmmss",Se),Ve(["H","HH"],ze),Ve(["k","kk"],(function(e,t,n){var s=he(e);t[ze]=24===s?0:s})),Ve(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Ve(["h","hh"],(function(e,t,n){t[ze]=he(e),y(n).bigHour=!0})),Ve("hmm",(function(e,t,n){var s=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s)),y(n).bigHour=!0})),Ve("hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s,2)),t[qe]=he(e.substr(i)),y(n).bigHour=!0})),Ve("Hmm",(function(e,t,n){var s=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s))})),Ve("Hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s,2)),t[qe]=he(e.substr(i))}));var nn=/[ap]\.?m?\.?/i,sn=de("Hours",!0);function rn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var an,on={calendar:W,longDateFormat:Z,invalidDate:$,ordinal:B,dayOfMonthOrdinalParse:J,relativeTime:X,months:et,monthsShort:tt,week:Yt,weekdays:Wt,weekdaysMin:Ut,weekdaysShort:Ct,meridiemParse:nn},un={},ln={};function hn(e,t){var n,s=Math.min(e.length,t.length);for(n=0;n0;){if(s=mn(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&hn(i,n)>=t-1)break;t--}r++}return an}function fn(e){return null!=e.match("^[^/\\\\]*$")}function mn(t){var n=null;if(void 0===un[t]&&e&&e.exports&&fn(t))try{n=an._abbr,Object(function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}()),_n(n)}catch(s){un[t]=null}return un[t]}function _n(e,t){var n;return e&&((n=l(t)?wn(e):yn(e,t))?an=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),an._abbr}function yn(e,t){if(null!==t){var n,s=on;if(t.abbr=e,null!=un[e])x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])s=un[t.parentLocale]._config;else{if(null==(n=mn(t.parentLocale)))return ln[t.parentLocale]||(ln[t.parentLocale]=[]),ln[t.parentLocale].push({name:e,config:t}),null;s=n._config}return un[e]=new R(P(s,t)),ln[e]&&ln[e].forEach((function(e){yn(e.name,e.config)})),_n(e),un[e]}return delete un[e],null}function gn(e,t){if(null!=t){var n,s,i=on;null!=un[e]&&null!=un[e].parentLocale?un[e].set(P(un[e]._config,t)):(null!=(s=mn(e))&&(i=s._config),t=P(i,t),null==s&&(t.abbr=e),(n=new R(t)).parentLocale=un[e],un[e]=n),_n(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===_n()&&_n(e)):null!=un[e]&&delete un[e]);return un[e]}function wn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return an;if(!r(e)){if(t=mn(e))return t;e=[e]}return cn(e)}function pn(){return O(un)}function vn(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[Ie]<0||n[Ie]>11?Ie:n[Ze]<1||n[Ze]>Ke(n[je],n[Ie])?Ze:n[ze]<0||n[ze]>24||24===n[ze]&&(0!==n[$e]||0!==n[qe]||0!==n[Be])?ze:n[$e]<0||n[$e]>59?$e:n[qe]<0||n[qe]>59?qe:n[Be]<0||n[Be]>999?Be:-1,y(e)._overflowDayOfYear&&(tZe)&&(t=Ze),y(e)._overflowWeeks&&-1===t&&(t=Je),y(e)._overflowWeekday&&-1===t&&(t=Qe),y(e).overflow=t),e}var kn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Mn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Yn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((-?\d+)/i,bn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,xn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Tn(e){var t,n,s,i,r,a,o=e._i,u=kn.exec(o)||Mn.exec(o),l=Sn.length,h=Yn.length;if(u){for(y(e).iso=!0,t=0,n=l;t_t(r)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=pt(r,0,e._dayOfYear),e._a[Ie]=n.getUTCMonth(),e._a[Ze]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ze]&&0===e._a[$e]&&0===e._a[qe]&&0===e._a[Be]&&(e._nextDay=!0,e._a[ze]=0),e._d=(e._useUTC?pt:wt).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ze]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==i&&(y(e).weekdayMismatch=!0)}}function En(e){var t,n,s,i,r,a,o,u,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,a=4,n=Fn(t.GG,e._a[je],Mt(Bn(),1,4).year),s=Fn(t.W,1),((i=Fn(t.E,1))<1||i>7)&&(u=!0)):(r=e._locale._week.dow,a=e._locale._week.doy,l=Mt(Bn(),r,a),n=Fn(t.gg,e._a[je],l.year),s=Fn(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r),s<1||s>Dt(n,r,a)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(o=kt(n,s,i,r,a),e._a[je]=o.year,e._dayOfYear=o.dayOfYear)}function Gn(e){if(e._f!==s.ISO_8601)if(e._f!==s.RFC_2822){e._a=[],y(e).empty=!0;var t,n,i,r,a,o,u,l=""+e._i,h=l.length,d=0;for(u=(i=I(e._f,e._locale).match(H)||[]).length,t=0;t0&&y(e).unusedInput.push(a),l=l.slice(l.indexOf(n)+n.length),d+=n.length),V[r]?(n?y(e).empty=!1:y(e).unusedTokens.push(r),Ge(r,n,e)):e._strict&&!n&&y(e).unusedTokens.push(r);y(e).charsLeftOver=h-d,l.length>0&&y(e).unusedInput.push(l),e._a[ze]<=12&&!0===y(e).bigHour&&e._a[ze]>0&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[ze]=An(e._locale,e._a[ze],e._meridiem),null!==(o=y(e).era)&&(e._a[je]=e._locale.erasConvertYear(o,e._a[je])),Vn(e),vn(e)}else Un(e);else Tn(e)}function An(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}function jn(e){var t,n,s,i,r,a,o=!1,u=e._f.length;if(0===u)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:w()}));function Xn(e,t){var n,s;if(1===t.length&&r(t[0])&&(t=t[0]),!t.length)return Bn();for(n=t[0],s=1;sthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ms(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return k(t,this),(t=zn(t))._a?(e=t._isUTC?m(t._a):Bn(t._a),this._isDSTShifted=this.isValid()&&ls(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Ds(){return!!this.isValid()&&!this._isUTC}function Ss(){return!!this.isValid()&&this._isUTC}function Ys(){return!!this.isValid()&&this._isUTC&&0===this._offset}s.updateOffset=function(){};var Os=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,bs=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function xs(e,t){var n,s,i,r=e,a=null;return os(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(a=Os.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:he(a[Ze])*n,h:he(a[ze])*n,m:he(a[$e])*n,s:he(a[qe])*n,ms:he(us(1e3*a[Be]))*n}):(a=bs.exec(e))?(n="-"===a[1]?-1:1,r={y:Ts(a[2],n),M:Ts(a[3],n),w:Ts(a[4],n),d:Ts(a[5],n),h:Ts(a[6],n),m:Ts(a[7],n),s:Ts(a[8],n)}):null==r?r={}:"object"===typeof r&&("from"in r||"to"in r)&&(i=Ps(Bn(r.from),Bn(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new as(r),os(e)&&o(e,"_locale")&&(s._locale=e._locale),os(e)&&o(e,"_isValid")&&(s._isValid=e._isValid),s}function Ts(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ns(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ps(e,t){var n;return e.isValid()&&t.isValid()?(t=fs(t,e),e.isBefore(t)?n=Ns(e,t):((n=Ns(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Rs(e,t){return function(n,s){var i;return null===s||isNaN(+s)||(x(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=s,s=i),Ws(this,xs(n,s),e),this}}function Ws(e,t,n,i){var r=t._milliseconds,a=us(t._days),o=us(t._months);e.isValid()&&(i=null==i||i,o&<(e,ce(e,"Month")+o*n),a&&fe(e,"Date",ce(e,"Date")+a*n),r&&e._d.setTime(e._d.valueOf()+r*n),i&&s.updateOffset(e,a||o))}xs.fn=as.prototype,xs.invalid=rs;var Cs=Rs(1,"add"),Us=Rs(-1,"subtract");function Hs(e){return"string"===typeof e||e instanceof String}function Fs(e){return D(e)||d(e)||Hs(e)||h(e)||Vs(e)||Ls(e)||null===e||void 0===e}function Ls(e){var t,n,s=a(e)&&!u(e),i=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],l=r.length;for(t=0;tn.valueOf():n.valueOf()9999?j(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",j(n,"Z")):j(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ei(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,s,i="moment",r="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",r="Z"),e="["+i+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=r+'[")]',this.format(e+t+n+s)}function ti(e){e||(e=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var t=j(this,e);return this.localeData().postformat(t)}function ni(e,t){return this.isValid()&&(D(e)&&e.isValid()||Bn(e).isValid())?xs({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function si(e){return this.from(Bn(),e)}function ii(e,t){return this.isValid()&&(D(e)&&e.isValid()||Bn(e).isValid())?xs({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ri(e){return this.to(Bn(),e)}function ai(e){var t;return void 0===e?this._locale._abbr:(null!=(t=wn(e))&&(this._locale=t),this)}s.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",s.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var oi=Y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function ui(){return this._locale}var li=1e3,hi=60*li,di=60*hi,ci=3506328*di;function fi(e,t){return(e%t+t)%t}function mi(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-ci:new Date(e,t,n).valueOf()}function _i(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-ci:Date.UTC(e,t,n)}function yi(e){var t,n;if(void 0===(e=se(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_i:mi,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=fi(t+(this._isUTC?0:this.utcOffset()*hi),di);break;case"minute":t=this._d.valueOf(),t-=fi(t,hi);break;case"second":t=this._d.valueOf(),t-=fi(t,li)}return this._d.setTime(t),s.updateOffset(this,!0),this}function gi(e){var t,n;if(void 0===(e=se(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_i:mi,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=di-fi(t+(this._isUTC?0:this.utcOffset()*hi),di)-1;break;case"minute":t=this._d.valueOf(),t+=hi-fi(t,hi)-1;break;case"second":t=this._d.valueOf(),t+=li-fi(t,li)-1}return this._d.setTime(t),s.updateOffset(this,!0),this}function wi(){return this._d.valueOf()-6e4*(this._offset||0)}function pi(){return Math.floor(this.valueOf()/1e3)}function vi(){return new Date(this.valueOf())}function ki(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Mi(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Di(){return this.isValid()?this.toISOString():null}function Si(){return g(this)}function Yi(){return f({},y(this))}function Oi(){return y(this).overflow}function bi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function xi(e,t){var n,i,r,a=this._eras||wn("en")._eras;for(n=0,i=a.length;n=0)return u[s]}function Ni(e,t){var n=e.since<=e.until?1:-1;return void 0===t?s(e.since).year():s(e.since).year()+(t-e.offset)*n}function Pi(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;e(r=Dt(e,s,i))&&(t=r),Qi.call(this,e,t,n,s,i))}function Qi(e,t,n,s,i){var r=kt(e,t,n,s,i),a=pt(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Xi(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}E("N",0,0,"eraAbbr"),E("NN",0,0,"eraAbbr"),E("NNN",0,0,"eraAbbr"),E("NNNN",0,0,"eraName"),E("NNNNN",0,0,"eraNarrow"),E("y",["y",1],"yo","eraYear"),E("y",["yy",2],0,"eraYear"),E("y",["yyy",3],0,"eraYear"),E("y",["yyyy",4],0,"eraYear"),Ce("N",Li),Ce("NN",Li),Ce("NNN",Li),Ce("NNNN",Vi),Ce("NNNNN",Ei),Ve(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,s){var i=n._locale.erasParse(e,s,n._strict);i?y(n).era=i:y(n).invalidEra=e})),Ce("y",xe),Ce("yy",xe),Ce("yyy",xe),Ce("yyyy",xe),Ce("yo",Gi),Ve(["y","yy","yyy","yyyy"],je),Ve(["yo"],(function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[je]=n._locale.eraYearOrdinalParse(e,i):t[je]=parseInt(e,10)})),E(0,["gg",2],0,(function(){return this.weekYear()%100})),E(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ji("gggg","weekYear"),ji("ggggg","weekYear"),ji("GGGG","isoWeekYear"),ji("GGGGG","isoWeekYear"),ne("weekYear","gg"),ne("isoWeekYear","GG"),ae("weekYear",1),ae("isoWeekYear",1),Ce("G",Te),Ce("g",Te),Ce("GG",Me,we),Ce("gg",Me,we),Ce("GGGG",Oe,ve),Ce("gggg",Oe,ve),Ce("GGGGG",be,ke),Ce("ggggg",be,ke),Ee(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,s){t[s.substr(0,2)]=he(e)})),Ee(["gg","GG"],(function(e,t,n,i){t[i]=s.parseTwoDigitYear(e)})),E("Q",0,"Qo","quarter"),ne("quarter","Q"),ae("quarter",7),Ce("Q",ge),Ve("Q",(function(e,t){t[Ie]=3*(he(e)-1)})),E("D",["DD",2],"Do","date"),ne("date","D"),ae("date",9),Ce("D",Me),Ce("DD",Me,we),Ce("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Ve(["D","DD"],Ze),Ve("Do",(function(e,t){t[Ze]=he(e.match(Me)[0])}));var Ki=de("Date",!0);function er(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}E("DDD",["DDDD",3],"DDDo","dayOfYear"),ne("dayOfYear","DDD"),ae("dayOfYear",4),Ce("DDD",Ye),Ce("DDDD",pe),Ve(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=he(e)})),E("m",["mm",2],0,"minute"),ne("minute","m"),ae("minute",14),Ce("m",Me),Ce("mm",Me,we),Ve(["m","mm"],$e);var tr=de("Minutes",!1);E("s",["ss",2],0,"second"),ne("second","s"),ae("second",15),Ce("s",Me),Ce("ss",Me,we),Ve(["s","ss"],qe);var nr,sr,ir=de("Seconds",!1);for(E("S",0,0,(function(){return~~(this.millisecond()/100)})),E(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),E(0,["SSS",3],0,"millisecond"),E(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),E(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),E(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),E(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),E(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),E(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),ne("millisecond","ms"),ae("millisecond",16),Ce("S",Ye,ge),Ce("SS",Ye,we),Ce("SSS",Ye,pe),nr="SSSS";nr.length<=9;nr+="S")Ce(nr,xe);function rr(e,t){t[Be]=he(1e3*("0."+e))}for(nr="S";nr.length<=9;nr+="S")Ve(nr,rr);function ar(){return this._isUTC?"UTC":""}function or(){return this._isUTC?"Coordinated Universal Time":""}sr=de("Milliseconds",!1),E("z",0,0,"zoneAbbr"),E("zz",0,0,"zoneName");var ur=M.prototype;function lr(e){return Bn(1e3*e)}function hr(){return Bn.apply(null,arguments).parseZone()}function dr(e){return e}ur.add=Cs,ur.calendar=As,ur.clone=js,ur.diff=Js,ur.endOf=gi,ur.format=ti,ur.from=ni,ur.fromNow=si,ur.to=ii,ur.toNow=ri,ur.get=me,ur.invalidAt=Oi,ur.isAfter=Is,ur.isBefore=Zs,ur.isBetween=zs,ur.isSame=$s,ur.isSameOrAfter=qs,ur.isSameOrBefore=Bs,ur.isValid=Si,ur.lang=oi,ur.locale=ai,ur.localeData=ui,ur.max=Qn,ur.min=Jn,ur.parsingFlags=Yi,ur.set=_e,ur.startOf=yi,ur.subtract=Us,ur.toArray=ki,ur.toObject=Mi,ur.toDate=vi,ur.toISOString=Ks,ur.inspect=ei,"undefined"!==typeof Symbol&&null!=Symbol.for&&(ur[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ur.toJSON=Di,ur.toString=Xs,ur.unix=pi,ur.valueOf=wi,ur.creationData=bi,ur.eraName=Pi,ur.eraNarrow=Ri,ur.eraAbbr=Wi,ur.eraYear=Ci,ur.year=yt,ur.isLeapYear=gt,ur.weekYear=Ii,ur.isoWeekYear=Zi,ur.quarter=ur.quarters=Xi,ur.month=ht,ur.daysInMonth=dt,ur.week=ur.weeks=xt,ur.isoWeek=ur.isoWeeks=Tt,ur.weeksInYear=qi,ur.weeksInWeekYear=Bi,ur.isoWeeksInYear=zi,ur.isoWeeksInISOWeekYear=$i,ur.date=Ki,ur.day=ur.days=It,ur.weekday=Zt,ur.isoWeekday=zt,ur.dayOfYear=er,ur.hour=ur.hours=sn,ur.minute=ur.minutes=tr,ur.second=ur.seconds=ir,ur.millisecond=ur.milliseconds=sr,ur.utcOffset=_s,ur.utc=gs,ur.local=ws,ur.parseZone=ps,ur.hasAlignedHourOffset=vs,ur.isDST=ks,ur.isLocal=Ds,ur.isUtcOffset=Ss,ur.isUtc=Ys,ur.isUTC=Ys,ur.zoneAbbr=ar,ur.zoneName=or,ur.dates=Y("dates accessor is deprecated. Use date instead.",Ki),ur.months=Y("months accessor is deprecated. Use month instead",ht),ur.years=Y("years accessor is deprecated. Use year instead",yt),ur.zone=Y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",ys),ur.isDSTShifted=Y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ms);var cr=R.prototype;function fr(e,t,n,s){var i=wn(),r=m().set(s,t);return i[n](r,e)}function mr(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return fr(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=fr(e,s,n,"month");return i}function _r(e,t,n,s){"boolean"===typeof e?(h(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,h(t)&&(n=t,t=void 0),t=t||"");var i,r=wn(),a=e?r._week.dow:0,o=[];if(null!=n)return fr(t,(n+a)%7,s,"day");for(i=0;i<7;i++)o[i]=fr(t,(i+a)%7,s,"day");return o}function yr(e,t){return mr(e,t,"months")}function gr(e,t){return mr(e,t,"monthsShort")}function wr(e,t,n){return _r(e,t,n,"weekdays")}function pr(e,t,n){return _r(e,t,n,"weekdaysShort")}function vr(e,t,n){return _r(e,t,n,"weekdaysMin")}cr.calendar=C,cr.longDateFormat=z,cr.invalidDate=q,cr.ordinal=Q,cr.preparse=dr,cr.postformat=dr,cr.relativeTime=K,cr.pastFuture=ee,cr.set=N,cr.eras=xi,cr.erasParse=Ti,cr.erasConvertYear=Ni,cr.erasAbbrRegex=Hi,cr.erasNameRegex=Ui,cr.erasNarrowRegex=Fi,cr.months=rt,cr.monthsShort=at,cr.monthsParse=ut,cr.monthsRegex=ft,cr.monthsShortRegex=ct,cr.week=St,cr.firstDayOfYear=bt,cr.firstDayOfWeek=Ot,cr.weekdays=Vt,cr.weekdaysMin=Gt,cr.weekdaysShort=Et,cr.weekdaysParse=jt,cr.weekdaysRegex=$t,cr.weekdaysShortRegex=qt,cr.weekdaysMinRegex=Bt,cr.isPM=tn,cr.meridiem=rn,_n("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===he(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),s.lang=Y("moment.lang is deprecated. Use moment.locale instead.",_n),s.langData=Y("moment.langData is deprecated. Use moment.localeData instead.",wn);var kr=Math.abs;function Mr(){var e=this._data;return this._milliseconds=kr(this._milliseconds),this._days=kr(this._days),this._months=kr(this._months),e.milliseconds=kr(e.milliseconds),e.seconds=kr(e.seconds),e.minutes=kr(e.minutes),e.hours=kr(e.hours),e.months=kr(e.months),e.years=kr(e.years),this}function Dr(e,t,n,s){var i=xs(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function Sr(e,t){return Dr(this,e,t,1)}function Yr(e,t){return Dr(this,e,t,-1)}function Or(e){return e<0?Math.floor(e):Math.ceil(e)}function br(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*Or(Tr(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=le(r/1e3),u.seconds=e%60,t=le(e/60),u.minutes=t%60,n=le(t/60),u.hours=n%24,a+=le(n/24),o+=i=le(xr(a)),a-=Or(Tr(i)),s=le(o/12),o%=12,u.days=a,u.months=o,u.years=s,this}function xr(e){return 4800*e/146097}function Tr(e){return 146097*e/4800}function Nr(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=se(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+xr(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Tr(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}}function Pr(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*he(this._months/12):NaN}function Rr(e){return function(){return this.as(e)}}var Wr=Rr("ms"),Cr=Rr("s"),Ur=Rr("m"),Hr=Rr("h"),Fr=Rr("d"),Lr=Rr("w"),Vr=Rr("M"),Er=Rr("Q"),Gr=Rr("y");function Ar(){return xs(this)}function jr(e){return e=se(e),this.isValid()?this[e+"s"]():NaN}function Ir(e){return function(){return this.isValid()?this._data[e]:NaN}}var Zr=Ir("milliseconds"),zr=Ir("seconds"),$r=Ir("minutes"),qr=Ir("hours"),Br=Ir("days"),Jr=Ir("months"),Qr=Ir("years");function Xr(){return le(this.days()/7)}var Kr=Math.round,ea={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ta(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}function na(e,t,n,s){var i=xs(e).abs(),r=Kr(i.as("s")),a=Kr(i.as("m")),o=Kr(i.as("h")),u=Kr(i.as("d")),l=Kr(i.as("M")),h=Kr(i.as("w")),d=Kr(i.as("y")),c=r<=n.ss&&["s",r]||r0,c[4]=s,ta.apply(null,c)}function sa(e){return void 0===e?Kr:"function"===typeof e&&(Kr=e,!0)}function ia(e,t){return void 0!==ea[e]&&(void 0===t?ea[e]:(ea[e]=t,"s"===e&&(ea.ss=t-1),!0))}function ra(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,s,i=!1,r=ea;return"object"===typeof e&&(t=e,e=!1),"boolean"===typeof e&&(i=e),"object"===typeof t&&(r=Object.assign({},ea,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),s=na(this,!i,r,n=this.localeData()),i&&(s=n.pastFuture(+this,s)),n.postformat(s)}var aa=Math.abs;function oa(e){return(e>0)-(e<0)||+e}function ua(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s,i,r,a,o,u=aa(this._milliseconds)/1e3,l=aa(this._days),h=aa(this._months),d=this.asSeconds();return d?(e=le(u/60),t=le(e/60),u%=60,e%=60,n=le(h/12),h%=12,s=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=d<0?"-":"",r=oa(this._months)!==oa(d)?"-":"",a=oa(this._days)!==oa(d)?"-":"",o=oa(this._milliseconds)!==oa(d)?"-":"",i+"P"+(n?r+n+"Y":"")+(h?r+h+"M":"")+(l?a+l+"D":"")+(t||e||u?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(u?o+s+"S":"")):"P0D"}var la=as.prototype;return la.isValid=is,la.abs=Mr,la.add=Sr,la.subtract=Yr,la.as=Nr,la.asMilliseconds=Wr,la.asSeconds=Cr,la.asMinutes=Ur,la.asHours=Hr,la.asDays=Fr,la.asWeeks=Lr,la.asMonths=Vr,la.asQuarters=Er,la.asYears=Gr,la.valueOf=Pr,la._bubble=br,la.clone=Ar,la.get=jr,la.milliseconds=Zr,la.seconds=zr,la.minutes=$r,la.hours=qr,la.days=Br,la.weeks=Xr,la.months=Jr,la.years=Qr,la.humanize=ra,la.toISOString=ua,la.toString=ua,la.toJSON=ua,la.locale=ai,la.localeData=ui,la.toIsoString=Y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ua),la.lang=oi,E("X",0,0,"unix"),E("x",0,0,"valueOf"),Ce("x",Te),Ce("X",Re),Ve("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),Ve("x",(function(e,t,n){n._d=new Date(he(e))})),s.version="2.29.2",i(Bn),s.fn=ur,s.min=Kn,s.max=es,s.now=ts,s.utc=m,s.unix=lr,s.months=yr,s.isDate=d,s.locale=_n,s.invalid=w,s.duration=xs,s.isMoment=D,s.weekdays=wr,s.parseZone=hr,s.localeData=wn,s.isDuration=os,s.monthsShort=gr,s.weekdaysMin=vr,s.defineLocale=yn,s.updateLocale=gn,s.locales=pn,s.weekdaysShort=pr,s.normalizeUnits=se,s.relativeTimeRounding=sa,s.relativeTimeThreshold=ia,s.calendarFormat=Gs,s.prototype=ur,s.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},s}()}}]); +//# sourceMappingURL=2426.172b5361.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2426.bc0cfae1.chunk.js.LICENSE.txt b/portal-ui/build/static/js/2426.172b5361.chunk.js.LICENSE.txt similarity index 100% rename from portal-ui/build/static/js/2426.bc0cfae1.chunk.js.LICENSE.txt rename to portal-ui/build/static/js/2426.172b5361.chunk.js.LICENSE.txt diff --git a/portal-ui/build/static/js/2426.172b5361.chunk.js.map b/portal-ui/build/static/js/2426.172b5361.chunk.js.map new file mode 100644 index 000000000..a56a0fc71 --- /dev/null +++ b/portal-ui/build/static/js/2426.172b5361.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2426.172b5361.chunk.js","mappings":"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","sources":["../node_modules/moment/moment.js"],"sourcesContent":["//! moment.js\n//! version : 2.29.2\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.2';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n"],"names":["exports","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","arrLen","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","argLen","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","isLocaleNameSane","oldLocale","module","_abbr","aliasedRequire","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2426.bc0cfae1.chunk.js b/portal-ui/build/static/js/2426.bc0cfae1.chunk.js deleted file mode 100644 index 88def8675..000000000 --- a/portal-ui/build/static/js/2426.bc0cfae1.chunk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 2426.bc0cfae1.chunk.js.LICENSE.txt */ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2426],{72426:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,n;function s(){return t.apply(null,arguments)}function i(e){t=e}function r(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function l(e){return void 0===e}function h(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function c(e,t){var n,s=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,F=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,L={},V={};function E(e,t,n,s){var i=s;"string"===typeof s&&(i=function(){return this[s]()}),e&&(V[e]=i),t&&(V[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(V[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function A(e){var t,n,s=e.match(H);for(t=0,n=s.length;t=0&&F.test(e);)e=e.replace(F,s),F.lastIndex=0,n-=1;return e}var Z={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function z(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(H).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var $="Invalid date";function q(){return this._invalidDate}var B="%d",J=/\d{1,2}/;function Q(e){return this._ordinal.replace("%d",e)}var X={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function K(e,t,n,s){var i=this._relativeTime[n];return T(i)?i(e,t,n,s):i.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return T(n)?n(t):n.replace(/%s/i,t)}var te={};function ne(e,t){var n=e.toLowerCase();te[n]=te[n+"s"]=te[t]=e}function se(e){return"string"===typeof e?te[e]||te[e.toLowerCase()]:void 0}function ie(e){var t,n,s={};for(n in e)o(e,n)&&(t=se(n))&&(s[t]=e[n]);return s}var re={};function ae(e,t){re[e]=t}function oe(e){var t,n=[];for(t in e)o(e,t)&&n.push({unit:t,priority:re[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}function ue(e){return e%4===0&&e%100!==0||e%400===0}function le(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function he(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=le(t)),n}function de(e,t){return function(n){return null!=n?(fe(this,e,n),s.updateOffset(this,t),this):ce(this,e)}}function ce(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function fe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ue(e.year())&&1===e.month()&&29===e.date()?(n=he(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Ke(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function me(e){return T(this[e=se(e)])?this[e]():this}function _e(e,t){if("object"===typeof e){var n,s=oe(e=ie(e));for(n=0;n68?1900:2e3)};var yt=de("FullYear",!0);function gt(){return ue(this.year())}function wt(e,t,n,s,i,r,a){var o;return e<100&&e>=0?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function pt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function vt(e,t,n){var s=7+t-n;return-(7+pt(e,0,s).getUTCDay()-t)%7+s-1}function kt(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+vt(e,s,i);return o<=0?a=_t(r=e-1)+o:o>_t(e)?(r=e+1,a=o-_t(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Mt(e,t,n){var s,i,r=vt(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Dt(i=e.year()-1,t,n):a>Dt(e.year(),t,n)?(s=a-Dt(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Dt(e,t,n){var s=vt(e,t,n),i=vt(e+1,t,n);return(_t(e)-s+i)/7}function St(e){return Mt(e,this._week.dow,this._week.doy).week}E("w",["ww",2],"wo","week"),E("W",["WW",2],"Wo","isoWeek"),ne("week","w"),ne("isoWeek","W"),ae("week",5),ae("isoWeek",5),Ce("w",Me),Ce("ww",Me,we),Ce("W",Me),Ce("WW",Me,we),Ee(["w","ww","W","WW"],(function(e,t,n,s){t[s.substr(0,1)]=he(e)}));var Yt={dow:0,doy:6};function Ot(){return this._week.dow}function bt(){return this._week.doy}function xt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Tt(e){var t=Mt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Nt(e,t){return"string"!==typeof e?e:isNaN(e)?"number"===typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Pt(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Rt(e,t){return e.slice(t,7).concat(e.slice(0,t))}E("d",0,"do","day"),E("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),E("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),E("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),E("e",0,0,"weekday"),E("E",0,0,"isoWeekday"),ne("day","d"),ne("weekday","e"),ne("isoWeekday","E"),ae("day",11),ae("weekday",11),ae("isoWeekday",11),Ce("d",Me),Ce("e",Me),Ce("E",Me),Ce("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Ce("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Ce("dddd",(function(e,t){return t.weekdaysRegex(e)})),Ee(["dd","ddd","dddd"],(function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:y(n).invalidWeekday=e})),Ee(["d","e","E"],(function(e,t,n,s){t[s]=he(e)}));var Wt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ct="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ut="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ht=We,Ft=We,Lt=We;function Vt(e,t){var n=r(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Rt(n,this._week.dow):e?n[e.day()]:n}function Et(e){return!0===e?Rt(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Gt(e){return!0===e?Rt(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function At(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=m([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ae.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ae.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._shortWeekdaysParse,a))||-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ae.call(this._shortWeekdaysParse,a))||-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ae.call(this._minWeekdaysParse,a))||-1!==(i=Ae.call(this._weekdaysParse,a))||-1!==(i=Ae.call(this._shortWeekdaysParse,a))?i:null}function jt(e,t,n){var s,i,r;if(this._weekdaysParseExact)return At.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=m([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}}function It(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Nt(e,this.localeData()),this.add(e-t,"d")):t}function Zt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function zt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pt(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function $t(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function qt(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ft),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Bt(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Jt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Lt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Jt(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),s=Fe(this.weekdaysMin(n,"")),i=Fe(this.weekdaysShort(n,"")),r=Fe(this.weekdays(n,"")),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);a.sort(e),o.sort(e),u.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qt(){return this.hours()%12||12}function Xt(){return this.hours()||24}function Kt(e,t){E(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function en(e,t){return t._meridiemParse}function tn(e){return"p"===(e+"").toLowerCase().charAt(0)}E("H",["HH",2],0,"hour"),E("h",["hh",2],0,Qt),E("k",["kk",2],0,Xt),E("hmm",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)})),E("hmmss",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)})),E("Hmm",0,0,(function(){return""+this.hours()+U(this.minutes(),2)})),E("Hmmss",0,0,(function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)})),Kt("a",!0),Kt("A",!1),ne("hour","h"),ae("hour",13),Ce("a",en),Ce("A",en),Ce("H",Me),Ce("h",Me),Ce("k",Me),Ce("HH",Me,we),Ce("hh",Me,we),Ce("kk",Me,we),Ce("hmm",De),Ce("hmmss",Se),Ce("Hmm",De),Ce("Hmmss",Se),Ve(["H","HH"],ze),Ve(["k","kk"],(function(e,t,n){var s=he(e);t[ze]=24===s?0:s})),Ve(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Ve(["h","hh"],(function(e,t,n){t[ze]=he(e),y(n).bigHour=!0})),Ve("hmm",(function(e,t,n){var s=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s)),y(n).bigHour=!0})),Ve("hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s,2)),t[qe]=he(e.substr(i)),y(n).bigHour=!0})),Ve("Hmm",(function(e,t,n){var s=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s))})),Ve("Hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[ze]=he(e.substr(0,s)),t[$e]=he(e.substr(s,2)),t[qe]=he(e.substr(i))}));var nn=/[ap]\.?m?\.?/i,sn=de("Hours",!0);function rn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var an,on={calendar:W,longDateFormat:Z,invalidDate:$,ordinal:B,dayOfMonthOrdinalParse:J,relativeTime:X,months:et,monthsShort:tt,week:Yt,weekdays:Wt,weekdaysMin:Ut,weekdaysShort:Ct,meridiemParse:nn},un={},ln={};function hn(e,t){var n,s=Math.min(e.length,t.length);for(n=0;n0;){if(s=fn(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&hn(i,n)>=t-1)break;t--}r++}return an}function fn(t){var n=null;if(void 0===un[t]&&e&&e.exports)try{n=an._abbr,Object(function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}()),mn(n)}catch(s){un[t]=null}return un[t]}function mn(e,t){var n;return e&&((n=l(t)?gn(e):_n(e,t))?an=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),an._abbr}function _n(e,t){if(null!==t){var n,s=on;if(t.abbr=e,null!=un[e])x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])s=un[t.parentLocale]._config;else{if(null==(n=fn(t.parentLocale)))return ln[t.parentLocale]||(ln[t.parentLocale]=[]),ln[t.parentLocale].push({name:e,config:t}),null;s=n._config}return un[e]=new R(P(s,t)),ln[e]&&ln[e].forEach((function(e){_n(e.name,e.config)})),mn(e),un[e]}return delete un[e],null}function yn(e,t){if(null!=t){var n,s,i=on;null!=un[e]&&null!=un[e].parentLocale?un[e].set(P(un[e]._config,t)):(null!=(s=fn(e))&&(i=s._config),t=P(i,t),null==s&&(t.abbr=e),(n=new R(t)).parentLocale=un[e],un[e]=n),mn(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===mn()&&mn(e)):null!=un[e]&&delete un[e]);return un[e]}function gn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return an;if(!r(e)){if(t=fn(e))return t;e=[e]}return cn(e)}function wn(){return O(un)}function pn(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[Ie]<0||n[Ie]>11?Ie:n[Ze]<1||n[Ze]>Ke(n[je],n[Ie])?Ze:n[ze]<0||n[ze]>24||24===n[ze]&&(0!==n[$e]||0!==n[qe]||0!==n[Be])?ze:n[$e]<0||n[$e]>59?$e:n[qe]<0||n[qe]>59?qe:n[Be]<0||n[Be]>999?Be:-1,y(e)._overflowDayOfYear&&(tZe)&&(t=Ze),y(e)._overflowWeeks&&-1===t&&(t=Je),y(e)._overflowWeekday&&-1===t&&(t=Qe),y(e).overflow=t),e}var vn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,kn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Mn=/Z|[+-]\d\d(?::?\d\d)?/,Dn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Sn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Yn=/^\/?Date\((-?\d+)/i,On=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,bn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function xn(e){var t,n,s,i,r,a,o=e._i,u=vn.exec(o)||kn.exec(o);if(u){for(y(e).iso=!0,t=0,n=Dn.length;t_t(r)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=pt(r,0,e._dayOfYear),e._a[Ie]=n.getUTCMonth(),e._a[Ze]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ze]&&0===e._a[$e]&&0===e._a[qe]&&0===e._a[Be]&&(e._nextDay=!0,e._a[ze]=0),e._d=(e._useUTC?pt:wt).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ze]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==i&&(y(e).weekdayMismatch=!0)}}function Vn(e){var t,n,s,i,r,a,o,u,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,a=4,n=Hn(t.GG,e._a[je],Mt(qn(),1,4).year),s=Hn(t.W,1),((i=Hn(t.E,1))<1||i>7)&&(u=!0)):(r=e._locale._week.dow,a=e._locale._week.doy,l=Mt(qn(),r,a),n=Hn(t.gg,e._a[je],l.year),s=Hn(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r),s<1||s>Dt(n,r,a)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(o=kt(n,s,i,r,a),e._a[je]=o.year,e._dayOfYear=o.dayOfYear)}function En(e){if(e._f!==s.ISO_8601)if(e._f!==s.RFC_2822){e._a=[],y(e).empty=!0;var t,n,i,r,a,o,u=""+e._i,l=u.length,h=0;for(i=I(e._f,e._locale).match(H)||[],t=0;t0&&y(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),h+=n.length),V[r]?(n?y(e).empty=!1:y(e).unusedTokens.push(r),Ge(r,n,e)):e._strict&&!n&&y(e).unusedTokens.push(r);y(e).charsLeftOver=l-h,u.length>0&&y(e).unusedInput.push(u),e._a[ze]<=12&&!0===y(e).bigHour&&e._a[ze]>0&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[ze]=Gn(e._locale,e._a[ze],e._meridiem),null!==(o=y(e).era)&&(e._a[je]=e._locale.erasConvertYear(o,e._a[je])),Ln(e),pn(e)}else Cn(e);else xn(e)}function Gn(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}function An(e){var t,n,s,i,r,a,o=!1;if(0===e._f.length)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:w()}));function Qn(e,t){var n,s;if(1===t.length&&r(t[0])&&(t=t[0]),!t.length)return qn();for(n=t[0],s=1;sthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function ks(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return k(t,this),(t=Zn(t))._a?(e=t._isUTC?m(t._a):qn(t._a),this._isDSTShifted=this.isValid()&&us(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Ms(){return!!this.isValid()&&!this._isUTC}function Ds(){return!!this.isValid()&&this._isUTC}function Ss(){return!!this.isValid()&&this._isUTC&&0===this._offset}s.updateOffset=function(){};var Ys=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Os=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function bs(e,t){var n,s,i,r=e,a=null;return as(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(a=Ys.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:he(a[Ze])*n,h:he(a[ze])*n,m:he(a[$e])*n,s:he(a[qe])*n,ms:he(os(1e3*a[Be]))*n}):(a=Os.exec(e))?(n="-"===a[1]?-1:1,r={y:xs(a[2],n),M:xs(a[3],n),w:xs(a[4],n),d:xs(a[5],n),h:xs(a[6],n),m:xs(a[7],n),s:xs(a[8],n)}):null==r?r={}:"object"===typeof r&&("from"in r||"to"in r)&&(i=Ns(qn(r.from),qn(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new rs(r),as(e)&&o(e,"_locale")&&(s._locale=e._locale),as(e)&&o(e,"_isValid")&&(s._isValid=e._isValid),s}function xs(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ts(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ns(e,t){var n;return e.isValid()&&t.isValid()?(t=cs(t,e),e.isBefore(t)?n=Ts(e,t):((n=Ts(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Ps(e,t){return function(n,s){var i;return null===s||isNaN(+s)||(x(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=s,s=i),Rs(this,bs(n,s),e),this}}function Rs(e,t,n,i){var r=t._milliseconds,a=os(t._days),o=os(t._months);e.isValid()&&(i=null==i||i,o&<(e,ce(e,"Month")+o*n),a&&fe(e,"Date",ce(e,"Date")+a*n),r&&e._d.setTime(e._d.valueOf()+r*n),i&&s.updateOffset(e,a||o))}bs.fn=rs.prototype,bs.invalid=is;var Ws=Ps(1,"add"),Cs=Ps(-1,"subtract");function Us(e){return"string"===typeof e||e instanceof String}function Hs(e){return D(e)||d(e)||Us(e)||h(e)||Ls(e)||Fs(e)||null===e||void 0===e}function Fs(e){var t,n,s=a(e)&&!u(e),i=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;tn.valueOf():n.valueOf()9999?j(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",j(n,"Z")):j(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Ks(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,s,i="moment",r="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",r="Z"),e="["+i+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=r+'[")]',this.format(e+t+n+s)}function ei(e){e||(e=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var t=j(this,e);return this.localeData().postformat(t)}function ti(e,t){return this.isValid()&&(D(e)&&e.isValid()||qn(e).isValid())?bs({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ni(e){return this.from(qn(),e)}function si(e,t){return this.isValid()&&(D(e)&&e.isValid()||qn(e).isValid())?bs({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ii(e){return this.to(qn(),e)}function ri(e){var t;return void 0===e?this._locale._abbr:(null!=(t=gn(e))&&(this._locale=t),this)}s.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",s.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ai=Y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function oi(){return this._locale}var ui=1e3,li=60*ui,hi=60*li,di=3506328*hi;function ci(e,t){return(e%t+t)%t}function fi(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-di:new Date(e,t,n).valueOf()}function mi(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-di:Date.UTC(e,t,n)}function _i(e){var t,n;if(void 0===(e=se(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:fi,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=ci(t+(this._isUTC?0:this.utcOffset()*li),hi);break;case"minute":t=this._d.valueOf(),t-=ci(t,li);break;case"second":t=this._d.valueOf(),t-=ci(t,ui)}return this._d.setTime(t),s.updateOffset(this,!0),this}function yi(e){var t,n;if(void 0===(e=se(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:fi,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=hi-ci(t+(this._isUTC?0:this.utcOffset()*li),hi)-1;break;case"minute":t=this._d.valueOf(),t+=li-ci(t,li)-1;break;case"second":t=this._d.valueOf(),t+=ui-ci(t,ui)-1}return this._d.setTime(t),s.updateOffset(this,!0),this}function gi(){return this._d.valueOf()-6e4*(this._offset||0)}function wi(){return Math.floor(this.valueOf()/1e3)}function pi(){return new Date(this.valueOf())}function vi(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function ki(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Mi(){return this.isValid()?this.toISOString():null}function Di(){return g(this)}function Si(){return f({},y(this))}function Yi(){return y(this).overflow}function Oi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function bi(e,t){var n,i,r,a=this._eras||gn("en")._eras;for(n=0,i=a.length;n=0)return u[s]}function Ti(e,t){var n=e.since<=e.until?1:-1;return void 0===t?s(e.since).year():s(e.since).year()+(t-e.offset)*n}function Ni(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;e(r=Dt(e,s,i))&&(t=r),Ji.call(this,e,t,n,s,i))}function Ji(e,t,n,s,i){var r=kt(e,t,n,s,i),a=pt(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Qi(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}E("N",0,0,"eraAbbr"),E("NN",0,0,"eraAbbr"),E("NNN",0,0,"eraAbbr"),E("NNNN",0,0,"eraName"),E("NNNNN",0,0,"eraNarrow"),E("y",["y",1],"yo","eraYear"),E("y",["yy",2],0,"eraYear"),E("y",["yyy",3],0,"eraYear"),E("y",["yyyy",4],0,"eraYear"),Ce("N",Fi),Ce("NN",Fi),Ce("NNN",Fi),Ce("NNNN",Li),Ce("NNNNN",Vi),Ve(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,s){var i=n._locale.erasParse(e,s,n._strict);i?y(n).era=i:y(n).invalidEra=e})),Ce("y",xe),Ce("yy",xe),Ce("yyy",xe),Ce("yyyy",xe),Ce("yo",Ei),Ve(["y","yy","yyy","yyyy"],je),Ve(["yo"],(function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[je]=n._locale.eraYearOrdinalParse(e,i):t[je]=parseInt(e,10)})),E(0,["gg",2],0,(function(){return this.weekYear()%100})),E(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Ai("gggg","weekYear"),Ai("ggggg","weekYear"),Ai("GGGG","isoWeekYear"),Ai("GGGGG","isoWeekYear"),ne("weekYear","gg"),ne("isoWeekYear","GG"),ae("weekYear",1),ae("isoWeekYear",1),Ce("G",Te),Ce("g",Te),Ce("GG",Me,we),Ce("gg",Me,we),Ce("GGGG",Oe,ve),Ce("gggg",Oe,ve),Ce("GGGGG",be,ke),Ce("ggggg",be,ke),Ee(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,s){t[s.substr(0,2)]=he(e)})),Ee(["gg","GG"],(function(e,t,n,i){t[i]=s.parseTwoDigitYear(e)})),E("Q",0,"Qo","quarter"),ne("quarter","Q"),ae("quarter",7),Ce("Q",ge),Ve("Q",(function(e,t){t[Ie]=3*(he(e)-1)})),E("D",["DD",2],"Do","date"),ne("date","D"),ae("date",9),Ce("D",Me),Ce("DD",Me,we),Ce("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Ve(["D","DD"],Ze),Ve("Do",(function(e,t){t[Ze]=he(e.match(Me)[0])}));var Xi=de("Date",!0);function Ki(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}E("DDD",["DDDD",3],"DDDo","dayOfYear"),ne("dayOfYear","DDD"),ae("dayOfYear",4),Ce("DDD",Ye),Ce("DDDD",pe),Ve(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=he(e)})),E("m",["mm",2],0,"minute"),ne("minute","m"),ae("minute",14),Ce("m",Me),Ce("mm",Me,we),Ve(["m","mm"],$e);var er=de("Minutes",!1);E("s",["ss",2],0,"second"),ne("second","s"),ae("second",15),Ce("s",Me),Ce("ss",Me,we),Ve(["s","ss"],qe);var tr,nr,sr=de("Seconds",!1);for(E("S",0,0,(function(){return~~(this.millisecond()/100)})),E(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),E(0,["SSS",3],0,"millisecond"),E(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),E(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),E(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),E(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),E(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),E(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),ne("millisecond","ms"),ae("millisecond",16),Ce("S",Ye,ge),Ce("SS",Ye,we),Ce("SSS",Ye,pe),tr="SSSS";tr.length<=9;tr+="S")Ce(tr,xe);function ir(e,t){t[Be]=he(1e3*("0."+e))}for(tr="S";tr.length<=9;tr+="S")Ve(tr,ir);function rr(){return this._isUTC?"UTC":""}function ar(){return this._isUTC?"Coordinated Universal Time":""}nr=de("Milliseconds",!1),E("z",0,0,"zoneAbbr"),E("zz",0,0,"zoneName");var or=M.prototype;function ur(e){return qn(1e3*e)}function lr(){return qn.apply(null,arguments).parseZone()}function hr(e){return e}or.add=Ws,or.calendar=Gs,or.clone=As,or.diff=Bs,or.endOf=yi,or.format=ei,or.from=ti,or.fromNow=ni,or.to=si,or.toNow=ii,or.get=me,or.invalidAt=Yi,or.isAfter=js,or.isBefore=Is,or.isBetween=Zs,or.isSame=zs,or.isSameOrAfter=$s,or.isSameOrBefore=qs,or.isValid=Di,or.lang=ai,or.locale=ri,or.localeData=oi,or.max=Jn,or.min=Bn,or.parsingFlags=Si,or.set=_e,or.startOf=_i,or.subtract=Cs,or.toArray=vi,or.toObject=ki,or.toDate=pi,or.toISOString=Xs,or.inspect=Ks,"undefined"!==typeof Symbol&&null!=Symbol.for&&(or[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),or.toJSON=Mi,or.toString=Qs,or.unix=wi,or.valueOf=gi,or.creationData=Oi,or.eraName=Ni,or.eraNarrow=Pi,or.eraAbbr=Ri,or.eraYear=Wi,or.year=yt,or.isLeapYear=gt,or.weekYear=ji,or.isoWeekYear=Ii,or.quarter=or.quarters=Qi,or.month=ht,or.daysInMonth=dt,or.week=or.weeks=xt,or.isoWeek=or.isoWeeks=Tt,or.weeksInYear=$i,or.weeksInWeekYear=qi,or.isoWeeksInYear=Zi,or.isoWeeksInISOWeekYear=zi,or.date=Xi,or.day=or.days=It,or.weekday=Zt,or.isoWeekday=zt,or.dayOfYear=Ki,or.hour=or.hours=sn,or.minute=or.minutes=er,or.second=or.seconds=sr,or.millisecond=or.milliseconds=nr,or.utcOffset=ms,or.utc=ys,or.local=gs,or.parseZone=ws,or.hasAlignedHourOffset=ps,or.isDST=vs,or.isLocal=Ms,or.isUtcOffset=Ds,or.isUtc=Ss,or.isUTC=Ss,or.zoneAbbr=rr,or.zoneName=ar,or.dates=Y("dates accessor is deprecated. Use date instead.",Xi),or.months=Y("months accessor is deprecated. Use month instead",ht),or.years=Y("years accessor is deprecated. Use year instead",yt),or.zone=Y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",_s),or.isDSTShifted=Y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",ks);var dr=R.prototype;function cr(e,t,n,s){var i=gn(),r=m().set(s,t);return i[n](r,e)}function fr(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return cr(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=cr(e,s,n,"month");return i}function mr(e,t,n,s){"boolean"===typeof e?(h(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,h(t)&&(n=t,t=void 0),t=t||"");var i,r=gn(),a=e?r._week.dow:0,o=[];if(null!=n)return cr(t,(n+a)%7,s,"day");for(i=0;i<7;i++)o[i]=cr(t,(i+a)%7,s,"day");return o}function _r(e,t){return fr(e,t,"months")}function yr(e,t){return fr(e,t,"monthsShort")}function gr(e,t,n){return mr(e,t,n,"weekdays")}function wr(e,t,n){return mr(e,t,n,"weekdaysShort")}function pr(e,t,n){return mr(e,t,n,"weekdaysMin")}dr.calendar=C,dr.longDateFormat=z,dr.invalidDate=q,dr.ordinal=Q,dr.preparse=hr,dr.postformat=hr,dr.relativeTime=K,dr.pastFuture=ee,dr.set=N,dr.eras=bi,dr.erasParse=xi,dr.erasConvertYear=Ti,dr.erasAbbrRegex=Ui,dr.erasNameRegex=Ci,dr.erasNarrowRegex=Hi,dr.months=rt,dr.monthsShort=at,dr.monthsParse=ut,dr.monthsRegex=ft,dr.monthsShortRegex=ct,dr.week=St,dr.firstDayOfYear=bt,dr.firstDayOfWeek=Ot,dr.weekdays=Vt,dr.weekdaysMin=Gt,dr.weekdaysShort=Et,dr.weekdaysParse=jt,dr.weekdaysRegex=$t,dr.weekdaysShortRegex=qt,dr.weekdaysMinRegex=Bt,dr.isPM=tn,dr.meridiem=rn,mn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===he(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),s.lang=Y("moment.lang is deprecated. Use moment.locale instead.",mn),s.langData=Y("moment.langData is deprecated. Use moment.localeData instead.",gn);var vr=Math.abs;function kr(){var e=this._data;return this._milliseconds=vr(this._milliseconds),this._days=vr(this._days),this._months=vr(this._months),e.milliseconds=vr(e.milliseconds),e.seconds=vr(e.seconds),e.minutes=vr(e.minutes),e.hours=vr(e.hours),e.months=vr(e.months),e.years=vr(e.years),this}function Mr(e,t,n,s){var i=bs(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function Dr(e,t){return Mr(this,e,t,1)}function Sr(e,t){return Mr(this,e,t,-1)}function Yr(e){return e<0?Math.floor(e):Math.ceil(e)}function Or(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*Yr(xr(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=le(r/1e3),u.seconds=e%60,t=le(e/60),u.minutes=t%60,n=le(t/60),u.hours=n%24,a+=le(n/24),o+=i=le(br(a)),a-=Yr(xr(i)),s=le(o/12),o%=12,u.days=a,u.months=o,u.years=s,this}function br(e){return 4800*e/146097}function xr(e){return 146097*e/4800}function Tr(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=se(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+br(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(xr(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}}function Nr(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*he(this._months/12):NaN}function Pr(e){return function(){return this.as(e)}}var Rr=Pr("ms"),Wr=Pr("s"),Cr=Pr("m"),Ur=Pr("h"),Hr=Pr("d"),Fr=Pr("w"),Lr=Pr("M"),Vr=Pr("Q"),Er=Pr("y");function Gr(){return bs(this)}function Ar(e){return e=se(e),this.isValid()?this[e+"s"]():NaN}function jr(e){return function(){return this.isValid()?this._data[e]:NaN}}var Ir=jr("milliseconds"),Zr=jr("seconds"),zr=jr("minutes"),$r=jr("hours"),qr=jr("days"),Br=jr("months"),Jr=jr("years");function Qr(){return le(this.days()/7)}var Xr=Math.round,Kr={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ea(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}function ta(e,t,n,s){var i=bs(e).abs(),r=Xr(i.as("s")),a=Xr(i.as("m")),o=Xr(i.as("h")),u=Xr(i.as("d")),l=Xr(i.as("M")),h=Xr(i.as("w")),d=Xr(i.as("y")),c=r<=n.ss&&["s",r]||r0,c[4]=s,ea.apply(null,c)}function na(e){return void 0===e?Xr:"function"===typeof e&&(Xr=e,!0)}function sa(e,t){return void 0!==Kr[e]&&(void 0===t?Kr[e]:(Kr[e]=t,"s"===e&&(Kr.ss=t-1),!0))}function ia(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,s,i=!1,r=Kr;return"object"===typeof e&&(t=e,e=!1),"boolean"===typeof e&&(i=e),"object"===typeof t&&(r=Object.assign({},Kr,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),s=ta(this,!i,r,n=this.localeData()),i&&(s=n.pastFuture(+this,s)),n.postformat(s)}var ra=Math.abs;function aa(e){return(e>0)-(e<0)||+e}function oa(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s,i,r,a,o,u=ra(this._milliseconds)/1e3,l=ra(this._days),h=ra(this._months),d=this.asSeconds();return d?(e=le(u/60),t=le(e/60),u%=60,e%=60,n=le(h/12),h%=12,s=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=d<0?"-":"",r=aa(this._months)!==aa(d)?"-":"",a=aa(this._days)!==aa(d)?"-":"",o=aa(this._milliseconds)!==aa(d)?"-":"",i+"P"+(n?r+n+"Y":"")+(h?r+h+"M":"")+(l?a+l+"D":"")+(t||e||u?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(u?o+s+"S":"")):"P0D"}var ua=rs.prototype;return ua.isValid=ss,ua.abs=kr,ua.add=Dr,ua.subtract=Sr,ua.as=Tr,ua.asMilliseconds=Rr,ua.asSeconds=Wr,ua.asMinutes=Cr,ua.asHours=Ur,ua.asDays=Hr,ua.asWeeks=Fr,ua.asMonths=Lr,ua.asQuarters=Vr,ua.asYears=Er,ua.valueOf=Nr,ua._bubble=Or,ua.clone=Gr,ua.get=Ar,ua.milliseconds=Ir,ua.seconds=Zr,ua.minutes=zr,ua.hours=$r,ua.days=qr,ua.weeks=Qr,ua.months=Br,ua.years=Jr,ua.humanize=ia,ua.toISOString=oa,ua.toString=oa,ua.toJSON=oa,ua.locale=ri,ua.localeData=oi,ua.toIsoString=Y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",oa),ua.lang=ai,E("X",0,0,"unix"),E("x",0,0,"valueOf"),Ce("x",Te),Ce("X",Re),Ve("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),Ve("x",(function(e,t,n){n._d=new Date(he(e))})),s.version="2.29.1",i(qn),s.fn=or,s.min=Xn,s.max=Kn,s.now=es,s.utc=m,s.unix=ur,s.months=_r,s.isDate=d,s.locale=mn,s.invalid=w,s.duration=bs,s.isMoment=D,s.weekdays=gr,s.parseZone=lr,s.localeData=gn,s.isDuration=as,s.monthsShort=yr,s.weekdaysMin=pr,s.defineLocale=_n,s.updateLocale=yn,s.locales=wn,s.weekdaysShort=wr,s.normalizeUnits=se,s.relativeTimeRounding=na,s.relativeTimeThreshold=sa,s.calendarFormat=Es,s.prototype=or,s.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},s}()}}]); -//# sourceMappingURL=2426.bc0cfae1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2426.bc0cfae1.chunk.js.map b/portal-ui/build/static/js/2426.bc0cfae1.chunk.js.map deleted file mode 100644 index 0a7a51bda..000000000 --- a/portal-ui/build/static/js/2426.bc0cfae1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2426.bc0cfae1.chunk.js","mappings":"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","sources":["../node_modules/moment/moment.js"],"sourcesContent":["//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n"],"names":["exports","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","oldLocale","module","_abbr","aliasedRequire","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2442.c325186c.chunk.js b/portal-ui/build/static/js/2442.c325186c.chunk.js deleted file mode 100644 index 9773c2cad..000000000 --- a/portal-ui/build/static/js/2442.c325186c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2442],{59860:function(n,t,o){o.d(t,{Z:function(){return _}});var i=o(4942),r=o(63366),a=o(87462),e=o(72791),s=o(14036),c=o(67384),d=o(90767),l=o(47630),u=o(93736),g=o(36151),v=o(30168),f=o(28182),Z=o(52554),h=o(95159),p=o(30208);function m(n){return(0,h.Z)("MuiCircularProgress",n)}(0,p.Z)("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]);var S,x,I,b,P,k,w,y,L=o(80184),M=["className","color","disableShrink","size","style","thickness","value","variant"],C=44,D=(0,Z.F4)(P||(P=S||(S=(0,v.Z)(["\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n"])))),R=(0,Z.F4)(k||(k=x||(x=(0,v.Z)(["\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n"])))),j=(0,l.ZP)("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:function(n,t){var o=n.ownerState;return[t.root,t[o.variant],t["color".concat((0,s.Z)(o.color))]]}})((function(n){var t=n.ownerState,o=n.theme;return(0,a.Z)({display:"inline-block"},"determinate"===t.variant&&{transition:o.transitions.create("transform")},"inherit"!==t.color&&{color:o.palette[t.color].main})}),(function(n){return"indeterminate"===n.ownerState.variant&&(0,Z.iv)(w||(w=I||(I=(0,v.Z)(["\n animation: "," 1.4s linear infinite;\n "]))),D)})),N=(0,l.ZP)("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:function(n,t){return t.svg}})({display:"block"}),F=(0,l.ZP)("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:function(n,t){var o=n.ownerState;return[t.circle,t["circle".concat((0,s.Z)(o.variant))],o.disableShrink&&t.circleDisableShrink]}})((function(n){var t=n.ownerState,o=n.theme;return(0,a.Z)({stroke:"currentColor"},"determinate"===t.variant&&{transition:o.transitions.create("stroke-dashoffset")},"indeterminate"===t.variant&&{strokeDasharray:"80px, 200px",strokeDashoffset:0})}),(function(n){var t=n.ownerState;return"indeterminate"===t.variant&&!t.disableShrink&&(0,Z.iv)(y||(y=b||(b=(0,v.Z)(["\n animation: "," 1.4s ease-in-out infinite;\n "]))),R)})),E=e.forwardRef((function(n,t){var o=(0,u.Z)({props:n,name:"MuiCircularProgress"}),i=o.className,e=o.color,c=void 0===e?"primary":e,l=o.disableShrink,g=void 0!==l&&l,v=o.size,Z=void 0===v?40:v,h=o.style,p=o.thickness,S=void 0===p?3.6:p,x=o.value,I=void 0===x?0:x,b=o.variant,P=void 0===b?"indeterminate":b,k=(0,r.Z)(o,M),w=(0,a.Z)({},o,{color:c,disableShrink:g,size:Z,thickness:S,value:I,variant:P}),y=function(n){var t=n.classes,o=n.variant,i=n.color,r=n.disableShrink,a={root:["root",o,"color".concat((0,s.Z)(i))],svg:["svg"],circle:["circle","circle".concat((0,s.Z)(o)),r&&"circleDisableShrink"]};return(0,d.Z)(a,m,t)}(w),D={},R={},E={};if("determinate"===P){var z=2*Math.PI*((C-S)/2);D.strokeDasharray=z.toFixed(3),E["aria-valuenow"]=Math.round(I),D.strokeDashoffset="".concat(((100-I)/100*z).toFixed(3),"px"),R.transform="rotate(-90deg)"}return(0,L.jsx)(j,(0,a.Z)({className:(0,f.Z)(y.root,i),style:(0,a.Z)({width:Z,height:Z},R,h),ownerState:w,ref:t,role:"progressbar"},E,k,{children:(0,L.jsx)(N,{className:y.svg,ownerState:w,viewBox:"".concat(22," ").concat(22," ").concat(C," ").concat(C),children:(0,L.jsx)(F,{className:y.circle,style:D,ownerState:w,cx:C,cy:C,r:(C-S)/2,fill:"none",strokeWidth:S})})}))}));function z(n){return(0,h.Z)("MuiLoadingButton",n)}var B=(0,p.Z)("MuiLoadingButton",["root","loading","loadingIndicator","loadingIndicatorCenter","loadingIndicatorStart","loadingIndicatorEnd","endIconLoadingEnd","startIconLoadingStart"]),W=["children","disabled","id","loading","loadingIndicator","loadingPosition","variant"],A=(0,l.ZP)(g.Z,{shouldForwardProp:function(n){return function(n){return"ownerState"!==n&&"theme"!==n&&"sx"!==n&&"as"!==n&&"classes"!==n}(n)||"classes"===n},name:"MuiLoadingButton",slot:"Root",overridesResolver:function(n,t){return[t.root,t.startIconLoadingStart&&(0,i.Z)({},"& .".concat(B.startIconLoadingStart),t.startIconLoadingStart),t.endIconLoadingEnd&&(0,i.Z)({},"& .".concat(B.endIconLoadingEnd),t.endIconLoadingEnd)]}})((function(n){var t=n.ownerState,o=n.theme;return(0,a.Z)((0,i.Z)({},"& .".concat(B.startIconLoadingStart,", & .").concat(B.endIconLoadingEnd),{transition:o.transitions.create(["opacity"],{duration:o.transitions.duration.short}),opacity:0}),"center"===t.loadingPosition&&(0,i.Z)({transition:o.transitions.create(["background-color","box-shadow","border-color"],{duration:o.transitions.duration.short})},"&.".concat(B.loading),{color:"transparent"}),"start"===t.loadingPosition&&t.fullWidth&&(0,i.Z)({},"& .".concat(B.startIconLoadingStart,", & .").concat(B.endIconLoadingEnd),{transition:o.transitions.create(["opacity"],{duration:o.transitions.duration.short}),opacity:0,marginRight:-8}),"end"===t.loadingPosition&&t.fullWidth&&(0,i.Z)({},"& .".concat(B.startIconLoadingStart,", & .").concat(B.endIconLoadingEnd),{transition:o.transitions.create(["opacity"],{duration:o.transitions.duration.short}),opacity:0,marginLeft:-8}))})),T=(0,l.ZP)("div",{name:"MuiLoadingButton",slot:"LoadingIndicator",overridesResolver:function(n,t){var o=n.ownerState;return[t.loadingIndicator,t["loadingIndicator".concat((0,s.Z)(o.loadingPosition))]]}})((function(n){var t=n.theme,o=n.ownerState;return(0,a.Z)({position:"absolute",visibility:"visible",display:"flex"},"start"===o.loadingPosition&&("outlined"===o.variant||"contained"===o.variant)&&{left:"small"===o.size?10:14},"start"===o.loadingPosition&&"text"===o.variant&&{left:6},"center"===o.loadingPosition&&{left:"50%",transform:"translate(-50%)",color:t.palette.action.disabled},"end"===o.loadingPosition&&("outlined"===o.variant||"contained"===o.variant)&&{right:"small"===o.size?10:14},"end"===o.loadingPosition&&"text"===o.variant&&{right:6},"start"===o.loadingPosition&&o.fullWidth&&{position:"relative",left:-10},"end"===o.loadingPosition&&o.fullWidth&&{position:"relative",right:-10})})),_=e.forwardRef((function(n,t){var o=(0,u.Z)({props:n,name:"MuiLoadingButton"}),i=o.children,l=o.disabled,g=void 0!==l&&l,v=o.id,f=o.loading,Z=void 0!==f&&f,h=o.loadingIndicator,p=o.loadingPosition,m=void 0===p?"center":p,S=o.variant,x=void 0===S?"text":S,I=(0,r.Z)(o,W),b=(0,c.Z)(v),P=null!=h?h:(0,L.jsx)(E,{"aria-labelledby":b,color:"inherit",size:16}),k=(0,a.Z)({},o,{disabled:g,loading:Z,loadingIndicator:P,loadingPosition:m,variant:x}),w=function(n){var t=n.loading,o=n.loadingPosition,i=n.classes,r={root:["root",t&&"loading"],startIcon:[t&&"startIconLoading".concat((0,s.Z)(o))],endIcon:[t&&"endIconLoading".concat((0,s.Z)(o))],loadingIndicator:["loadingIndicator",t&&"loadingIndicator".concat((0,s.Z)(o))]},e=(0,d.Z)(r,z,i);return(0,a.Z)({},i,e)}(k);return(0,L.jsx)(A,(0,a.Z)({disabled:g||Z,id:b,ref:t},I,{variant:x,classes:w,ownerState:k,children:"end"===k.loadingPosition?(0,L.jsxs)(e.Fragment,{children:[i,Z&&(0,L.jsx)(T,{className:w.loadingIndicator,ownerState:k,children:P})]}):(0,L.jsxs)(e.Fragment,{children:[Z&&(0,L.jsx)(T,{className:w.loadingIndicator,ownerState:k,children:P}),i]})}))}))},97123:function(n,t,o){o.d(t,{Z:function(){return Z}});var i=o(63366),r=o(87462),a=o(72791),e=o(28182),s=o(90767),c=o(47630),d=o(93736),l=o(95159);function u(n){return(0,l.Z)("MuiDialogActions",n)}(0,o(30208).Z)("MuiDialogActions",["root","spacing"]);var g=o(80184),v=["className","disableSpacing"],f=(0,c.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:function(n,t){var o=n.ownerState;return[t.root,!o.disableSpacing&&t.spacing]}})((function(n){var t=n.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}})})),Z=a.forwardRef((function(n,t){var o=(0,d.Z)({props:n,name:"MuiDialogActions"}),a=o.className,c=o.disableSpacing,l=void 0!==c&&c,Z=(0,i.Z)(o,v),h=(0,r.Z)({},o,{disableSpacing:l}),p=function(n){var t=n.classes,o={root:["root",!n.disableSpacing&&"spacing"]};return(0,s.Z)(o,u,t)}(h);return(0,g.jsx)(f,(0,r.Z)({className:(0,e.Z)(p.root,a),ownerState:h,ref:t},Z))}))},51691:function(n,t,o){o.d(t,{Z:function(){return Z}});var i=o(63366),r=o(87462),a=o(72791),e=o(90767),s=o(47630),c=o(93736),d=o(20890),l=o(95159);function u(n){return(0,l.Z)("MuiDialogContentText",n)}(0,o(30208).Z)("MuiDialogContentText",["root"]);var g=o(80184),v=["children"],f=(0,s.ZP)(d.Z,{shouldForwardProp:function(n){return(0,s.FO)(n)||"classes"===n},name:"MuiDialogContentText",slot:"Root",overridesResolver:function(n,t){return t.root}})({}),Z=a.forwardRef((function(n,t){var o=(0,c.Z)({props:n,name:"MuiDialogContentText"}),a=(0,i.Z)(o,v),s=function(n){var t=n.classes,o=(0,e.Z)({root:["root"]},u,t);return(0,r.Z)({},t,o)}(a);return(0,g.jsx)(f,(0,r.Z)({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:a},o,{classes:s}))}))}}]); -//# sourceMappingURL=2442.c325186c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2442.c325186c.chunk.js.map b/portal-ui/build/static/js/2442.c325186c.chunk.js.map deleted file mode 100644 index 4324f6f53..000000000 --- a/portal-ui/build/static/js/2442.c325186c.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2442.c325186c.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/@mui/lab/LoadingButton/loadingButtonClasses.js","../node_modules/@mui/lab/LoadingButton/LoadingButton.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js"],"sourcesContent":["import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\n\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: theme.palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.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 * 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 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(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n\n return null;\n }),\n\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, e.g '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\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 thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLoadingButtonUtilityClass(slot) {\n return generateUtilityClass('MuiLoadingButton', slot);\n}\nconst loadingButtonClasses = generateUtilityClasses('MuiLoadingButton', ['root', 'loading', 'loadingIndicator', 'loadingIndicatorCenter', 'loadingIndicatorStart', 'loadingIndicatorEnd', 'endIconLoadingEnd', 'startIconLoadingStart']);\nexport default loadingButtonClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"disabled\", \"id\", \"loading\", \"loadingIndicator\", \"loadingPosition\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes } from '@mui/utils';\nimport { capitalize, unstable_useId as useId } from '@mui/material/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport loadingButtonClasses, { getLoadingButtonUtilityClass } from './loadingButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n loading,\n loadingPosition,\n classes\n } = ownerState;\n const slots = {\n root: ['root', loading && 'loading'],\n startIcon: [loading && `startIconLoading${capitalize(loadingPosition)}`],\n endIcon: [loading && `endIconLoading${capitalize(loadingPosition)}`],\n loadingIndicator: ['loadingIndicator', loading && `loadingIndicator${capitalize(loadingPosition)}`]\n };\n const composedClasses = composeClasses(slots, getLoadingButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n}; // TODO use `import { rootShouldForwardProp } from '../styles/styled';` once move to core\n\n\nconst rootShouldForwardProp = prop => prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as' && prop !== 'classes';\n\nconst LoadingButtonRoot = styled(Button, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiLoadingButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root, styles.startIconLoadingStart && {\n [`& .${loadingButtonClasses.startIconLoadingStart}`]: styles.startIconLoadingStart\n }, styles.endIconLoadingEnd && {\n [`& .${loadingButtonClasses.endIconLoadingEnd}`]: styles.endIconLoadingEnd\n }];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {\n transition: theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.short\n }),\n opacity: 0\n }\n}, ownerState.loadingPosition === 'center' && {\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {\n duration: theme.transitions.duration.short\n }),\n [`&.${loadingButtonClasses.loading}`]: {\n color: 'transparent'\n }\n}, ownerState.loadingPosition === 'start' && ownerState.fullWidth && {\n [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {\n transition: theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.short\n }),\n opacity: 0,\n marginRight: -8\n }\n}, ownerState.loadingPosition === 'end' && ownerState.fullWidth && {\n [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {\n transition: theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.short\n }),\n opacity: 0,\n marginLeft: -8\n }\n}));\nconst LoadingButtonLoadingIndicator = styled('div', {\n name: 'MuiLoadingButton',\n slot: 'LoadingIndicator',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.loadingIndicator, styles[`loadingIndicator${capitalize(ownerState.loadingPosition)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'absolute',\n visibility: 'visible',\n display: 'flex'\n}, ownerState.loadingPosition === 'start' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {\n left: ownerState.size === 'small' ? 10 : 14\n}, ownerState.loadingPosition === 'start' && ownerState.variant === 'text' && {\n left: 6\n}, ownerState.loadingPosition === 'center' && {\n left: '50%',\n transform: 'translate(-50%)',\n color: theme.palette.action.disabled\n}, ownerState.loadingPosition === 'end' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {\n right: ownerState.size === 'small' ? 10 : 14\n}, ownerState.loadingPosition === 'end' && ownerState.variant === 'text' && {\n right: 6\n}, ownerState.loadingPosition === 'start' && ownerState.fullWidth && {\n position: 'relative',\n left: -10\n}, ownerState.loadingPosition === 'end' && ownerState.fullWidth && {\n position: 'relative',\n right: -10\n}));\nconst LoadingButton = /*#__PURE__*/React.forwardRef(function LoadingButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLoadingButton'\n });\n\n const {\n children,\n disabled = false,\n id: idProp,\n loading = false,\n loadingIndicator: loadingIndicatorProp,\n loadingPosition = 'center',\n variant = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const id = useId(idProp);\n const loadingIndicator = loadingIndicatorProp != null ? loadingIndicatorProp : /*#__PURE__*/_jsx(CircularProgress, {\n \"aria-labelledby\": id,\n color: \"inherit\",\n size: 16\n });\n\n const ownerState = _extends({}, props, {\n disabled,\n loading,\n loadingIndicator,\n loadingPosition,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LoadingButtonRoot, _extends({\n disabled: disabled || loading,\n id: id,\n ref: ref\n }, other, {\n variant: variant,\n classes: classes,\n ownerState: ownerState,\n children: ownerState.loadingPosition === 'end' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [children, loading && /*#__PURE__*/_jsx(LoadingButtonLoadingIndicator, {\n className: classes.loadingIndicator,\n ownerState: ownerState,\n children: loadingIndicator\n })]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [loading && /*#__PURE__*/_jsx(LoadingButtonLoadingIndicator, {\n className: classes.loadingIndicator,\n ownerState: ownerState,\n children: loadingIndicator\n }), children]\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? LoadingButton.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 * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * @ignore\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the loading indicator is shown.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Element placed before the children if the button is in loading state.\n * The node should contain an element with `role=\"progressbar\"` with an accessible name.\n * By default we render a `CircularProgress` that is labelled by the button itself.\n * @default \n */\n loadingIndicator: PropTypes.node,\n\n /**\n * The loading indicator can be positioned on the start, end, or the center of the button.\n * @default 'center'\n */\n loadingPosition: chainPropTypes(PropTypes.oneOf(['start', 'end', 'center']), props => {\n if (props.loadingPosition === 'start' && !props.startIcon) {\n return new Error(`MUI: The loadingPosition=\"start\" should be used in combination with startIcon.`);\n }\n\n if (props.loadingPosition === 'end' && !props.endIcon) {\n return new Error(`MUI: The loadingPosition=\"end\" should be used in combination with endIcon.`);\n }\n\n return null;\n }),\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 * @default 'text'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['contained', 'outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default LoadingButton;","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 getDialogContentTextUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContentText', slot);\n}\nconst dialogContentTextClasses = generateUtilityClasses('MuiDialogContentText', ['root']);\nexport default dialogContentTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport { getDialogContentTextUtilityClass } from './dialogContentTextClasses';\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 const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst DialogContentTextRoot = styled(Typography, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiDialogContentText',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst DialogContentText = /*#__PURE__*/React.forwardRef(function DialogContentText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContentText'\n });\n\n const ownerState = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentTextRoot, _extends({\n component: \"p\",\n variant: \"body1\",\n color: \"text.secondary\",\n ref: ref,\n ownerState: ownerState\n }, props, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContentText.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 * 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 DialogContentText;"],"names":["getCircularProgressUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_t","_t2","_t3","_t4","_excluded","SIZE","circularRotateKeyframe","keyframes","circularDashKeyframe","CircularProgressRoot","styled","name","overridesResolver","props","styles","ownerState","root","variant","capitalize","color","theme","_extends","display","transition","transitions","create","palette","main","css","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","React","inProps","ref","useThemeProps","className","size","style","thickness","value","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","useUtilityClasses","circleStyle","rootStyle","rootProps","circumference","Math","PI","toFixed","round","transform","_jsx","clsx","width","height","role","children","viewBox","cx","cy","r","fill","strokeWidth","getLoadingButtonUtilityClass","LoadingButtonRoot","Button","shouldForwardProp","prop","rootShouldForwardProp","startIconLoadingStart","loadingButtonClasses","endIconLoadingEnd","duration","short","opacity","loadingPosition","fullWidth","marginRight","marginLeft","LoadingButtonLoadingIndicator","loadingIndicator","position","visibility","left","action","disabled","right","idProp","id","loading","loadingIndicatorProp","useId","CircularProgress","startIcon","endIcon","composedClasses","_jsxs","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","spacing","alignItems","padding","justifyContent","flex","getDialogContentTextUtilityClass","DialogContentTextRoot","Typography","component"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js b/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js new file mode 100644 index 000000000..c2688c1b8 --- /dev/null +++ b/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2512],{23804:function(e,t,n){n(72791);var i=n(11135),a=n(25787),s=n(61889),l=n(80184);t.Z=(0,a.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 t=e.classes,n=e.iconComponent,i=e.title,a=e.help;return(0,l.jsx)("div",{className:t.root,children:(0,l.jsxs)(s.ZP,{container:!0,children:[(0,l.jsxs)(s.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,l.jsx)(s.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},32512:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var i=n(93433),a=n(29439),s=n(1413),l=n(72791),r=n(60364),o=n(11135),c=n(25787),d=n(61889),u=n(42649),m=n(23814),h=n(38442),f=n(56087),p=n(93656),x=n(81207),g=n(92983),Z=n(23804),j=n(60680),v=n(75578),b=n(40603),S=n(36151),k=n(56028),N=n(21435),R=n(17420),C=n(64163),P=n(37516),y=n(80184),E=(0,r.$j)(null,{setModalErrorSnackMessage:u.zb}),I=(0,c.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"},multiContainer:{display:"flex",alignItems:"center"},sizeFactorContainer:{"& label":{display:"none"},"& div:first-child":{marginBottom:0}}},m.bK),m.QV),m.DF),m.ID),{},{modalFormScrollable:(0,s.Z)((0,s.Z)({},m.ID.modalFormScrollable),{},{paddingRight:10})}))}))(E((function(e){var t=e.closeModalAndRefresh,n=e.open,i=e.classes,s=e.bucketName,r=e.ruleID,o=e.setModalErrorSnackMessage,c=(0,l.useState)(!0),u=(0,a.Z)(c,2),m=u[0],h=u[1],f=(0,l.useState)(!1),g=(0,a.Z)(f,2),Z=g[0],j=g[1],v=(0,l.useState)("1"),b=(0,a.Z)(v,2),E=b[0],I=b[1],F=(0,l.useState)(""),T=(0,a.Z)(F,2),A=T[0],M=T[1],w=(0,l.useState)(""),D=(0,a.Z)(w,2),B=D[0],O=D[1],_=(0,l.useState)(!1),L=(0,a.Z)(_,2),G=L[0],U=L[1],z=(0,l.useState)(!1),K=(0,a.Z)(z,2),H=K[0],W=K[1],Y=(0,l.useState)(""),q=(0,a.Z)(Y,2),V=q[0],$=q[1],Q=(0,l.useState)(""),X=(0,a.Z)(Q,2),J=X[0],ee=X[1],te=(0,l.useState)(""),ne=(0,a.Z)(te,2),ie=ne[0],ae=ne[1],se=(0,l.useState)(!1),le=(0,a.Z)(se,2),re=le[0],oe=le[1],ce=(0,l.useState)(!1),de=(0,a.Z)(ce,2),ue=de[0],me=de[1],he=(0,l.useState)(!1),fe=(0,a.Z)(he,2),pe=fe[0],xe=fe[1];return(0,l.useEffect)((function(){m&&x.Z.invoke("GET","/api/v1/buckets/".concat(s,"/replication/").concat(r)).then((function(e){I(e.priority.toString());var t=e.prefix||"",n=e.tags||"";O(t),$(n),ee(n),M(e.destination.bucket),U(e.delete_marker_replication),ae(e.storageClass||""),oe(!!e.existingObjects),me(!!e.deletes_replication),xe("Enabled"===e.status),W(!!e.metadata_replication),h(!1)})).catch((function(e){o(e),h(!1)}))}),[m,o,s,r]),(0,l.useEffect)((function(){if(Z){var e={arn:A,ruleState:pe,prefix:B,tags:J,replicateDeleteMarkers:G,replicateDeletes:ue,replicateExistingObjects:re,replicateMetadata:H,priority:parseInt(E),storageClass:ie};x.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/replication/").concat(r),e).then((function(){j(!1),t(!0)})).catch((function(e){o(e),j(!1)}))}}),[Z,s,r,A,B,J,G,E,ue,re,pe,H,ie,t,o]),(0,y.jsx)(k.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Edit Bucket Replication",titleIcon:(0,y.jsx)(p.xR,{}),children:(0,y.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),j(!0)},children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalFormScrollable,children:[(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:pe,id:"ruleState",name:"ruleState",label:"Rule State",onChange:function(e){xe(e.target.checked)},value:pe})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(C.Z,{label:"Destination",content:A})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(N.Z,{id:"priority",name:"priority",onChange:function(e){e.target.validity.valid&&I(e.target.value)},label:"Priority",value:E,pattern:"[0-9]*"})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(i.spacerTop," ").concat(i.formFieldRow),children:(0,y.jsx)(N.Z,{id:"storageClass",name:"storageClass",onChange:function(e){ae(e.target.value)},placeholder:"STANDARD_IA,REDUCED_REDUNDANCY etc",label:"Storage Class",value:ie})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsxs)("fieldset",{className:i.fieldGroup,children:[(0,y.jsx)("legend",{className:i.descriptionText,children:"Object Filters"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(N.Z,{id:"prefix",name:"prefix",onChange:function(e){O(e.target.value)},placeholder:"prefix",label:"Prefix",value:B})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(R.Z,{name:"tags",label:"Tags",elements:V,onChange:function(e){ee(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsxs)("fieldset",{className:i.fieldGroup,children:[(0,y.jsx)("legend",{className:i.descriptionText,children:"Replication Options"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:re,id:"repExisting",name:"repExisting",label:"Existing Objects",onChange:function(e){oe(e.target.checked)},value:re,description:"Replicate existing objects"})}),(0,y.jsx)(P.Z,{checked:H,id:"metadatataSync",name:"metadatataSync",label:"Metadata Sync",onChange:function(e){W(e.target.checked)},value:H,description:"Metadata Sync"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:G,id:"deleteMarker",name:"deleteMarker",label:"Delete Marker",onChange:function(e){U(e.target.checked)},value:G,description:"Replicate soft deletes"})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:ue,id:"repDelete",name:"repDelete",label:"Deletes",onChange:function(e){me(e.target.checked)},value:ue,description:"Replicate versioned deletes"})})]})})]}),(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalButtonBar,children:[(0,y.jsx)(S.Z,{type:"button",variant:"outlined",color:"primary",disabled:m||Z,onClick:function(){t(!1)},children:"Cancel"}),(0,y.jsx)(S.Z,{type:"submit",variant:"contained",color:"primary",disabled:m||Z,children:"Save"})]})]})})})}))),F=(0,v.Z)(l.lazy((function(){return n.e(889).then(n.bind(n,20889))}))),T=(0,v.Z)(l.lazy((function(){return n.e(9088).then(n.bind(n,69088))}))),A=(0,r.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:u.Ih}),M=(0,c.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},m.qg),m.OR),{},{twHeight:{minHeight:400}}))}))(A((function(e){var t=e.classes,n=e.match,s=e.setErrorSnackMessage,r=e.loadingBucket,o=(0,l.useState)(!0),c=(0,a.Z)(o,2),u=c[0],m=c[1],v=(0,l.useState)([]),S=(0,a.Z)(v,2),k=S[0],N=S[1],R=(0,l.useState)(!1),C=(0,a.Z)(R,2),P=C[0],E=C[1],A=(0,l.useState)(!1),M=(0,a.Z)(A,2),w=M[0],D=M[1],B=(0,l.useState)(!1),O=(0,a.Z)(B,2),_=O[0],L=O[1],G=(0,l.useState)(""),U=(0,a.Z)(G,2),z=U[0],K=U[1],H=(0,l.useState)([]),W=(0,a.Z)(H,2),Y=W[0],q=W[1],V=(0,l.useState)(!1),$=(0,a.Z)(V,2),Q=$[0],X=$[1],J=n.params.bucketName,ee=(0,h.F)(J,[f.Ft.S3_GET_REPLICATION_CONFIGURATION]);(0,l.useEffect)((function(){r&&m(!0)}),[r,m]),(0,l.useEffect)((function(){u&&(ee?x.Z.invoke("GET","/api/v1/buckets/".concat(J,"/replication")).then((function(e){var t=e.rules?e.rules:[];t.sort((function(e,t){return e.priority-t.priority})),N(t),m(!1)})).catch((function(e){s(e),m(!1)})):m(!1))}),[u,s,J,ee]);var te=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];D(e)},ne=[{type:"delete",onClick:function(e){K(e.id),X(!1),E(!0)}},{type:"view",onClick:function(e){K(e.id),L(!0)},disableButtonFunction:!(0,h.F)(J,[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],!0)}];return(0,y.jsxs)(l.Fragment,{children:[w&&(0,y.jsx)(F,{closeModalAndRefresh:function(){te(!1),m(!0)},open:w,bucketName:J,setReplicationRules:k}),P&&(0,y.jsx)(T,{deleteOpen:P,selectedBucket:J,closeDeleteModalAndRefresh:function(e){E(!1),e&&m(!0)},ruleToDelete:z,rulesToDelete:Y,remainingRules:k.length,allSelected:Y.length===k.length,deleteSelectedRules:Q}),_&&(0,y.jsx)(I,{closeModalAndRefresh:function(e){L(!1),e&&m(!0)},open:_,bucketName:J,ruleID:z}),(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,y.jsx)(j.Z,{children:"Replication"}),(0,y.jsxs)("div",{children:[(0,y.jsx)(h.s,{scopes:[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],resource:J,matchAll:!0,errorProps:{disabled:!0},children:(0,y.jsx)(b.Z,{tooltip:"Remove Selected Replication Rules",onClick:function(){K("selectedRules"),X(!0),E(!0)},text:"Remove Selected Rules",icon:(0,y.jsx)(p.XH,{}),color:"secondary",variant:"outlined",disabled:0===Y.length})}),(0,y.jsx)(h.s,{scopes:[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],resource:J,matchAll:!0,errorProps:{disabled:!0},children:(0,y.jsx)(b.Z,{tooltip:"Add Replication Rule",onClick:function(){te(!0)},text:"Add Replication Rule",icon:(0,y.jsx)(p.dt,{}),color:"primary",variant:"contained"})})]})]}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsx)(h.s,{scopes:[f.Ft.S3_GET_REPLICATION_CONFIGURATION],resource:J,errorProps:{disabled:!0},children:(0,y.jsx)(g.Z,{itemActions:ne,columns:[{label:"Priority",elementKey:"priority",width:55,contentTextAlign:"center"},{label:"Destination",elementKey:"destination",renderFunction:function(e){return(0,y.jsx)(l.Fragment,{children:e.bucket.replace("arn:aws:s3:::","")})}},{label:"Prefix",elementKey:"prefix",width:200},{label:"Tags",elementKey:"tags",renderFunction:function(e){return(0,y.jsx)(l.Fragment,{children:e&&""!==e.tags?"Yes":"No"})},width:60},{label:"Status",elementKey:"status",width:100}],isLoading:u,records:k,entityName:"Replication Rules",idField:"id",customPaperHeight:t.twHeight,textSelectable:!0,selectedItems:Y,onSelect:function(e){return function(e){var t=e.target,n=t.value,a=t.checked,s=(0,i.Z)(Y);return a?s.push(n):s=s.filter((function(e){return e!==n})),q(s),s}(e)},onSelectAll:function(){Y.length!==k.length?q(k.map((function(e){return e.id}))):q([])}})})}),(0,y.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,y.jsx)("br",{}),(0,y.jsx)(Z.Z,{title:"Replication",iconComponent:(0,y.jsx)(p.wN,{}),help:(0,y.jsxs)(l.Fragment,{children:["MinIO supports server-side and client-side replication of objects between source and destination buckets.",(0,y.jsx)("br",{}),(0,y.jsx)("br",{}),"You can learn more at our"," ",(0,y.jsx)("a",{href:"https://docs.min.io/minio/baremetal/replication/replication-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})]})]})]})})))},64163:function(e,t,n){var i=n(1413),a=n(72791),s=n(61889),l=n(11135),r=n(25787),o=n(23814),c=n(80184);t.Z=(0,r.Z)((function(e){return(0,l.Z)((0,i.Z)({},o.xx))}))((function(e){var t=e.classes,n=e.label,i=void 0===n?"":n,l=e.content,r=e.multiLine,o=void 0!==r&&r;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(s.ZP,{className:t.prefinedContainer,children:[""!==i&&(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:i}),(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(s.ZP,{item:!0,xs:12,className:o?t.innerContentMultiline:t.innerContent,children:l})})]})})}))},17420:function(e,t,n){var i=n(93433),a=n(29439),s=n(1413),l=n(72791),r=n(26181),o=n.n(r),c=n(48573),d=n.n(c),u=n(11135),m=n(25787),h=n(61889),f=n(77961),p=n(30829),x=n(20068),g=n(23814),Z=n(21435),j=n(47919),v=n(80184);t.Z=(0,m.Z)((function(e){return(0,u.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},g.YI),g.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 t=e.elements,n=e.name,s=e.label,r=e.tooltip,c=void 0===r?"":r,u=e.keyPlaceholder,m=void 0===u?"":u,g=e.valuePlaceholder,b=void 0===g?"":g,S=e.onChange,k=e.withBorder,N=void 0!==k&&k,R=e.classes,C=(0,l.useState)([""]),P=(0,a.Z)(C,2),y=P[0],E=P[1],I=(0,l.useState)([""]),F=(0,a.Z)(I,2),T=F[0],A=F[1],M=(0,l.createRef)();(0,l.useEffect)((function(){if(1===y.length&&""===y[0]&&1===T.length&&""===T[0]&&t&&""!==t){var e=t.split("&"),n=[],i=[];e.forEach((function(e){var t=e.split("=");2===t.length&&(n.push(t[0]),i.push(t[1]))})),n.push(""),i.push(""),E(n),A(i)}}),[y,T,t]),(0,l.useEffect)((function(){var e=M.current;e&&y.length>1&&e.scrollIntoView(!1)}),[y]);var w=(0,l.useRef)(!0);(0,l.useLayoutEffect)((function(){w.current?w.current=!1:O()}),[y,T]);var D=function(e){e.persist();var t=(0,i.Z)(y);t[o()(e.target,"dataset.index",0)]=e.target.value,E(t)},B=function(e){e.persist();var t=(0,i.Z)(T);t[o()(e.target,"dataset.index",0)]=e.target.value,A(t)},O=d()((function(){var e="";y.forEach((function(t,n){if(y[n]&&T[n]){var i="".concat(t,"=").concat(T[n]);0!==n&&(i="&".concat(i)),e="".concat(e).concat(i)}})),S(e)}),500),_=T.map((function(e,t){return(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:R.lineInputBoxes,children:[(0,v.jsx)(Z.Z,{id:"".concat(n,"-key-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:y[t],onChange:D,index:t,placeholder:m}),(0,v.jsx)("span",{className:R.queryDiv,children:":"}),(0,v.jsx)(Z.Z,{id:"".concat(n,"-value-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:T[t],onChange:B,index:t,placeholder:b,overlayIcon:t===T.length-1?(0,v.jsx)(j.Z,{}):null,overlayAction:function(){!function(){if(""!==y[y.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,i.Z)(y),t=(0,i.Z)(T);e.push(""),t.push(""),E(e),A(t)}}()}})]},"query-pair-".concat(n,"-").concat(t.toString()))}));return(0,v.jsx)(l.Fragment,{children:(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:R.fieldContainer,children:[(0,v.jsxs)(p.Z,{className:R.inputLabel,children:[(0,v.jsx)("span",{children:s}),""!==c&&(0,v.jsx)("div",{className:R.tooltipContainer,children:(0,v.jsx)(x.Z,{title:c,placement:"top-start",children:(0,v.jsx)(f.Z,{className:R.tooltip})})})]}),(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(N?R.inputWithBorder:""),children:[_,(0,v.jsx)("div",{ref:M})]})]})})}))},56028:function(e,t,n){var i=n(29439),a=n(1413),s=n(72791),l=n(60364),r=n(13400),o=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),h=n(25787),f=n(23814),p=n(42649),x=n(29823),g=n(28057),Z=n(80184),j=(0,l.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});t.Z=(0,h.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))}))(j((function(e){var t=e.onClose,n=e.modalOpen,l=e.title,m=e.children,h=e.classes,f=e.wideLimit,p=void 0===f||f,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,N=(0,s.useState)(!1),R=(0,i.Z)(N,2),C=R[0],P=R[1];(0,s.useEffect)((function(){b("")}),[b]),(0,s.useEffect)((function(){if(j){if(""===j.message)return void P(!1);"error"!==j.type&&P(!0)}}),[j]);var y=p?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return j&&(E=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(E=j.message)),(0,Z.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:n,classes:h},y),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,Z.jsxs)(d.Z,{className:h.title,children:[(0,Z.jsxs)("div",{className:h.titleText,children:[k," ",l]}),(0,Z.jsx)("div",{className:h.closeContainer,children:(0,Z.jsx)(r.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(x.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(o.Z,{open:C,className:h.snackBarModal,onClose:function(){P(!1),b("")},message:E,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},60680:function(e,t,n){n(72791);var i=n(11135),a=n(25787),s=n(80184);t.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,s.jsx)("h1",{className:t.root,children:n})}))}}]); +//# sourceMappingURL=2512.b0d0c6a4.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js.map b/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js.map new file mode 100644 index 000000000..0ad508b44 --- /dev/null +++ b/portal-ui/build/static/js/2512.b0d0c6a4.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2512.b0d0c6a4.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/EditReplicationModal.tsx","screens/Console/Buckets/BucketDetails/BucketReplicationPanel.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.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, { useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport { BucketReplicationIcon } from \"../../../../icons\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketReplicationRule } from \"../types\";\nimport { connect } from \"react-redux\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IEditReplicationModal {\n closeModalAndRefresh: (refresh: boolean) => void;\n open: boolean;\n classes: any;\n bucketName: string;\n ruleID: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n multiContainer: {\n display: \"flex\",\n alignItems: \"center\",\n },\n sizeFactorContainer: {\n \"& label\": {\n display: \"none\",\n },\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n ...spacingUtils,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalStyleUtils,\n modalFormScrollable: {\n ...modalStyleUtils.modalFormScrollable,\n paddingRight: 10,\n },\n });\n\nconst EditReplicationModal = ({\n closeModalAndRefresh,\n open,\n classes,\n bucketName,\n ruleID,\n setModalErrorSnackMessage,\n}: IEditReplicationModal) => {\n const [editLoading, setEditLoading] = useState(true);\n const [saveEdit, setSaveEdit] = useState(false);\n const [priority, setPriority] = useState(\"1\");\n const [destination, setDestination] = useState(\"\");\n const [prefix, setPrefix] = useState(\"\");\n const [repDeleteMarker, setRepDeleteMarker] = useState(false);\n const [metadataSync, setMetadataSync] = useState(false);\n const [initialTags, setInitialTags] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [targetStorageClass, setTargetStorageClass] = useState(\"\");\n const [repExisting, setRepExisting] = useState(false);\n const [repDelete, setRepDelete] = useState(false);\n const [ruleState, setRuleState] = useState(false);\n\n useEffect(() => {\n if (editLoading) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication/${ruleID}`)\n .then((res: BucketReplicationRule) => {\n setPriority(res.priority.toString());\n const pref = res.prefix || \"\";\n const tag = res.tags || \"\";\n setPrefix(pref);\n setInitialTags(tag);\n setTags(tag);\n setDestination(res.destination.bucket);\n setRepDeleteMarker(res.delete_marker_replication);\n setTargetStorageClass(res.storageClass || \"\");\n setRepExisting(!!res.existingObjects);\n setRepDelete(!!res.deletes_replication);\n setRuleState(res.status === \"Enabled\");\n setMetadataSync(!!res.metadata_replication);\n\n setEditLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setEditLoading(false);\n });\n }\n }, [editLoading, setModalErrorSnackMessage, bucketName, ruleID]);\n\n useEffect(() => {\n if (saveEdit) {\n const remoteBucketsInfo = {\n arn: destination,\n ruleState: ruleState,\n prefix: prefix,\n tags: tags,\n replicateDeleteMarkers: repDeleteMarker,\n replicateDeletes: repDelete,\n replicateExistingObjects: repExisting,\n replicateMetadata: metadataSync,\n priority: parseInt(priority),\n storageClass: targetStorageClass,\n };\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/replication/${ruleID}`,\n remoteBucketsInfo\n )\n .then(() => {\n setSaveEdit(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setSaveEdit(false);\n });\n }\n }, [\n saveEdit,\n bucketName,\n ruleID,\n destination,\n prefix,\n tags,\n repDeleteMarker,\n priority,\n repDelete,\n repExisting,\n ruleState,\n metadataSync,\n targetStorageClass,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n ]);\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Edit Bucket Replication\"\n titleIcon={}\n >\n ) => {\n e.preventDefault();\n setSaveEdit(true);\n }}\n >\n \n \n \n {\n setRuleState(e.target.checked);\n }}\n value={ruleState}\n />\n \n \n \n \n \n ) => {\n if (e.target.validity.valid) {\n setPriority(e.target.value);\n }\n }}\n label=\"Priority\"\n value={priority}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n setTargetStorageClass(e.target.value);\n }}\n placeholder=\"STANDARD_IA,REDUCED_REDUNDANCY etc\"\n label=\"Storage Class\"\n value={targetStorageClass}\n />\n \n \n
    \n \n Object Filters\n \n \n ) => {\n setPrefix(e.target.value);\n }}\n placeholder=\"prefix\"\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 Replication Options\n \n \n {\n setRepExisting(e.target.checked);\n }}\n value={repExisting}\n description={\"Replicate existing objects\"}\n />\n \n {\n setMetadataSync(e.target.checked);\n }}\n value={metadataSync}\n description={\"Metadata Sync\"}\n />\n \n {\n setRepDeleteMarker(e.target.checked);\n }}\n value={repDeleteMarker}\n description={\"Replicate soft deletes\"}\n />\n \n \n {\n setRepDelete(e.target.checked);\n }}\n value={repDelete}\n description={\"Replicate versioned deletes\"}\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n \n \n \n );\n};\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(EditReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n BucketInfo,\n BucketReplication,\n BucketReplicationDestination,\n BucketReplicationRule,\n} from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { AppState } from \"../../../../store\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { AddIcon, BucketsIcon, TrashIcon } from \"../../../../icons\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport EditReplicationModal from \"./EditReplicationModal\";\n\nconst AddReplicationModal = withSuspense(\n React.lazy(() => import(\"./AddReplicationModal\"))\n);\nconst DeleteReplicationRule = withSuspense(\n React.lazy(() => import(\"./DeleteReplicationRule\"))\n);\n\ninterface IBucketReplicationProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\nconst BucketReplicationPanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n}: IBucketReplicationProps) => {\n const [loadingReplication, setLoadingReplication] = useState(true);\n const [replicationRules, setReplicationRules] = useState<\n BucketReplicationRule[]\n >([]);\n const [deleteReplicationModal, setDeleteReplicationModal] =\n useState(false);\n const [openSetReplication, setOpenSetReplication] = useState(false);\n const [editReplicationModal, setEditReplicationModal] =\n useState(false);\n const [selectedRRule, setSelectedRRule] = useState(\"\");\n const [selectedRepRules, setSelectedRepRules] = useState([]);\n const [deleteSelectedRules, setDeleteSelectedRules] =\n useState(false);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayReplicationRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingReplication(true);\n }\n }, [loadingBucket, setLoadingReplication]);\n\n useEffect(() => {\n if (loadingReplication) {\n if (displayReplicationRules) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication`)\n .then((res: BucketReplication) => {\n const r = res.rules ? res.rules : [];\n\n r.sort((a, b) => a.priority - b.priority);\n\n setReplicationRules(r);\n setLoadingReplication(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingReplication(false);\n });\n } else {\n setLoadingReplication(false);\n }\n }\n }, [\n loadingReplication,\n setErrorSnackMessage,\n bucketName,\n displayReplicationRules,\n ]);\n\n const closeAddReplication = () => {\n setOpenReplicationOpen(false);\n setLoadingReplication(true);\n };\n\n const setOpenReplicationOpen = (open = false) => {\n setOpenSetReplication(open);\n };\n\n const closeReplicationModalDelete = (refresh: boolean) => {\n setDeleteReplicationModal(false);\n\n if (refresh) {\n setLoadingReplication(true);\n }\n };\n\n const closeEditReplication = (refresh: boolean) => {\n setEditReplicationModal(false);\n\n if (refresh) {\n setLoadingReplication(true);\n }\n };\n\n const confirmDeleteReplication = (replication: BucketReplicationRule) => {\n setSelectedRRule(replication.id);\n setDeleteSelectedRules(false);\n setDeleteReplicationModal(true);\n };\n\n const confirmDeleteSelectedReplicationRules = () => {\n setSelectedRRule(\"selectedRules\");\n setDeleteSelectedRules(true);\n setDeleteReplicationModal(true);\n };\n\n const editReplicationRule = (replication: BucketReplicationRule) => {\n setSelectedRRule(replication.id);\n setEditReplicationModal(true);\n };\n\n const ruleDestDisplay = (events: BucketReplicationDestination) => {\n return {events.bucket.replace(\"arn:aws:s3:::\", \"\")};\n };\n\n const tagDisplay = (events: BucketReplicationRule) => {\n return {events && events.tags !== \"\" ? \"Yes\" : \"No\"};\n };\n\n const selectAllItems = () => {\n if (selectedRepRules.length === replicationRules.length) {\n setSelectedRepRules([]);\n return;\n }\n setSelectedRepRules(replicationRules.map((x) => x.id));\n };\n\n const selectRules = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedRepRules]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedRepRules(elements);\n return elements;\n };\n\n const replicationTableActions: any = [\n {\n type: \"delete\",\n onClick: confirmDeleteReplication,\n },\n {\n type: \"view\",\n onClick: editReplicationRule,\n disableButtonFunction: !hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION],\n true\n ),\n },\n ];\n\n return (\n \n {openSetReplication && (\n \n )}\n\n {deleteReplicationModal && (\n \n )}\n\n {editReplicationModal && (\n \n )}\n \n \n Replication\n
    \n \n {\n confirmDeleteSelectedReplicationRules();\n }}\n text={\"Remove Selected Rules\"}\n icon={}\n color={\"secondary\"}\n variant={\"outlined\"}\n disabled={selectedRepRules.length === 0}\n />\n \n \n {\n setOpenReplicationOpen(true);\n }}\n text={\"Add Replication Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n
    \n
    \n \n \n selectRules(e)}\n onSelectAll={selectAllItems}\n />\n \n \n \n
    \n }\n help={\n \n MinIO supports server-side and client-side replication of\n objects between source and destination buckets.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\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(BucketReplicationPanel));\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, {\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, { 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"],"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","connector","connect","setModalErrorSnackMessage","buttonContainer","textAlign","multiContainer","sizeFactorContainer","spacingUtils","createTenantCommon","formFieldStyles","modalStyleUtils","modalFormScrollable","closeModalAndRefresh","open","bucketName","ruleID","useState","editLoading","setEditLoading","saveEdit","setSaveEdit","priority","setPriority","destination","setDestination","prefix","setPrefix","repDeleteMarker","setRepDeleteMarker","metadataSync","setMetadataSync","initialTags","setInitialTags","tags","setTags","targetStorageClass","setTargetStorageClass","repExisting","setRepExisting","repDelete","setRepDelete","ruleState","setRuleState","useEffect","api","then","res","toString","pref","tag","bucket","delete_marker_replication","storageClass","existingObjects","deletes_replication","status","metadata_replication","catch","err","remoteBucketsInfo","arn","replicateDeleteMarkers","replicateDeletes","replicateExistingObjects","replicateMetadata","parseInt","ModalWrapper","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","Grid","formFieldRow","FormSwitchWrapper","checked","id","name","label","onChange","target","value","PredefinedList","content","InputBoxWrapper","validity","valid","pattern","spacerTop","placeholder","fieldGroup","descriptionText","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","description","modalButtonBar","Button","type","variant","color","disabled","onClick","AddReplicationModal","withSuspense","React","DeleteReplicationRule","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","searchField","actionsTray","twHeight","minHeight","match","loadingReplication","setLoadingReplication","replicationRules","setReplicationRules","deleteReplicationModal","setDeleteReplicationModal","openSetReplication","setOpenSetReplication","editReplicationModal","setEditReplicationModal","selectedRRule","setSelectedRRule","selectedRepRules","setSelectedRepRules","deleteSelectedRules","setDeleteSelectedRules","params","displayReplicationRules","hasPermission","IAM_SCOPES","r","rules","sort","a","b","setOpenReplicationOpen","replicationTableActions","replication","disableButtonFunction","Fragment","deleteOpen","selectedBucket","closeDeleteModalAndRefresh","refresh","ruleToDelete","rulesToDelete","remainingRules","length","allSelected","PanelTitle","SecureComponent","scopes","resource","matchAll","errorProps","RBIconButton","tooltip","text","icon","TableWrapper","itemActions","columns","elementKey","contentTextAlign","renderFunction","events","replace","isLoading","records","entityName","idField","customPaperHeight","textSelectable","selectedItems","onSelect","targetD","push","filter","element","selectRules","onSelectAll","map","x","HelpBox","href","rel","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","fieldBasic","tooltipHelper","inputWithBorder","padding","overflowY","position","marginTop","lineInputBoxes","queryDiv","alignSelf","margin","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","split","keys","values","forEach","splittedVals","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","get","onChangeValue","debounce","queryString","keyVal","index","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","fieldContainer","inputLabel","tooltipContainer","placement","ref","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","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/255.7603092b.chunk.js b/portal-ui/build/static/js/255.7603092b.chunk.js deleted file mode 100644 index 7c972479e..000000000 --- a/portal-ui/build/static/js/255.7603092b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(29439),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(93433),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.7603092b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/255.7603092b.chunk.js.map b/portal-ui/build/static/js/255.7603092b.chunk.js.map deleted file mode 100644 index 9cc3819dd..000000000 --- a/portal-ui/build/static/js/255.7603092b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/255.7603092b.chunk.js","mappings":"qKA+GA,KAAeA,EAAAA,EAAAA,IA/EA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,cAAe,CACbC,YAAa,QACbC,MAAOJ,EAAMK,QAAQC,QAAQC,KAC7B,cAAe,CACbC,MAAO,GACPC,OAAQ,KAGZC,mBAAoB,CAClBN,MAAO,OACP,4BAA6B,CAC3BO,SAAU,MAGdC,YAAa,CACXC,QAAS,OACTC,WAAY,SACZC,eAAgB,gBAChBC,QAAS,OAETC,aAAc,oBACd,4BAA6B,CAC3BC,SAAU,WAGdC,YAAa,CACXV,OAAQ,OACRM,eAAgB,SAChBF,QAAS,OACTK,SAAU,SACVJ,WAAY,aACZ,OAAQ,CACNM,SAAU,KAGdC,UAAW,CACTR,QAAS,OACTC,WAAY,SACZ,4BAA6B,CAC3BI,SAAU,WAGdI,WAAY,CACVT,QAAS,OACTC,WAAY,cAiClB,EA7BoB,SAAC,GAOA,IANnBS,EAMkB,EANlBA,QACAC,EAKkB,EALlBA,KACAC,EAIkB,EAJlBA,MACAC,EAGkB,EAHlBA,SACAC,EAEkB,EAFlBA,QACAC,EACkB,EADlBA,UAEA,OACE,SAAC,KAAD,CAAMC,WAAS,EAAf,UACE,UAAC,KAAD,CACEC,MAAI,EACJC,GAAI,GACJH,UAAS,UAAKL,EAAQX,YAAb,YAA4BgB,GAAwB,IAH/D,WAKE,iBAAKA,UAAWL,EAAQF,UAAxB,UACGG,GAAO,gBAAKI,UAAWL,EAAQrB,cAAxB,SAAwCsB,IAAc,MAC9D,iBAAKI,UAAWL,EAAQJ,YAAxB,WACE,eAAIa,MAAO,CAAEC,OAAQ,GAArB,SAA2BR,KAC3B,iBAAMG,UAAWL,EAAQb,mBAAzB,SAA8CgB,WAIlD,gBAAKE,UAAWL,EAAQD,WAAxB,SAAqCK,a,4UC4MvCO,GAAYC,EAAAA,EAAAA,KAZD,SAACC,GAChB,IAAMC,EAAcD,EAAME,QAAQC,QAAQC,OAAOC,MACjD,MAAO,CACLC,OAAQN,EAAME,QAAQK,cAAcC,WACpCC,eAAgBT,EAAME,QAAQC,QAAQM,eACtCC,cAAeT,EAAYS,cAAcC,WACzCC,aAAcX,EAAYW,aAC1BC,WAAYZ,EAAYY,WAAWF,WACnCG,iBAAkBb,EAAYa,iBAAiBH,cAIf,CAClCI,aAAAA,EAAAA,GACAC,gBAAAA,EAAAA,GACAC,sBAAAA,EAAAA,KAGF,GAAetD,EAAAA,EAAAA,IA/PA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXqD,gBAAiB,CACfC,UAAW,SAEbC,gBAAiB,CACf3C,QAAS,OACT4C,SAAU,EACV3C,WAAY,SACZmB,OAAQ,OACRlB,eAAgB,SAChB,QAAS,CACPP,MAAO,IACP,4BAA6B,CAC3BU,SAAU,YAIhBwC,eAAgB,CACd7C,QAAS,OACTE,eAAgB,aAChB4C,WAAY,IAEdC,WAAY,CACVxC,SAAU,GACVyC,WAAY,IACZN,UAAW,UAEbO,gBAAiB,CACf1C,SAAU,GACVhB,MAAO,OACPmD,UAAW,WAEVQ,EAAAA,IACAC,EAAAA,OA6NP,CAAkC9B,GA1NZ,SAAC,GAWK,IAV1BQ,EAUyB,EAVzBA,OACAnB,EASyB,EATzBA,QACAsB,EAQyB,EARzBA,eACAC,EAOyB,EAPzBA,cACAE,EAMyB,EANzBA,aACAC,EAKyB,EALzBA,WACAC,EAIyB,EAJzBA,iBACAC,EAGyB,EAHzBA,aACAE,EAEyB,EAFzBA,sBACAD,EACyB,EADzBA,gBAEA,GAAgDa,EAAAA,EAAAA,UAAc,IAA9D,eAAOC,EAAP,KAAyBC,EAAzB,KAEMC,EACmB,WAAvBC,SAASpB,GAA2BoB,SAASnB,GACzCoB,EAAwBF,EAAmBC,SAASvB,IAG1DyB,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAAyC,CAC3C,CACEC,SAAU,kBACVC,UAAU,EACVC,MAAO7B,EAAcC,WACrB6B,iBACEP,SAASvB,GAAiB,GAAK+B,MAAMR,SAASvB,IAChDgC,wBAAyB,wCAE3B,CACEL,SAAU,YACVC,UAAU,EACVC,MAAO1B,EAAWF,WAClB6B,iBACEP,SAASpB,GAAc,GAAK4B,MAAMR,SAASpB,IAC7C6B,wBAAyB,yBAE3B,CACEL,SAAU,qBACVC,UAAU,EACVC,MAAOzB,EAAiBH,WACxB6B,iBACEP,SAASnB,GAAoB,GAAK2B,MAAMR,SAASnB,IACnD4B,wBAAyB,kCAIvBC,GAAYC,EAAAA,EAAAA,GAAqBR,GAEvCpB,EAAgB,QAA2C,IAAlC6B,OAAOC,KAAKH,GAAWI,QAEhDhB,EAAoBY,KACnB,CACD3B,EACAN,EACAG,EACAC,EACAF,KAGFuB,EAAAA,EAAAA,YAAU,WACsB,IAA1B1B,EAAesC,QAAgBzC,GACjC0C,EAAAA,EAAAA,OAEI,MAFJ,6BAG0B1C,EAAO2C,UAHjC,2BAG6D3C,EAAO2C,UAHpE,kBAKGC,MAAK,SAACC,GACL,IAEMC,EAF4BC,GAAAA,CAAIF,EAAK,WAAY,IAE3BG,KAAI,SAAC1C,GAC/B,IAAM2C,EAAOF,GAAAA,CAAIzC,EAAc,OAAQ,IAAI4C,MACzC,iDACA,GAEF,MAAO,CAAEC,MAAOF,EAAMhB,MAAOgB,MAG/BxC,EAAa,QAAS,eAAgBqC,EAAW,GAAGb,OAEpDtB,EAAsBmC,MAEvBM,OAAM,SAACC,GACNC,QAAQC,MAAMF,QAGnB,CAACrD,EAAQG,EAAgBQ,EAAuBF,IAEnD,IAAM+C,EAAe,SAACC,EAAmBxB,GACvCxB,EAAa,QAASgD,EAAWxB,IAGnC,OACE,UAACyB,EAAA,EAAD,CAAOxE,UAAWL,EAAQ8E,aAA1B,WACE,iBAAKzE,UAAWL,EAAQ+E,cAAxB,WACE,eAAI1E,UAAWL,EAAQgF,UAAvB,qCACA,iBAAM3E,UAAWL,EAAQiF,gBAAzB,8DAKF,SAACC,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQmF,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAG,kBACHjB,KAAK,kBACLkB,SAAU,SAACC,GACT,IAAMC,EAAW1C,SAASyC,EAAEE,OAAOrC,OAE/BmC,EAAEE,OAAOC,SAASC,QAAUrC,MAAMkC,GACpCb,EAAa,gBAAiBa,GACrBlC,MAAMkC,IACfb,EAAa,gBAAiB,IAGlCL,MAAM,oBACNlB,MAAO7B,EACPmD,MAAO/B,EAAgB,iBAAuB,GAC9CiD,QAAS,cAGb,SAACV,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQmF,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAG,YACHjB,KAAK,YACLkB,SAAU,SAACC,GACT,IAAMC,EAAW1C,SAASyC,EAAEE,OAAOrC,OAE/BmC,EAAEE,OAAOC,SAASC,QAAUrC,MAAMkC,GACpCb,EAAa,aAAca,GAClBlC,MAAMkC,IACfb,EAAa,aAAc,IAG/BL,MAAM,cACNlB,MAAO1B,EACPgD,MAAO/B,EAAgB,WAAiB,GACxCiD,QAAS,SACTC,eACE,SAACC,EAAA,EAAD,CACET,GAAI,aACJU,aAAc,aACdC,aAAc,KACdC,UAAW,CAAC,CAAE3B,MAAO,KAAMlB,MAAO,OAClC8C,UAAU,SAKlB,SAAChB,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQmF,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAG,oBACHjB,KAAK,oBACLkB,SAAU,SAACC,GACT,IAAMC,EAAW1C,SAASyC,EAAEE,OAAOrC,OAE/BmC,EAAEE,OAAOC,SAASC,QAAUrC,MAAMkC,GACpCb,EAAa,mBAAoBa,GACxBlC,MAAMkC,IACfb,EAAa,mBAAoB,IAGrCL,MAAM,qBACNlB,MAAOzB,EACP+C,MAAO/B,EAAgB,oBAA0B,GACjDiD,QAAS,cAGb,SAACV,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQmF,aAAtC,UACE,SAACgB,EAAA,EAAD,CACEd,GAAG,gBACHjB,KAAK,gBACLkB,SAAU,SAACC,GACTZ,EAAa,iBAAkBY,EAAEE,OAAOrC,QAE1CkB,MAAM,gBACNlB,MAAO3B,EACP2E,QAAS9E,EACT4E,SAAU5E,EAAesC,OAAS,OAGtC,SAACsB,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQiC,gBAAtC,UACE,iBAAK5B,UAAWL,EAAQmC,eAAxB,WACE,4BACE,gBAAK9B,UAAWL,EAAQqC,WAAxB,UACGgE,EAAAA,EAAAA,IAAUxD,EAAiBrB,SAAS,QAEvC,gBAAKnB,UAAWL,EAAQuC,gBAAxB,mCAEF,4BACE,gBAAKlC,UAAWL,EAAQqC,WAAxB,UACGgE,EAAAA,EAAAA,IAAUtD,EAAcvB,SAAS,QAEpC,gBAAKnB,UAAWL,EAAQuC,gBAAxB,2C,uDCHN5B,GAAYC,EAAAA,EAAAA,KATD,SAACC,GAChB,IAAMyF,EAAgBzF,EAAME,QAAQC,QAAQC,OAAOqF,cAEnD,MAAO,CACLC,uBAAwBD,EAAcC,uBACtCC,gBAAiBF,EAAcE,mBAIC,CAClC5E,aAAAA,EAAAA,GACAC,gBAAAA,EAAAA,KAGF,GAAerD,EAAAA,EAAAA,IArPA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX+H,kBAAmB,CACjB7H,YAAa,GAEb,oBAAqB,CACnB8H,OAAQ,kBAGZC,0BAA2B,CACzBvE,WAAY,GACZnD,MAAO,MACPyB,OAAQ,QAEVkG,cAAe,CACbhI,YAAa,IAEfiI,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAERC,WAAY,GACZC,aAAc,KAEhBC,sBAAuB,CACrB,4BAA6B,CAC3BtH,SAAU,SACVJ,WAAY,aAEZ,cAAe,CACbyH,aAAc,EACdpI,YAAa,KAKnBsI,cAAe,CACbC,UAAW,KAGVC,EAAAA,IACA3E,EAAAA,OA8MP,CAAkC9B,GA3MR,SAAC,GAMH,IALtBX,EAKqB,EALrBA,QACA4B,EAIqB,EAJrBA,aACA2E,EAGqB,EAHrBA,uBACA1E,EAEqB,EAFrBA,gBACA2E,EACqB,EADrBA,gBAEA,GAAgD9D,EAAAA,EAAAA,UAAc,IAA9D,eAAOC,EAAP,KAAyBC,EAAzB,KAGMyE,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAenE,GACdxB,EAAa,gBAAiB2F,EAAOnE,KAEvC,CAACxB,KAIHoB,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAAyC,GACzCsD,IACFtD,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,iCACVC,UAAU,EACVC,MAAOoD,EAAgBgB,UACvBnE,iBACgC,KAA9BmD,EAAgBgB,WAChB1E,SAAS0D,EAAgBgB,WAAa,EACxCjE,wBAAwB,8CAE1B,CACEL,SAAU,kCACVC,UAAU,EACVC,MAAOoD,EAAgBiB,WACvBpE,iBACiC,KAA/BmD,EAAgBiB,YAChB3E,SAAS0D,EAAgBiB,YAAc,EACzClE,wBAAwB,+CAE1B,CACEL,SAAU,+BACVC,UAAU,EACVC,MAAOoD,EAAgBkB,QACvBrE,iBAC8B,KAA5BmD,EAAgBkB,SAChB5E,SAAS0D,EAAgBkB,SAAW,EACtCnE,wBAAwB,+CAK9B,IAAMC,GAAYC,EAAAA,EAAAA,GAAqBR,GAEvCpB,EAAgB,YAA+C,IAAlC6B,OAAOC,KAAKH,GAAWI,QAEpDhB,EAAoBY,KACnB,CAAC3B,EAAiB0E,EAAwBC,IAE7C,IAAMmB,EAAkB,SAAC/C,GACvBhC,GAAoBgF,EAAAA,EAAAA,GAAqBjF,EAAkBiC,KAG7D,OACE,UAACC,EAAA,EAAD,CAAOxE,UAAWL,EAAQ8E,aAA1B,WACE,iBAAKzE,UAAWL,EAAQ+E,cAAxB,WACE,eAAI1E,UAAWL,EAAQgF,UAAvB,wBACA,iBAAM3E,UAAWL,EAAQiF,gBAAzB,2DAIF,SAACC,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQyG,kBAAtC,UACE,SAACoB,EAAA,EAAD,CACEzE,MAAM,eACNiC,GAAG,qBACHjB,KAAK,qBACL0D,QAASvB,EACTjB,SAAU,SAACC,GACT,IACMuC,EADUvC,EAAEE,OACMqC,QAExBT,EAAY,yBAA0BS,IAExCxD,MAAO,uBAGViC,IACC,SAACrB,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQ2G,0BAAtC,UACE,sBAAUtG,UAAWL,EAAQ6G,WAA7B,WACE,mBAAQxG,UAAWL,EAAQiF,gBAA3B,sCAGA,SAACC,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAS,UAAKL,EAAQyG,mBAAzC,UACE,iBACEpG,UAAS,UAAKL,EAAQ+H,eAAb,YAA+B/H,EAAQiH,uBADlD,WAGE,gBAAK5G,UAAWL,EAAQ4G,cAAxB,UACE,SAACxB,EAAA,EAAD,CACE4C,KAAK,SACL3C,GAAG,iCACHjB,KAAK,iCACLkB,SAAU,SAACC,GACT8B,EAAY,mBAAD,QAAC,UACPb,GADM,IAETgB,UAAWjC,EAAEE,OAAOrC,SAEtBuE,EAAgB,mCAElBrD,MAAM,cACNlB,MAAOoD,EAAgBgB,UACvBrE,UAAQ,EACRuB,MACE/B,EAAgB,gCAAsC,GAExDsF,IAAI,SAGR,gBAAK5H,UAAWL,EAAQ4G,cAAxB,UACE,SAACxB,EAAA,EAAD,CACE4C,KAAK,SACL3C,GAAG,kCACHjB,KAAK,kCACLkB,SAAU,SAACC,GACT8B,EAAY,mBAAD,QAAC,UACPb,GADM,IAETiB,WAAYlC,EAAEE,OAAOrC,SAEvBuE,EAAgB,oCAElBrD,MAAM,eACNlB,MAAOoD,EAAgBiB,WACvBtE,UAAQ,EACRuB,MACE/B,EAAgB,iCAAuC,GAEzDsF,IAAI,SAGR,gBAAK5H,UAAWL,EAAQ4G,cAAxB,UACE,SAACxB,EAAA,EAAD,CACE4C,KAAK,SACL3C,GAAG,+BACHjB,KAAK,+BACLkB,SAAU,SAACC,GACT8B,EAAY,mBAAD,QAAC,UACPb,GADM,IAETkB,QAASnC,EAAEE,OAAOrC,SAEpBuE,EAAgB,iCAElBrD,MAAM,UACNlB,MAAOoD,EAAgBkB,QACvBvE,UAAQ,EACRuB,MACE/B,EAAgB,8BAAoC,GAEtDsF,IAAI,cAKZ,mBACA,SAAC/C,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQyG,kBAAtC,UACE,gBAAKpG,UAAWL,EAAQ+H,eAAxB,UACE,SAACF,EAAA,EAAD,CACEzE,MAAM,8BACNiC,GAAG,oCACHjB,KAAK,oCACL0D,QAAStB,EAAgB0B,aACzB5C,SAAU,SAACC,GACT,IACMuC,EADUvC,EAAEE,OACMqC,QACxBT,EAAY,mBAAD,QAAC,UACPb,GADM,IAET0B,aAAcJ,MAGlBxD,MAAO,uC,4ECoQnB3D,GAAYC,EAAAA,EAAAA,KAZD,SAACC,GAChB,IAAMG,EAAUH,EAAME,QAAQC,QAE9B,MAAO,CACLmH,YAAanH,EAAQC,OAAOmH,SAASD,YACrCE,mBAAoBrH,EAAQC,OAAOmH,SAASC,mBAC5CC,oBAAqBtH,EAAQC,OAAOmH,SAASE,oBAC7CC,cAAevH,EAAQC,OAAOuH,kBAC9BC,YAAazH,EAAQC,OAAOwH,eAII,CAClCC,0BAAAA,EAAAA,GACA9G,aAAAA,EAAAA,GACAC,gBAAAA,EAAAA,GACA8G,qBAAAA,EAAAA,GACAC,sBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,KAGF,GAAetK,EAAAA,EAAAA,IAldA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXqK,cAAe,CACb3G,WAAY,GACZ9C,QAAS,OACTC,WAAY,SACZ,QAAS,CACPH,SAAU,GACV4J,UAAW,IAEb,WAAY,CACVC,WAAY,YAGhBC,oBAAqB,CACnB5J,QAAS,QAEX6J,mBAAoB,CAClB7J,QAAS,OACTK,SAAU,SACVyJ,KAAM,GAERC,WAAY,CACV/J,QAAS,OACTC,WAAY,aACZ4H,UAAW,GACX,oBAAqB,CACnB7H,QAAS,OACTK,SAAU,SACVJ,WAAY,WACZyC,UAAW,oBAGfsH,iBAAkB,CAChB,oBAAqB,CACnBtC,aAAc,IAGlBuC,mBAAoB,CAClBnH,WAAY,GACZ,oBAAqB,CACnB4E,aAAc,IAGlBwC,WAAY,CACVlK,QAAS,OACTC,WAAY,UAEdkK,eAAgB,CACdzC,aAAc,GAEhB0C,YAAa,CACX1C,aAAc,GACd1H,QAAS,SAER8H,EAAAA,IACA3E,EAAAA,OA0ZP,CAAkC9B,GAlZjB,SAAC,GAcK,IAbrBX,EAaoB,EAbpBA,QACAmI,EAYoB,EAZpBA,YACAE,EAWoB,EAXpBA,mBACAC,EAUoB,EAVpBA,oBACAI,EASoB,EATpBA,0BACAH,EAQoB,EARpBA,cACAI,EAOoB,EAPpBA,qBACA/G,EAMoB,EANpBA,aACAC,EAKoB,EALpBA,gBACA4G,EAIoB,EAJpBA,YACAG,EAGoB,EAHpBA,sBACAE,EAEoB,EAFpBA,qBACAD,EACoB,EADpBA,qBAEA,GAAgDnG,EAAAA,EAAAA,UAAc,IAA9D,eAAOC,EAAP,KAAyBC,EAAzB,KACA,GAA8BF,EAAAA,EAAAA,WAAkB,GAAhD,eAAOiH,EAAP,KAAgBC,EAAhB,KACA,GAAsClH,EAAAA,EAAAA,UACpC,IADF,eAAOmH,EAAP,KAAoBC,EAApB,KAGA,GAAoCpH,EAAAA,EAAAA,UAAuB,IAA3D,eAAOqH,EAAP,KAAmBC,EAAnB,KAGM3C,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAenE,GACdxB,EAAa,WAAY2F,EAAOnE,KAElC,CAACxB,KAGHoB,EAAAA,EAAAA,YAAU,WACJ2G,GACF9F,EAAAA,EAAAA,OACU,MADV,wBAEGE,MAAK,SAACC,GACL4F,GAAW,GACXE,EAAe9F,GACf,IAAIL,EAAqB,GACzB,IAAK,IAAIsG,KAAKjG,EACZL,EAAKuG,KAAK,CACR5F,MAAO2F,EACP7G,MAAO6G,IAGXD,EAAcrG,MAEfY,OAAM,SAACC,GACNoF,GAAW,GACXlB,EAA0BlE,GAC1BsF,EAAe,SAGpB,CAACpB,EAA2BiB,KAE/B3G,EAAAA,EAAAA,YAAU,WACR,GAAIuF,EAAe,CACjB,IAIM4B,EAJM5B,EACT6B,QAAO,SAACC,GAAD,MAAqB,KAAZA,EAAIC,OACpBnG,KAAI,SAACkG,GAAD,gBAAYA,EAAIC,IAAhB,YAAuBD,EAAIjH,UAC/BgH,QAAO,SAACG,EAAKC,EAAGC,GAAT,OAAeA,EAAEC,QAAQH,KAASC,KAC7BG,KAAK,KACpBtD,EAAY,qBAAsB8C,MAEnC,CAAC5B,EAAelB,KAGnBrE,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAAyC,GAE7C,GAAoB,iBAAhBkF,EAAgC,CAClC,IAAIxC,GAAQ,EAENiF,EAAiBvC,EAAmBhE,MAAM,KAElB,IAA1BuG,EAAehH,QAAsC,KAAtBgH,EAAe,KAChDjF,GAAQ,GAGViF,EAAeC,SAAQ,SAACtK,EAAcuK,GACpC,IAAMC,EAAYxK,EAAK8D,MAAM,KAEJ,IAArB0G,EAAUnH,SACZ+B,GAAQ,GAGNmF,EAAQ,IAAMF,EAAehH,SACV,KAAjBmH,EAAU,IAA8B,KAAjBA,EAAU,KACnCpF,GAAQ,OAKd1C,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,SACVC,UAAU,EACVC,MAAOiF,EACPhF,kBAAmBsC,EACnBpC,wBACE,iDAKR,IAAMC,GAAYC,EAAAA,EAAAA,GAAqBR,GAEvCpB,EAAgB,WAA8C,IAAlC6B,OAAOC,KAAKH,GAAWI,QAEnDhB,EAAoBY,KACnB,CAAC3B,EAAiBsG,EAAaE,IAElC,IAAM2C,EAAmB,SAACF,EAAevD,EAAenE,GACtD,IAAM6H,GAAe,kBAAQxC,EAAYqC,IAApB,cAA6BvD,EAAQnE,IAE1DwF,EAAsBkC,EAAOG,IAG/B,OACE,UAACpG,EAAA,EAAD,CAAOxE,UAAWL,EAAQ8E,aAA1B,WACE,iBAAKzE,UAAWL,EAAQ+E,cAAxB,WACE,eAAI1E,UAAWL,EAAQgF,UAAvB,4BACA,iBAAM3E,UAAWL,EAAQiF,gBAAzB,8DAIF,SAACC,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQkJ,oBAAtC,UACE,UAAChE,EAAA,GAAD,CAAM3E,MAAI,EAACF,UAAWL,EAAQmJ,mBAA9B,WACE,gBAAK9I,UAAWL,EAAQsE,MAAxB,mBACA,gBACEjE,UAAS,UAAKL,EAAQiF,gBAAb,YAAgCjF,EAAQkL,kBADnD,sEAKA,SAAChG,EAAA,GAAD,CAAM3E,MAAI,EAACF,UAAWL,EAAQqJ,WAA9B,UACE,SAAC8B,EAAA,EAAD,CACEC,iBAAkBjD,EAClB9C,GAAG,mBACHjB,KAAK,mBACLE,MAAO,IACPgB,SAAU,SAACC,GACT8B,EAAY,cAAe9B,EAAEE,OAAOrC,QAEtCiI,gBAAiB,CACf,CAAE/G,MAAO,OAAQlB,MAAO,QACxB,CAAEkB,MAAO,+BAAgClB,MAAO,WAChD,CAAEkB,MAAO,gBAAiBlB,MAAO,0BAM1B,iBAAhB+E,IACC,UAAC,EAAAmD,SAAD,YACE,mBACA,SAACpG,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAf,UACE,SAACqH,EAAA,EAAD,CACEzE,MAAM,yBACNiC,GAAG,yBACHjB,KAAK,yBACL0D,QAASQ,EACThD,SAAU,SAACC,GACT,IACMuC,EADUvC,EAAEE,OACMqC,QAExBT,EAAY,sBAAuBS,IAErCxD,MAAO,8BAGX,UAACY,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAf,WACE,oCACA,iBAAMH,UAAWL,EAAQ0E,MAAzB,SAAiC/B,EAAgB,UACjD,SAACuC,EAAA,GAAD,CAAM5E,WAAS,EAAf,SACGiI,GACCA,EAAcpE,KAAI,SAACkG,EAAKG,GACtB,OACE,UAACtF,EAAA,GAAD,CACE3E,MAAI,EACJC,GAAI,GACJH,UAAWL,EAAQ0J,YAHrB,WAME,UAACxE,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,EAAGH,UAAWL,EAAQsJ,iBAArC,UACGS,EAAWnG,OAAS,IACnB,SAACuC,EAAA,EAAD,CACEb,SAAU,SAACC,GACT,IAAMgG,EAAShG,EAAEE,OAAOrC,MAClBoI,EAAwB9H,OAAO+H,OACnC,GACAlD,GAGFiD,EAAMhB,GAAGF,IAAM/E,EAAEE,OAAOrC,MACxBoI,EAAMhB,GAAGpH,MAAQyG,EAAY0B,GAAQ,GACrC5C,EAAqB6C,IAEvBnG,GAAG,uBACHjB,KAAK,uBACLE,MAAO,GACPlB,MAAOiH,EAAIC,IACXlE,QAAS2D,IAGU,IAAtBA,EAAWnG,SACV,SAACwB,EAAA,EAAD,CACEC,GAAE,2BAAsBmF,EAAEhJ,YAC1B8C,MAAO,GACPF,KAAI,uBAAkBoG,EAAEhJ,YACxB4B,MAAOiH,EAAIC,IACXhF,SAAU,SAACC,GACT,IAAMiG,EAAwB9H,OAAO+H,OACnC,GACAlD,GAEFiD,EAAMhB,GAAGF,IAAM/E,EAAEE,OAAOrC,MACxBuF,EAAqB6C,IAEvBV,MAAON,EACPkB,YAAa,YAInB,UAACxG,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,EAAGH,UAAWL,EAAQuJ,mBAArC,UACGQ,EAAWnG,OAAS,IACnB,SAACuC,EAAA,EAAD,CACEb,SAAU,SAACC,GACT,IAAMiG,EAAwB9H,OAAO+H,OACnC,GACAlD,GAEFiD,EAAMhB,GAAGpH,MAAQmC,EAAEE,OAAOrC,MAC1BuF,EAAqB6C,IAEvBnG,GAAG,uBACHjB,KAAK,uBACLE,MAAO,GACPlB,MAAOiH,EAAIjH,MACXgD,QACEyD,EAAYQ,EAAIC,KACZT,EAAYQ,EAAIC,KAAKnG,KAAI,SAACwH,GACxB,MAAO,CAAErH,MAAOqH,EAAGvI,MAAOuI,MAE5B,KAIa,IAAtB5B,EAAWnG,SACV,SAACwB,EAAA,EAAD,CACEC,GAAE,6BAAwBmF,EAAEhJ,YAC5B8C,MAAO,GACPF,KAAI,uBAAkBoG,EAAEhJ,YACxB4B,MAAOiH,EAAIjH,MACXkC,SAAU,SAACC,GACT,IAAMiG,EAAwB9H,OAAO+H,OACnC,GACAlD,GAEFiD,EAAMhB,GAAGpH,MAAQmC,EAAEE,OAAOrC,MAC1BuF,EAAqB6C,IAEvBV,MAAON,EACPkB,YAAa,cAInB,UAACxG,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,EAAGH,UAAWL,EAAQwJ,WAArC,WACE,gBAAKnJ,UAAWL,EAAQ+I,cAAxB,UACE,SAAC6C,EAAA,EAAD,CACEC,KAAM,QACNC,QAAS,WACP,IAAMN,EAAQ9H,OAAO+H,OAAO,GAAIlD,GAC5BwB,EAAWnG,OAAS,EACtB4H,EAAMtB,KAAK,CACTI,IAAKP,EAAW,GAAG3G,MACnBA,MAAOyG,EAAYE,EAAW,GAAG3G,OAAO,KAG1CoI,EAAMtB,KAAK,CAAEI,IAAK,GAAIlH,MAAO,KAG/BuF,EAAqB6C,IAbzB,UAgBE,SAACO,EAAA,EAAD,QAGHxD,EAAc3E,OAAS,IACtB,gBAAKvD,UAAWL,EAAQ+I,cAAxB,UACE,SAAC6C,EAAA,EAAD,CACEC,KAAM,QACNC,QAAS,WACP,IAAMN,EAAQjD,EAAc6B,QAC1B,SAAC7J,EAAMuK,GAAP,OAAiBA,IAAUN,KAE7B7B,EAAqB6C,IANzB,UASE,SAACQ,EAAA,EAAD,aAzHV,0BAI0BxB,EAAEhJ,yBAiI1C,SAAC0D,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQkJ,oBAAtC,UACE,UAAChE,EAAA,GAAD,CAAM3E,MAAI,EAACF,UAAWL,EAAQmJ,mBAA9B,WACE,yCACA,iBAAM9I,UAAWL,EAAQ0E,MAAzB,SACG/B,EAAgB,eAEnB,SAACuC,EAAA,GAAD,CAAM5E,WAAS,EAAf,SACGmI,GACCA,EAAYtE,KAAI,SAAC8H,EAAKzB,GAAO,IAAD,EAC1B,OACE,UAACtF,EAAA,GAAD,CACE3E,MAAI,EACJC,GAAI,GACJH,UAAWL,EAAQ0J,YAHrB,WAME,SAACwC,EAAA,EAAD,CACEC,OAAQF,EAAIE,OACZC,eAAgB,SAAChJ,GACf4H,EAAiBR,EAAG,SAAUpH,IAEhCiJ,cAAeJ,EAAI3B,IACnBgC,sBAAuB,SAAClJ,GACtB4H,EAAiBR,EAAG,MAAOpH,IAE7BmJ,SAAUN,EAAIM,SACdC,iBAAkB,SAACpJ,GACjB4H,EAAiBR,EAAG,WAAYpH,IAElCA,MAAO6I,EAAI7I,MACXqJ,cAAe,SAACrJ,GACd4H,EAAiBR,EAAG,QAASpH,IAE/BsJ,mBAAmB,UAAAT,EAAIS,yBAAJ,eAAuBC,UAAW,EACrDC,gBAAiB,SAACxJ,GAChB4H,EAAiBR,EAAG,oBAAqB,CACvCmC,QAASvJ,KAGb0H,MAAON,KAET,gBAAKnK,UAAWL,EAAQ+I,cAAxB,UACE,SAAC6C,EAAA,EAAD,CACEC,KAAM,QACNC,QAASjD,EACT3C,SAAUsE,IAAM/B,EAAY7E,OAAS,EAHvC,UAKE,SAACmI,EAAA,EAAD,SAIJ,gBAAK1L,UAAWL,EAAQ+I,cAAxB,UACE,SAAC6C,EAAA,EAAD,CACEC,KAAM,QACNC,QAAS,kBAAMhD,EAAqB0B,IACpCtE,SAAUuC,EAAY7E,QAAU,EAHlC,UAKE,SAACoI,EAAA,EAAD,UA/CN,0BAI0BxB,EAAEhJ,8B,sBChVxCqL,EAAgB,CAAC,QAAS,WAAY,aAyMtClM,GAAYC,EAAAA,EAAAA,KAnBD,SAACC,GAChB,IAAMG,EAAUH,EAAME,QAAQC,QAC9B,MAAO,CACLG,OAAQN,EAAME,QAAQK,cAAcC,WACpCyL,qBAAsB9L,EAAQC,OAAOC,MAAMO,aAC3CsL,WAAY/L,EAAQ+L,WACpBzL,eAAgBN,EAAQM,eACxBC,cAAeP,EAAQC,OAAOC,MAAMK,cACpCG,WAAYV,EAAQC,OAAOC,MAAMQ,WACjCC,iBAAkBX,EAAQC,OAAOC,MAAMS,iBACvCqL,aAAchM,EAAQC,OAAOmH,SAASD,YACtCE,mBAAoBrH,EAAQC,OAAOmH,SAASC,mBAC5CC,oBAAqBtH,EAAQC,OAAOmH,SAASE,oBAC7CG,YAAazH,EAAQC,OAAOwH,YAC5BlC,uBAAwBvF,EAAQC,OAAOqF,cAAcC,uBACrDC,gBAAiBxF,EAAQC,OAAOqF,cAAcE,mBAId,CAClCyG,cAAAA,EAAAA,GACArL,aAAAA,EAAAA,GACAC,gBAAAA,EAAAA,GACAqL,qBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,KAGF,GAAe3O,EAAAA,EAAAA,IA9PA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXqD,gBAAiB,CACfC,UAAW,SAEbC,gBAAiB,CACf3C,QAAS,OACT4C,SAAU,EACV3C,WAAY,SACZmB,OAAQ,OACRlB,eAAgB,SAChB,QAAS,CACPP,MAAO,IACP,4BAA6B,CAC3BU,SAAU,YAIhBwC,eAAgB,CACd7C,QAAS,OACTE,eAAgB,aAChB4C,WAAY,IAEdC,WAAY,CACVxC,SAAU,GACVyC,WAAY,IACZN,UAAW,UAEbO,gBAAiB,CACf1C,SAAU,GACVhB,MAAO,OACPmD,UAAW,UAEboL,QAAS,CACP1G,OAAQ,oBACR2G,UAAW,GAEbC,aAAc,CACZ5G,OAAQ,oBACRhH,aAAc,IAEb8C,EAAAA,IACA+K,EAAAA,OAoNP,CAAkC5M,GA/MlB,SAAC,GAgBK,IAfpBQ,EAemB,EAfnBA,OACAnB,EAcmB,EAdnBA,QACAiN,EAamB,EAbnBA,cACAH,EAYmB,EAZnBA,qBACAC,EAWmB,EAXnBA,WACAxL,EAUmB,EAVnBA,cACAG,EASmB,EATnBA,WACAsL,EAQmB,EARnBA,aACA3E,EAOmB,EAPnBA,mBACAC,EAMmB,EANnBA,oBACAG,EAKmB,EALnBA,YACAlC,EAImB,EAJnBA,uBACAC,EAGmB,EAHnBA,gBACA7E,EAEmB,EAFnBA,iBACAwL,EACmB,EADnBA,qBAEA,GAAoCzK,EAAAA,EAAAA,WAAkB,GAAtD,eAAO8K,EAAP,KAAmBC,EAAnB,KAEMC,EAAQ,uBAAwB,OAANvM,QAAM,IAANA,OAAA,EAAAA,EAAQ2C,YAAa,GAAvC,qBACN,OAAN3C,QAAM,IAANA,OAAA,EAAAA,EAAQiD,OAAQ,GADJ,WAIdpB,EAAAA,EAAAA,YAAU,WACR,GAAIwK,GAAcrM,EAAQ,CACxB,IAAMwM,GAAWC,EAAAA,EAAAA,IAAiBzM,EAAO0M,OAErCC,EAAiB,GAErB,OAAQd,GACN,IAAK,UACHc,EAAiB,CACf1F,UAAU2F,EAAAA,EAAAA,GAAmB5M,EAAOiD,KAAMuJ,IAE5C,MACF,IAAK,eACHG,EAAiB,CACf1F,UAAU4F,EAAAA,EAAAA,GACR3F,EACAC,EACAnH,EAAOiD,KACPuJ,IAMR,IAAMM,EAAmBxF,EAAY2B,QACnC,SAAC8D,GAAD,MAA0C,KAA1BA,EAAW5D,IAAI6D,UAG3BC,GAAqB,QACzBhK,KAAMuJ,EACNU,QAAS9M,EACT+M,mBAAoB3M,EACpB4M,qBAAsB,CACpB1C,KAAmB,WAAbnK,EACN8M,mBAAoB1B,EACpB2B,OAAQ,MAEVhG,YAAawF,EACbzH,gBAAiBD,EAAyBC,EAAkB,MACzDsH,GAGLjK,EAAAA,EAAAA,OAEI,OAFJ,6BAG0B1C,EAAO2C,UAHjC,oBAGsD3C,EAAOiD,KAH7D,UAIIgK,GAEDrK,MAAK,WACJ0J,GAAc,GACdR,IACAE,GAAqB,GACrBuB,EAAAA,EAAAA,KAAahB,MAEdnJ,OAAM,SAACC,GACNiJ,GAAc,IACdP,EAAAA,EAAAA,IAAqB1I,SAG1B,CACDgJ,EACAE,EACAT,EACAE,EACAH,EACA3E,EACA9G,EACAiF,EACAD,EACAuG,EACA3L,EACAsH,EACA/G,EACAC,EACA2G,IAGF,IAAMqG,EAAe,CACnBrK,MAAO,SACP0D,KAAM,QACN4G,SAAS,EACTC,OAAQ,WACN5B,IACAyB,EAAAA,EAAAA,KAAahB,KAIXoB,EAAe,CACnBxK,MAAO,SACP0D,KAAM,SACN4G,SACGpB,GACwB,KAAzBV,GACAD,EAAckC,OAAM,SAACpD,GAAD,OAAOoB,EAAWiC,SAASrD,MACjDkD,OAAQ,WACNpB,GAAc,KAIZwB,EAAgC,CACpC,CACE3K,MAAO,QACP4K,iBAAiB,SAAC,EAAD,IACjBC,QAAS,CAACR,EAAcG,IAE1B,CACExK,MAAO,gBACP8K,cAAc,EACdF,iBAAiB,SAAC,EAAD,IACjBC,QAAS,CAACR,EAAcG,IAE1B,CACExK,MAAO,gBACP8K,cAAc,EACdF,iBAAiB,SAACG,EAAD,IACjBF,QAAS,CAACR,EAAcG,KAI5B,OACE,SAAC,EAAAxD,SAAD,WACE,UAACpG,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAf,WACE,SAAC8O,EAAA,EAAD,CACEhL,OACE,SAAC,EAAAgH,SAAD,WACE,SAACiE,EAAA,EAAD,CAAUC,GAAI9B,EAAUpJ,MAAK,sBAInC,UAACmL,EAAA,EAAD,YACE,SAACvK,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQsN,aAAtC,UACE,SAACoC,EAAA,EAAD,CACEzP,MAAM,SAAC0P,EAAA,EAAD,IACNzP,MAAK,2BAA2B,OAANiB,QAAM,IAANA,OAAA,EAAAA,EAAQiD,OAAQ,IAC1CjE,UACE,UAAC,EAAAmL,SAAD,0BACoB,OAANnK,QAAM,IAANA,OAAA,EAAAA,EAAQ2C,YAAa,GADnC,uBAC2D,KACxDuC,EAAAA,EAAAA,MAAiB,OAANlF,QAAM,IAANA,OAAA,EAAAA,EAAQyO,aAAc,GAAGpO,SAAS,YAMrDgM,IACC,SAACtI,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAf,UACE,SAACqP,EAAA,EAAD,OAGJ,SAAC3K,EAAA,GAAD,CAAM3E,MAAI,EAACC,GAAI,GAAIH,UAAWL,EAAQoN,QAAtC,UACE,SAAC0C,EAAA,EAAD,CAAeb,YAAaA","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 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/2555.1aef7cca.chunk.js b/portal-ui/build/static/js/2555.1aef7cca.chunk.js new file mode 100644 index 000000000..98b3111b3 --- /dev/null +++ b/portal-ui/build/static/js/2555.1aef7cca.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2555],{23804:function(e,n,t){"use strict";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})]})})}))},81806:function(e,n,t){"use strict";var r=t(1413),o=t(45987),i=(t(72791),t(11135)),a=t(25787),s=t(80184),c=["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,c);return(0,s.jsx)("button",(0,r.Z)((0,r.Z)({},i),{},{className:n.root,children:t}))}))},75578:function(e,n,t){"use strict";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}},59114:function(e,n,t){"use strict";var r=t(4942),o=t(1413),i=(t(72791),t(63466)),a=t(74900),s=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,p=e.overrideClass,h=e.value,m=(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:m,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},60191:function(e,n,t){"use strict";t.r(n);var r=t(29439),o=t(1413),i=t(72791),a=t(60364),s=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(93656),p=t(42649),h=t(21639),m=t(23814),f=t(81207),v=t(92983),Z=t(32291),x=t(23804),g=t(62666),j=t(81806),b=t(74794),S=t(59114),C=t(56087),P=t(38442),k=t(75578),y=t(40603),F=t(80184),I=(0,k.Z)(i.lazy((function(){return t.e(8896).then(t.bind(t,88896))}))),M=(0,k.Z)(i.lazy((function(){return t.e(7413).then(t.bind(t,57413))}))),A=(0,k.Z)(i.lazy((function(){return t.e(9134).then(t.bind(t,39134))}))),E={setErrorSnackMessage:p.Ih},R=(0,a.$j)(null,E);n.default=(0,c.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)({tableBlock:(0,o.Z)((0,o.Z)({},m.VX.tableBlock),{},{marginTop:15})},m.OR),{},{searchField:(0,o.Z)((0,o.Z)({},m.qg.searchField),{},{maxWidth:380})},(0,m.Bz)(e.spacing(4))))}))(R((function(e){var n=e.classes,t=e.setErrorSnackMessage,o=(0,i.useState)(!1),a=(0,r.Z)(o,2),s=a[0],c=a[1],p=(0,i.useState)(null),m=(0,r.Z)(p,2),k=m[0],E=m[1],R=(0,i.useState)(!1),z=(0,r.Z)(R,2),_=z[0],w=z[1],G=(0,i.useState)(!1),N=(0,r.Z)(G,2),T=N[0],L=N[1],O=(0,i.useState)([]),D=(0,r.Z)(O,2),U=D[0],B=D[1],V=(0,i.useState)(""),H=(0,r.Z)(V,2),K=H[0],q=H[1],W=(0,i.useState)(!1),Q=(0,r.Z)(W,2),X=Q[0],Y=Q[1];(0,i.useEffect)((function(){L(!0)}),[]),(0,i.useEffect)((function(){L(!0)}),[]);var $=(0,P.F)(C.C3,[C.Ft.ADMIN_LIST_GROUPS]),J=(0,P.F)(C.C3,[C.Ft.ADMIN_REMOVE_USER_FROM_GROUP]),ee=(0,P.F)(C.C3,[C.Ft.ADMIN_GET_GROUP]);(0,i.useEffect)((function(){if(T)if($){f.Z.invoke("GET","/api/v1/groups").then((function(e){var n=[];null!==e.groups&&(n=e.groups.sort(h.V2)),B(n),L(!1)})).catch((function(e){t(e),L(!1)}))}else L(!1)}),[T,t,$]);var ne=U.filter((function(e){return e.includes(K)})),te=[{type:"view",onClick:function(e){g.Z.push("".concat(C.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!ee}},{type:"delete",onClick:function(e){w(!0),E(e)},disableButtonFunction:function(){return!J}}];return(0,F.jsxs)(i.Fragment,{children:[s&&(0,F.jsx)(M,{open:s,selectedGroup:k,closeModalAndRefresh:function(){c(!1),L(!0)}}),_&&(0,F.jsx)(I,{deleteOpen:_,selectedGroup:k,closeDeleteModalAndRefresh:function(e){w(!1),e&&L(!0)}}),Y&&(0,F.jsx)(A,{open:X,selectedGroup:k,selectedUser:null,closeModalAndRefresh:function(){Y(!1)}}),(0,F.jsx)(Z.Z,{label:"Groups"}),(0,F.jsxs)(b.Z,{children:[(0,F.jsxs)(l.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,F.jsx)(P.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,F.jsx)(S.Z,{placeholder:"Search Groups",onChange:q,overrideClass:n.searchField,value:K})}),(0,F.jsx)(P.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,errorProps:{disabled:!0},children:(0,F.jsx)(y.Z,{tooltip:"Create Group",text:"Create Group",variant:"contained",color:"primary",icon:(0,F.jsx)(u.dt,{}),onClick:function(){E(null),c(!0)}})})]}),T&&(0,F.jsx)(d.Z,{}),!T&&(0,F.jsxs)(i.Fragment,{children:[U.length>0&&(0,F.jsxs)(i.Fragment,{children:[(0,F.jsx)(l.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,F.jsx)(P.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,F.jsx)(v.Z,{itemActions:te,columns:[{label:"Name",elementKey:""}],isLoading:T,records:ne,entityName:"Groups",idField:""})})}),(0,F.jsx)(l.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,F.jsx)(x.Z,{title:"Groups",iconComponent:(0,F.jsx)(u.ww,{}),help:(0,F.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,F.jsx)("br",{}),(0,F.jsx)("br",{}),"You can learn more at our"," ",(0,F.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,F.jsx)(l.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,F.jsx)(l.ZP,{item:!0,xs:8,children:(0,F.jsx)(x.Z,{title:"Groups",iconComponent:(0,F.jsx)(u.oy,{}),help:(0,F.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,F.jsxs)(P.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,children:[(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"To get started,"," ",(0,F.jsx)(j.Z,{onClick:function(){E(null),c(!0)},children:"Create a Group"}),"."]})]})})})})]})]})]})})))},21639:function(e,n,t){"use strict";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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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, { 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 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","\"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":["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","padding","margin","textDecoration","cursor","color","palette","info","main","fontFamily","children","rest","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","variant","DeleteGroup","withSuspense","React","AddGroup","SetPolicy","mapDispatchToProps","setErrorSnackMessage","connector","connect","tableBlock","tableStyles","marginTop","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","includes","tableActions","type","onClick","group","history","IAM_PAGES","disableButtonFunction","open","closeModalAndRefresh","closeDeleteModalAndRefresh","refresh","selectedUser","resource","scopes","errorProps","disabled","matchAll","tooltip","text","icon","Fragment","length","itemActions","columns","elementKey","entityName","idField","href","rel","justifyContent","alignContent","usersSort","a","b","accessKey","policySort","name","_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","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","whiteSpace","inputAdornmentClasses","marginLeft","pointerEvents","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/2625.6d6e6809.chunk.js b/portal-ui/build/static/js/2625.6d6e6809.chunk.js new file mode 100644 index 000000000..a4d48e400 --- /dev/null +++ b/portal-ui/build/static/js/2625.6d6e6809.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2625],{23804:function(e,t,n){n(72791);var i=n(11135),a=n(25787),r=n(61889),l=n(80184);t.Z=(0,a.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 t=e.classes,n=e.iconComponent,i=e.title,a=e.help;return(0,l.jsx)("div",{className:t.root,children:(0,l.jsxs)(r.ZP,{container:!0,children:[(0,l.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,l.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,n){var i=n(1413),a=n(72791),r=n(11135),l=n(25787),o=n(61889),s=n(36151),c=n(27197),d=n(32686),u=n(23814),x=n(80705),p=n(85090),f=n(80184);t.Z=(0,l.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.OR),u.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,n=e.timeStart,i=e.setTimeStart,r=e.timeEnd,l=e.setTimeEnd,u=e.triggerSync;return(0,f.jsx)(a.Fragment,{children:(0,f.jsxs)(o.ZP,{item:!0,xs:12,className:t.timeContainers,children:[(0,f.jsx)("span",{className:t.filterTitle,children:"Filter:"}),(0,f.jsxs)("div",{className:t.filterContainer,children:[(0,f.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,f.jsx)(c.Z,{})}),(0,f.jsx)("span",{className:t.selectorLabel,children:"Start Time:"}),(0,f.jsx)(x.Z,{value:n,onChange:i,forFilterContained:!0,id:"stTime",noInputIcon:!0}),(0,f.jsx)("span",{className:t.divisorLine,children:"\xa0"}),(0,f.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,f.jsx)(d.Z,{})}),(0,f.jsx)("span",{className:t.selectorLabel,children:"End Time:"}),(0,f.jsx)(x.Z,{value:r,onChange:l,forFilterContained:!0,id:"endTime",noInputIcon:!0})]}),u&&(0,f.jsx)(s.Z,{type:"button",variant:"contained",color:"primary",onClick:u,endIcon:(0,f.jsx)(p.Z,{}),className:t.syncButton,children:"Sync"})]})})}))},80705:function(e,t,n){var i=n(1413),a=n(72791),r=n(27391),l=n(61889),o=n(30829),s=n(20068),c=n(42261),d=n(55498),u=n(33915),x=n(63466),p=n(27197),f=n(11135),h=n(25787),m=n(84570),g=n(23814),v=n(33976),j=n(80184);t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,i.Z)((0,i.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}}}}}}},g.YI),g.Hr))}))((function(e){var t=e.value,n=e.onChange,f=e.classes,h=e.forSearchBlock,g=void 0!==h&&h,b=e.forFilterContained,y=void 0!==b&&b,C=e.label,Z=e.tooltip,w=void 0===Z?"":Z,N=e.required,S=e.id,E=e.disabled,A=void 0!==E&&E,k=e.noInputIcon,F={};void 0!==k&&k||(F={startAdornment:(0,j.jsx)(x.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})}),y&&(F={endAdornment:(0,j.jsx)(x.Z,{position:"end",children:(0,j.jsx)(v.Z,{className:f.openListIcon})})});var T="";g?T=f.dateSelectorOverride:y&&(T=f.dateSelectorFilterOverride);var B=(0,j.jsx)(u.Z,{dateAdapter:d.Z,children:(0,j.jsx)(c.Z,{value:t,onChange:n,InputProps:(0,i.Z)((0,i.Z)({},F),{},{className:T}),label:"",className:g?f.parentDateOverride:f.dateSelectorFormOverride,disabled:A,renderInput:function(e){return(0,j.jsx)(r.Z,(0,i.Z)((0,i.Z)({id:S,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:f.paperOverride}})});return g?B:(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:y?"":f.fieldContainer,children:[""!==C&&(0,j.jsxs)(o.Z,{htmlFor:S,className:f.inputLabel,children:[(0,j.jsxs)("span",{children:[C,N?"*":""]}),""!==w&&(0,j.jsx)("div",{className:f.tooltipContainer,children:(0,j.jsx)(s.Z,{title:w,placement:"top-start",children:(0,j.jsx)("div",{className:f.tooltip,children:(0,j.jsx)(m.Z,{})})})})]}),(0,j.jsx)("div",{className:f.textBoxContainer,children:B})]})})}))},56028:function(e,t,n){var i=n(29439),a=n(1413),r=n(72791),l=n(60364),o=n(13400),s=n(55646),c=n(5574),d=n(65661),u=n(39157),x=n(11135),p=n(25787),f=n(23814),h=n(42649),m=n(29823),g=n(28057),v=n(80184),j=(0,l.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});t.Z=(0,p.Z)((function(e){return(0,x.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(j((function(e){var t=e.onClose,n=e.modalOpen,l=e.title,x=e.children,p=e.classes,f=e.wideLimit,h=void 0===f||f,j=e.modalSnackMessage,b=e.noContentPadding,y=e.setModalSnackMessage,C=e.titleIcon,Z=void 0===C?null:C,w=(0,r.useState)(!1),N=(0,i.Z)(w,2),S=N[0],E=N[1];(0,r.useEffect)((function(){y("")}),[y]),(0,r.useEffect)((function(){if(j){if(""===j.message)return void E(!1);"error"!==j.type&&E(!0)}}),[j]);var A=h?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return j&&(k=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(k=j.message)),(0,v.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:n,classes:p},A),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:p.root,children:[(0,v.jsxs)(d.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[Z," ",l]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(o.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,v.jsx)(m.Z,{})})})]}),(0,v.jsx)(g.Z,{isModal:!0}),(0,v.jsx)(s.Z,{open:S,className:p.snackBarModal,onClose:function(){E(!1),y("")},message:k,ContentProps:{className:"".concat(p.snackBar," ").concat(j&&"error"===j.type?p.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:b?"":p.content,children:x})]}))})))},22625:function(e,t,n){n.r(t),n.d(t,{default:function(){return tt}});var i,a=n(29439),r=n(1413),l=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 h=n(45248),m=n(51846),g=n(82332),v=n(93656),j=n(80184),b=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],y=function(e){return(0,h.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:h.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:b,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:i.pieChart,innerLabel:"N/A",labelDisplayFunction:h.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.areaGraph,yAxisFormatter:h.ae,xAxisFormatter:h.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:b[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:h.Ue,yAxisFormatter:h.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:h.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:h.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:h.Ue,yAxisFormatter:h.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:h.ae,xAxisFormatter:h.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:h.ae,xAxisFormatter:h.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:i.simpleWidget,widgetIcon:(0,j.jsx)(m.Z,{}),labelDisplayFunction:y},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:i.simpleWidget,widgetIcon:(0,j.jsx)(g.Z,{}),labelDisplayFunction:y},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:h.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:h.Ue,yAxisFormatter:h.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:h.Ue,yAxisFormatter:h.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,disableYAxis:!0,xAxisFormatter:h.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:C,xAxisFormatter:h.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:C,xAxisFormatter:h.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:h.ae},{id:64,title:"Download",data:"N/A",type:i.singleValue,labelDisplayFunction:h.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 l=c()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=w(a,l),s=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,r.Z)((0,r.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]],r=i[i.length-1];return{name:a,value:parseInt(r)}})),m=t.labelDisplayFunction?t.labelDisplayFunction(p[1]):p[1];return(0,r.Z)((0,r.Z)({},t),{},{data:f,innerLabel:m})}break;case i.linearGraph:case i.areaGraph:if("graph"===n){var g=c()(e,"targets",[]);null===g&&(g=[]);var v=[],j=[];g.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]})),r=(a.match(/{{/g)||[]).length,l=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return r===l&&0!==r&&0!==l&&(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 r=c()(e,"values",[]);null===r&&(r=[]),r.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 y=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,r.Z)((0,r.Z)({},e),{},{lineColor:b[t]||(0,h.C5)(e.keyLabel),fillColor:b[t]||(0,h.C5)(e.keyLabel)})})),C=j.sort((function(e,t){return e.name-t.name}));return(0,r.Z)((0,r.Z)({},t),{},{widgetConfiguration:y,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]},S=[];return S=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,r.Z)((0,r.Z)({},t),{},{data:S})}break;case i.singleRep:if("stat"===n){var E=c()(e,"targets[0].result[0].values",[]);null===E&&(E=[]);var A=c()(e,"options.reduceOptions.calcs[0]","lastNotNull"),k=w(E,A),F=E.sort((function(e,t){return e[0]-t[0]})),T=[];1===F.length&&T.push({value:0}),F.forEach((function(e){T.push({value:parseInt(e[1])})}));var B=t.labelDisplayFunction?t.labelDisplayFunction(k[1]):k[1];return(0,r.Z)((0,r.Z)({},t),{},{data:T,innerLabel:B})}}return t},S=function(e){var t=e.split(" "),n=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,h.nk)(parseFloat(e))),(0,j.jsx)(l.Fragment,{children:t})};return 2!==t.length?n():h.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),A=n(42649),k=n(81207),F=n(72455),T=n(18073),B=n(43896),L=(0,F.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"}}}),M=function(e){var t=e.selectedTab,n=e.onChange,i=e.tabOptions,a=L();return(0,j.jsx)(l.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,r.Z)((0,r.Z)({},n),{},{value:e.value})),e.disabled&&(n=(0,r.Z)((0,r.Z)({},n),{},{disabled:e.disabled})),(0,l.createElement)(B.Z,(0,r.Z)((0,r.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)}))}))})})},I=n(57621),D=n(9585),P=n(91523),R=(0,F.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,r.Z)({},f.NP.titleContainer),content:{maxWidth:"100%"}}),W=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({},f.NP),{},{cardRoot:(0,r.Z)((0,r.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,r=e.moreLink,o=e.rightComponent,s=e.extraMargin,c=void 0!==s&&s,d=e.classes,u=R(),x=function(){return(0,j.jsx)(l.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)(l.Fragment,{children:(0,j.jsxs)("div",{className:d.headerContainer,children:[(0,j.jsx)("span",{className:d.title,children:t}),r&&(0,j.jsx)(l.Fragment,{children:(0,j.jsx)("span",{className:d.viewAll,children:(0,j.jsx)(P.rU,{to:r,children:"View All"})})})]})})};return(0,j.jsx)(l.Fragment,{children:(0,j.jsx)(I.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)(l.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)(l.Fragment,{children:(0,j.jsx)(W,{title:t,metricValue:n,rightComponent:i})})},O=n(19913),G=n(38725),_=n(90466),K=n(12891),U=n(24714),V=n(41048),$=n(35667),H=n(64119),J=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)({},f.Rp))}))((function(e){var t=e.active,n=e.payload,i=e.label,a=e.barChartConfiguration,r=e.classes;return t?(0,j.jsxs)("div",{className:r.customTooltip,children:[(0,j.jsx)("div",{className:r.timeStampTitle,children:i}),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].color}}),(0,j.jsx)("div",{className:r.itemValue,children:(0,j.jsx)("span",{className:r.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:A.Ih,openZoomPage:Y.xG}),te=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.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,r=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,h=(0,l.useState)(!0),m=(0,a.Z)(h,2),g=m[0],v=m[1],b=(0,l.useState)([]),y=(0,a.Z)(b,2),C=y[0],Z=y[1],w=(0,l.useState)(null),S=(0,a.Z)(w,2),E=S[0],A=S[1];(0,l.useEffect)((function(){s&&v(!0)}),[s]),(0,l.useEffect)((function(){if(g){var e=0;if(null!==r&&null!==o){var t=o.unix()-r.unix(),n=Math.floor(t/60);e=n<1?15:n}k.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(i.id,"/?step=").concat(e,"&").concat(null!==r?"&start=".concat(r.unix()):"").concat(null!==r&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=N(e,i);Z(t.data),A(t),v(!1)})).catch((function(e){c(e),v(!1)}))}}),[g,i,o,r,c,d]);var F=E?E.widgetConfiguration:[],T=0,B=0;if(1===F.length){var L=F[0];C.forEach((function(e,t){e[L.dataKey]>B&&(B=e[L.dataKey],T=t)}))}var M=(0,q.Z)(),I=(0,p.Z)(M.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,{})})]}),g&&(0,j.jsx)("div",{className:t.loadingAlign,children:(0,j.jsx)(Q.Z,{})}),!g&&(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)(K.B,{dataKey:"name",type:"category",interval:0,tick:(0,j.jsx)(X,{}),tickLine:!1,axisLine:!1,width:150,hide:!I}),F.map((function(e){return(0,j.jsx)(U.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:x?25:12,children:1===F.length?(0,j.jsx)(l.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:F})})]})})})]})}))),ne=n(37762),ie=n(28265),ae=n(82839),re=n(18602),le=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)({},f.Rp))}))((function(e){var t=e.active,n=e.payload,i=e.label,a=e.linearConfiguration,r=e.yAxisFormatter,l=e.classes;return t?(0,j.jsxs)("div",{className:l.customTooltip,children:[(0,j.jsx)("div",{className:l.timeStampTitle,children:(0,h.Ue)(i,!0)}),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].lineColor}}),(0,j.jsx)("div",{className:l.itemValue,children:(0,j.jsxs)("span",{className:l.valueContainer,children:[a[t].keyLabel,":"," ",r(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),oe=(0,o.$j)(null,{displayErrorMessage:A.Ih,openZoomPage:Y.xG}),se=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.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:{width:40,height:40,textAlign:"center",margin:"15px auto"}}))}))(oe((function(e){var t=e.classes,n=e.title,i=e.displayErrorMessage,r=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,h=void 0!==f&&f,m=e.yAxisFormatter,g=void 0===m?function(e){return e}:m,v=e.xAxisFormatter,b=void 0===v?function(e){return e}:v,y=e.zoomActivated,C=void 0!==y&&y,Z=e.openZoomPage,w=(0,l.useState)(!0),S=(0,a.Z)(w,2),E=S[0],A=S[1],F=(0,l.useState)([]),T=(0,a.Z)(F,2),B=T[0],L=T[1],M=(0,l.useState)(0),I=(0,a.Z)(M,2),D=I[0],P=I[1],R=(0,l.useState)(null),W=(0,a.Z)(R,2),z=W[0],G=W[1];(0,l.useEffect)((function(){s&&A(!0)}),[s]),(0,l.useEffect)((function(){if(E){var e=0;if(null!==r&&null!==o){var t=o.unix()-r.unix(),n=Math.floor(t/60);e=n<1?15:n}k.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(c.id,"/?step=").concat(e,"&").concat(null!==r?"&start=".concat(r.unix()):"").concat(null!==r&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=N(e,c);L(t.data),G(t),A(!1);var n,i=0,a=(0,ne.Z)(t.data);try{for(a.s();!(n=a.n()).done;){var r=n.value;for(var l in r)if("name"!==l){var o=parseInt(r[l]);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:r});case i.simpleWidget:return(0,j.jsx)(fe,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:r,iconWidget:e.widgetIcon});case i.pieChart:return(0,j.jsx)(xe,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:r});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:r,areaWidget:e.type===i.areaGraph,zoomActivated:l});case i.barChart:return(0,j.jsx)(te,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:r,zoomActivated:l});case i.singleRep:var o=e.fillColor?e.fillColor:e.color;return(0,j.jsx)(me,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,color:e.color,fillColor:o,apiPrefix:r});default:return null}},be=n(56028),ye=(0,o.$j)(null,{onCloseAction:Y.jv})((function(e){var t=e.value,n=e.modalOpen,i=e.timeStart,a=e.timeEnd,r=e.apiPrefix,o=e.onCloseAction;return t?(0,j.jsx)(be.Z,{title:t.title,onClose:function(){o()},modalOpen:n,wideLimit:!1,noContentPadding:!0,children:(0,j.jsx)(l.Fragment,{children:je(t,i,a,!0,r,!0)})}):null})),Ce=n(63856),Ze=(0,o.$j)((function(e){return{zoomOpen:e.dashboard.zoom.openZoom,zoomWidget:e.dashboard.zoom.widgetRender}}),{displayErrorMessage:A.Ih}),we=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.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,r=void 0===i?"admin":i,o=e.zoomOpen,s=e.zoomWidget,c=(0,l.useState)(null),u=(0,a.Z)(c,2),x=u[0],f=u[1],h=(0,l.useState)(null),m=(0,a.Z)(h,2),g=m[0],v=m[1],b=(0,l.useState)(!0),y=(0,a.Z)(b,2),C=y[0],w=y[1],S=(0,l.useState)(Z),A=(0,a.Z)(S,2),F=A[0],T=A[1],B=(0,l.useState)(0),L=(0,a.Z)(B,2),I=L[0],D=L[1],P=(0,q.Z)(),R=(0,p.Z)(P.breakpoints.up("md")),W=(0,l.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!R&&a>=4?o=6:!R&&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=F.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)(l.Fragment,{children:i.mergedPanels?(0,j.jsx)(l.Fragment,{children:(0,j.jsx)(z,{title:i.title,leftComponent:je(i.mergedPanels[0],x,g,C,r),rightComponent:je(i.mergedPanels[1],x,g,C,r)})}):je(i,x,g,C,r)}):null})},"widget-".concat(e,"-").concat(n))}))},"line-".concat(e,"-").concat(i))}))}),[x,g,C,r,t.dashboardRow,t.widgetPanelDelimiter,F,R]),O=(0,l.useCallback)((function(){var e=0;if(null!==x&&null!==g){var t=g.unix()-x.unix(),i=Math.floor(t/60);e=i<1?15:i}k.Z.invoke("GET","/api/v1/".concat(r,"/info?step=").concat(e,"&").concat(null!==x?"&start=".concat(x.unix()):"").concat(null!==x&&null!==g?"&":"").concat(null!==g?"end=".concat(g.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,g,n,r]);(0,l.useEffect)((function(){C&&O()}),[C,O]);var G=[[66,44,500,501],[80,81,1],[68,52],[63,70]];R?G.splice(1,0,[50,502]):(G.splice(1,0,[50]),G.splice(1,0,[502]));return(0,j.jsxs)(l.Fragment,{children:[o&&(0,j.jsx)(ye,{modalOpen:o,timeStart:x,timeEnd:g,widgetRender:0,value:s,apiPrefix:r}),(0,j.jsx)(Ce.Z,{timeStart:x,setTimeStart:f,timeEnd:g,setTimeEnd:v,triggerSync:function(){w(!0)}}),(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)(M,{selectedTab:I,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:I,children:W("Summary",G)}),(0,j.jsx)(E.x,{index:1,value:I,children:W("Traffic",[[60],[71,17],[73]])}),(0,j.jsx)(E.x,{index:2,value:I,children:W("Resources",[[76,77],[11,8],[82,74]])})]})]})}))),Ne=n(32291),Se=n(40986),Ee=n(93433),Ae=n(64554),ke=n(23804),Fe=function(e){var t=e.onlineCount,n=void 0===t?0:t,i=e.offlineCount,a=void 0===i?0:i,r=e.icon,l=void 0===r?null:r,o=e.label,s=void 0===o?"":o;return(0,j.jsx)(Ae.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"260px",minHeight:"143px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,j.jsxs)(Ae.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,j.jsxs)(Ae.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"22px"},children:[(0,j.jsx)(Ae.Z,{sx:{fontSize:"16px",fontWeight:600},children:s}),(0,j.jsxs)(Ae.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"25px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"25px",height:"10px",width:"10px"}},children:[(0,j.jsxs)(Ae.Z,{children:[(0,j.jsx)(Ae.Z,{className:"stat-value",children:n}),(0,j.jsxs)(Ae.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.jsxs)(Ae.Z,{children:[(0,j.jsx)(Ae.Z,{className:"stat-value",children:a}),(0,j.jsxs)(Ae.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)(Ae.Z,{sx:{width:"20px",height:"20px",marginTop:"26px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:l})]})})},Te=n(98444),Be=n.n(Te),Le=n(79834),Me=n(90493),Ie=n(76278),De=n(56125),Pe="#C83B51",Re="#4CCB92",We="#E7A219",ze=function(e,t){return e<=t/2?Pe:2!==t&&e===t/2+1?We:e===t?Re:void 0},Oe=function(e){switch(e){case"offline":return Pe;case"online":return Re;default:return We}},Ge=function(e,t){return e<=t/2?Pe:e===t/2+1?We:e===t?Re:void 0},_e=function(e){var t=e.label,n=void 0===t?"":t,i=e.value,a=void 0===i?"":i,r=e.statusColor,l=void 0===r?"":r,o=e.hasStatus,s=void 0!==o&&o;return(0,j.jsx)(Ae.Z,{sx:{alignItems:"baseline",padding:"5px",display:"flex",gap:"5px"},children:(0,j.jsxs)(Ae.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"12px"},"& .stat-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,j.jsxs)("div",{className:"stat-value",children:[a," ",(0,j.jsx)(Ae.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column",marginLeft:"5px",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:s?(0,j.jsx)(Ae.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:l,width:"10px",height:"10px"}},children:(0,j.jsx)(v.J$,{})}):(0,j.jsx)(Ae.Z,{sx:{width:"12px",height:"12px"}})})]}),(0,j.jsx)("div",{className:"stat-text",children:n})]})})},Ke=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)({},f.SJ))}))((function(e){var t=e.server,n=Object.keys(c()(t,"network",{})),i=n.length,a=t.drives?t.drives.length:0,r=n.reduce((function(e,n){return"online"===t.network[n]?e+1:e}),0),l=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,j.jsx)(Ae.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:(0,j.jsxs)(Ae.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.jsxs)(Ae.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,j.jsx)(Ae.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""}),(null===t||void 0===t?void 0:t.state)&&(0,j.jsx)(Ae.Z,{sx:{marginLeft:"8px","& .min-icon":{fill:Oe(t.state),height:"14px",width:"14px"}},children:(0,j.jsx)(v.J$,{})})]}),(0,j.jsxs)(Ae.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flex:"1.5",gap:{md:"5%",xs:"5%"}},children:[(0,j.jsx)(_e,{statusColor:ze(l,a),label:"Drives",hasStatus:!0,value:"".concat(l,"/").concat(a)}),(0,j.jsx)(_e,{statusColor:Ge(r,i),label:"Network",hasStatus:!0,value:"".concat(r,"/").concat(i)}),(0,j.jsx)(_e,{statusColor:"green",label:"Up time",value:null!==t&&void 0!==t&&t.uptime?(0,h.v1)(t.uptime):"N/A"})]}),(0,j.jsx)(_e,{statusColor:"green",label:"",value:(0,j.jsxs)(Ae.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"2px",fontSize:"12px",marginTop:"5px","& .label":{fontWeight:600,marginRight:"3px"}},children:[(0,j.jsx)("span",{className:"label",children:"Version:"}),t.version?t.version:"N/A"]})})]})})})),Ue=function(e){switch(e){case"offline":return Pe;case"ok":return Re;default:return We}},Ve=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)({},f.SJ))}))((function(e){var t=e.drive,n=[{value:t.totalSpace,color:"#D6D6D6",label:"Free Space"},{value:t.usedSpace,color:"#073052",label:"Used Space"}];return(0,j.jsx)(Ae.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",padding:"20px",border:"1px solid #eaeaea"},children:(0,j.jsxs)(Ae.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,j.jsxs)(Ae.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:Ue(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",marginRight:"8px",fontWeight:600,fontSize:{md:"16px",xs:"10px"}}},children:[(0,j.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""}),t.state&&(0,j.jsx)(v.J$,{})]}),(0,j.jsxs)(Ae.Z,{sx:{flex:1,display:"flex",alignItems:"center",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#5E5E5E",fontSize:"12px",textAlign:"center"},"& .info-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,j.jsx)(Ae.Z,{sx:{flex:1},children:(0,j.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,j.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:(0,h.l5)(t.usedSpace)}),(0,j.jsx)("div",{children:(0,j.jsx)(ce.u,{width:110,height:110,children:(0,j.jsx)(de.b,{data:n,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,startAngle:-70,endAngle:360,animationDuration:1,children:n.map((function(e,t){return(0,j.jsx)(V.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})}),(0,j.jsxs)(Ae.Z,{sx:{display:"flex",gap:"5%",alignItems:"center",flex:2,flexGrow:1},children:[(0,j.jsxs)(Ae.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("div",{className:"info-value",children:(0,h.ae)(t.totalSpace?t.totalSpace.toString():"0")}),(0,j.jsx)("label",{className:"info-label",children:"Capacity"})]}),(0,j.jsxs)(Ae.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("div",{className:"info-value",children:(0,h.ae)(t.usedSpace?t.usedSpace.toString():"0")}),(0,j.jsx)("label",{className:"info-label",children:"Used"})]}),(0,j.jsxs)(Ae.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("div",{className:"info-value",children:(0,h.ae)(t.availableSpace?t.availableSpace.toString():"0")}),(0,j.jsx)("label",{className:"info-label",children:"Available"})]})]})]})]})})})),$e=n(25183),He=function(e){var t=e.data,n=l.useState(t.length>1?"":t[0].endpoint+"-0"),i=(0,a.Z)(n,2),r=i[0],o=i[1],s=function(e){o(e)};return(0,j.jsxs)(Ae.Z,{children:[(0,j.jsxs)(Ae.Z,{sx:{marginBottom:"10px"},children:["Servers (",t.length,")"]}),(0,j.jsx)(Me.Z,{sx:{width:"100%",flex:1,padding:"0"},component:"nav","aria-labelledby":"nested-list-subheader",children:t.map((function(e,t){var n="".concat(e.endpoint,"-").concat(t),i=r===n;return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsxs)(Ie.Z,{disableRipple:!0,onClick:function(){s(i?"":n)},className:i?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",border:"1px solid #f1f1f1",padding:"3px 10px 3px 10px","&:hover":{background:"#bebbbb0d"}},children:[(0,j.jsx)(Ke,{server:e,index:t}),(0,j.jsx)(Ae.Z,{sx:{height:"25px",width:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"},"& .collapse-icon":{fill:"#494949","& g rect":{fill:"#ffffff"}},"& .expand-icon":{fill:"#494949","& rect":{fill:"#ffffff"}}},children:i?(0,j.jsx)($e.cg,{className:"collapse-icon"}):(0,j.jsx)($e.Ud,{className:"expand-icon"})})]}),i?(0,j.jsxs)(Ae.Z,{sx:{border:"1px solid #f1f1f1",borderTop:"0"},children:[(0,j.jsxs)(Le.Z,{component:"div",sx:{paddingLeft:"30px"},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:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,j.jsx)(Ve,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},n)}))})]})},Je=n(20068),Ye=function(e){var t=e.counterValue,n=e.label,i=void 0===n?"":n,a=e.icon,r=void 0===a?null:a;return(0,j.jsx)(Ae.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",minHeight:"143px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,j.jsxs)(Ae.Z,{sx:{flex:1,minHeight:"200px",display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,j.jsxs)(Ae.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"22px",zIndex:10,overflow:"hidden"},children:[(0,j.jsx)(Ae.Z,{sx:{fontSize:"16px",fontWeight:600},children:i}),(0,j.jsx)(Je.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,j.jsx)(Ae.Z,{sx:{fontSize:{xl:"55px",lg:"50px",md:"36px",sm:"35px",xs:"35px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200},flexFlow:{md:"row",xs:"column"}},children:t})})]}),(0,j.jsx)(Ae.Z,{sx:{width:"20px",height:"20px",marginTop:"26px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},qe=function(e){var t=e.usageValue,n=e.total,i=e.unit;return(0,j.jsxs)(Ae.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)(Je.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})]})},Qe=function(e){var t=e.children;return(0,j.jsx)(Ae.Z,{sx:{border:"1px solid #f1f1f1",padding:"25px",maxWidth:{sm:"100%"}},children:t})},Xe=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,h.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),r=[];a.forEach((function(e){var t=e.drives.map((function(e){return e}));r=[].concat((0,Ee.Z)(r),(0,Ee.Z)(t))}));var o=Be()(a,"state"),s=o.offline,c=void 0===s?[]:s,d=o.online,u=void 0===d?[]:d,x=Be()(r,"state"),p=x.offline,f=void 0===p?[]:p,m=x.ok,g=void 0===m?[]:m;return(0,j.jsx)(Ae.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,j.jsxs)(Ae.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"40px",marginLeft:"60px",marginRight:"60px"},children:[(0,j.jsxs)(Ae.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,j.jsx)(ke.Z,{iconComponent:(0,j.jsx)(v.a$,{}),title:"We can't retrieve advanced metrics at this time",help:(0,j.jsxs)(l.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)(ke.Z,{iconComponent:(0,j.jsx)(v.a$,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,j.jsxs)(Ae.Z,{children:[(0,j.jsx)(Ae.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)(Ae.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)(Ae.Z,{sx:{display:"grid",gridTemplateRows:"1fr .2fr auto",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,j.jsxs)(Ae.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:{lg:"1fr 1fr 1fr 1fr ",sm:"1fr 1fr",xs:"1fr"},gap:"40px"},children:[(0,j.jsx)(Qe,{children:(0,j.jsx)(Ye,{label:"Buckets",icon:(0,j.jsx)(v.wN,{}),counterValue:t?(0,h.nk)(t.buckets):0})}),(0,j.jsx)(Qe,{children:(0,j.jsx)(Ye,{label:"Objects",icon:(0,j.jsx)(v.xp,{}),counterValue:t?(0,h.nk)(t.objects):0})}),(0,j.jsx)(Qe,{children:(0,j.jsx)(Fe,{onlineCount:u.length,offlineCount:c.length,label:"Servers",icon:(0,j.jsx)(v.SB,{})})}),(0,j.jsx)(Qe,{children:(0,j.jsx)(Fe,{offlineCount:f.length,onlineCount:g.length,label:"Drives",icon:(0,j.jsx)(v.FU,{})})})]}),(0,j.jsx)(Qe,{children:(0,j.jsx)(qe,{usageValue:n,total:i.total,unit:i.unit})}),(0,j.jsx)(Ae.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,j.jsx)(He,{data:a})})]})]})})},et=(0,o.$j)(null,{displayErrorMessage:A.Ih}),tt=(0,x.Z)((function(e){return(0,u.Z)((0,r.Z)({},(0,f.Bz)(e.spacing(4))))}))(et((function(e){var t=e.classes,n=e.displayErrorMessage,i=(0,l.useState)(!0),r=(0,a.Z)(i,2),o=r[0],s=r[1],u=(0,l.useState)(null),x=(0,a.Z)(u,2),p=x[0],f=x[1],h=(0,l.useCallback)((function(){k.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,l.useEffect)((function(){o&&h()}),[o,h]);var m=c()(p,"widgets",null);return(0,j.jsxs)(l.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)(Se.Z,{})})}):(0,j.jsx)(l.Fragment,{children:null!==m?(0,j.jsx)(d.ZP,{container:!0,className:t.container,children:(0,j.jsx)(we,{})}):(0,j.jsx)(Xe,{usage:p})})]})})))},19847:function(e,t,n){n.d(t,{x:function(){return s}});var i=n(1413),a=n(45987),r=n(72791),l=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,l.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,l.jsx)(r.Fragment,{children:t})}))}}}]); +//# sourceMappingURL=2625.6d6e6809.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2625.6d6e6809.chunk.js.map b/portal-ui/build/static/js/2625.6d6e6809.chunk.js.map new file mode 100644 index 000000000..b13f6cd5c --- /dev/null +++ b/portal-ui/build/static/js/2625.6d6e6809.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2625.6d6e6809.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Dashboard/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 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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 width: 40,\n height: 40,\n textAlign: \"center\",\n margin: \"15px 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 {onlineCount}\n \n
    Online
    \n
    \n \n\n \n {offlineCount}\n \n
    Offline
    \n
    \n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default StatusCountCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ServerInfo } from \"../types\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\nimport get from \"lodash/get\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n getDriveStatusColor,\n getNetworkStatusColor,\n serverStatusColor,\n} from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n server: ServerInfo;\n index: number;\n}\n\nconst ServerStatItem = ({\n label = \"\",\n value = \"\",\n statusColor = \"\",\n hasStatus = false,\n}: {\n label?: string;\n value?: any;\n hasStatus?: boolean;\n statusColor: string | undefined;\n}) => {\n return (\n \n \n
    \n {value}{\" \"}\n \n {hasStatus ? (\n \n \n \n ) : (\n \n )}\n \n
    \n
    {label}
    \n \n \n );\n};\n\nconst ServerInfoItem = ({ server }: ICardProps) => {\n const networkKeys = Object.keys(get(server, \"network\", {}));\n const networkTotal = networkKeys.length;\n const totalDrives = server.drives ? server.drives.length : 0;\n const activeNetwork = networkKeys.reduce((acc: number, currValue: string) => {\n const item = server.network[currValue];\n if (item === \"online\") {\n return acc + 1;\n }\n return acc;\n }, 0);\n const activeDisks = server.drives\n ? server.drives.filter((element) => element.state === \"ok\").length\n : 0;\n return (\n \n \n \n \n {server.endpoint || \"\"}\n \n {server?.state && (\n \n \n \n )}\n \n\n \n \n \n\n \n \n \n Version:\n {server.version ? server.version : \"N/A\"}\n \n }\n />\n \n \n );\n};\nexport default withStyles(styles)(ServerInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IDriveInfo } from \"../types\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { STATUS_COLORS } from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n drive: IDriveInfo;\n}\n\nconst driveStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"ok\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\n\nconst DriveInfoItem = ({ drive }: ICardProps) => {\n const plotValues = [\n { value: drive.totalSpace, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: drive.usedSpace,\n color: \"#073052\",\n label: \"Used Space\",\n },\n ];\n return (\n \n \n \n
    {drive.endpoint || \"\"}
    \n {drive.state && }\n \n\n \n \n
    \n \n {niceBytesInt(drive.usedSpace)}\n \n
    \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
    \n
    \n
    \n\n \n \n
    \n {niceBytes(\n drive.totalSpace ? drive.totalSpace.toString() : \"0\"\n )}\n
    \n \n \n\n \n
    \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
    \n \n \n \n
    \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
    \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(DriveInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport { ServerInfo } from \"../types\";\nimport ServerInfoItem from \"./ServerInfoItem\";\nimport { Box } from \"@mui/material\";\nimport DriveInfoItem from \"./DriveInfoItem\";\nimport {\n MenuCollapsedIcon,\n MenuExpandedIcon,\n} from \"../../../../icons/SidebarMenus\";\n\nconst ServersList = ({ data }: { data: ServerInfo[] }) => {\n const [expanded, setExpanded] = React.useState(\n data.length > 1 ? \"\" : data[0].endpoint + \"-0\"\n );\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n return (\n \n \n Servers ({data.length})\n \n \n {data.map((serverInfo, index) => {\n const key = `${serverInfo.endpoint}-${index}`;\n const isExpanded = expanded === key;\n return (\n \n {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n }}\n className={isExpanded ? \"expanded\" : \"\"}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n border: \"1px solid #f1f1f1\",\n padding: \"3px 10px 3px 10px\",\n\n \"&:hover\": {\n background: \"#bebbbb0d\",\n },\n }}\n >\n \n \n {isExpanded ? (\n \n ) : (\n \n )}\n \n \n {isExpanded ? (\n \n \n Drives ({serverInfo.drives.length})\n \n\n \n {serverInfo.drives.map((driveInfo, index) => {\n return (\n \n );\n })}\n \n \n ) : null}\n \n );\n })}\n \n \n );\n};\n\nexport default ServersList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst CounterCard = ({\n counterValue,\n label = \"\",\n icon = null,\n}: {\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 = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\ninterface IDashboardProps {\n usage: Usage | null;\n}\n\nconst getServersList = (usage: Usage | null) => {\n if (usage !== null) {\n return usage.servers.sort(function (a, b) {\n const nameA = a.endpoint.toLowerCase();\n const nameB = b.endpoint.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }\n\n return [];\n};\n\nconst prettyUsage = (usage: string | undefined) => {\n if (usage === undefined) {\n return { total: \"0\", unit: \"Mi\" };\n }\n\n return calculateBytes(usage);\n};\n\nconst BasicDashboard = ({ usage }: IDashboardProps) => {\n const usageValue = usage && usage.usage ? usage.usage.toString() : \"0\";\n const usageToRepresent = prettyUsage(usageValue);\n\n const 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\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 setDialogOpen(true)}\n >\n Save\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 mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantSecurity));\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","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","props","xmlns","fill","viewBox","d","transform","clipPath","root","padding","backgroundColor","textDecoration","cursor","fontSize","palette","info","main","fontFamily","certificateIcon","float","paddingTop","paddingRight","certificateInfo","certificateWrapper","height","userSelect","borderRadius","certificateExpiry","display","alignItems","flexWrap","marginBottom","certificateDomains","certificatesList","textTransform","overflowY","maxHeight","certificatesListItem","borderBottom","minWidth","marginRight","opacity","onDelete","certificates","domains","Chip","variant","Container","Typography","gutterBottom","Box","EventBusy","format","expiry","Divider","List","map","dom","ListItem","ListItemAvatar","Language","ListItemText","primary","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","bold","italic","fontStyle","paperContainer","fileItem","caCertsRow","containerForHeader","spacing","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","isSending","setIsSending","dialogOpen","setDialogOpen","enableAutoCert","setEnableAutoCert","enableCustomCerts","setEnableCustomCerts","certificatesToBeRemoved","setCertificatesToBeRemoved","minioCertificates","setMinioCertificates","minioCaCertificates","setMinioCaCertificates","minioTLSCertificateSecrets","setMinioTLSCertificateSecrets","minioTLSCaCertificateSecrets","setMinioTLSCaCertificateSecrets","getTenantSecurityInfo","useCallback","api","namespace","then","res","autoCert","customCertificates","minio","minioCAs","catch","err","useEffect","removeCertificate","updatedMinIOTLSCertificateSecrets","filter","certificateSecret","updatedMinIOTLSCaCertificateSecrets","addFileToKeyPair","key","updateCertificates","deleteKeyPair","addKeyPair","Date","now","cert","encoded_key","encoded_cert","confirmText","cancelText","titleIcon","isLoading","onClose","isOpen","onConfirm","payload","secretsToBeDeleted","keyPair","crt","confirmationContent","container","sectionTitle","hrClass","checked","description","Fragment","style","encodedValue","endIcon","justifyContent","errorBlock","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js b/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js deleted file mode 100644 index 9bb1ddaaf..000000000 --- a/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2684],{54639:function(e,n,t){t.d(n,{Z:function(){return g}});var i=t(29439),a=t(1413),r=t(72791),o=t(26181),c=t.n(o),s=t(61889),l=t(30829),d=t(20068),m=t(13400),u=t(99663),x=t(86711),f=t(11135),p=t(25787),h=t(23814),Z=t(84570),j=t(22512),v=t(80184),g=(0,p.Z)((function(e){return(0,f.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.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,a.Z)((0,a.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,a.Z)((0,a.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,t=e.classes,a=e.onChange,o=e.id,f=e.name,p=e.disabled,h=void 0!==p&&p,g=e.tooltip,C=void 0===g?"":g,b=e.required,y=e.error,k=void 0===y?"":y,N=e.accept,I=void 0===N?"":N,w=e.value,P=void 0===w?"":w,S=(0,r.useState)(!1),B=(0,i.Z)(S,2),T=B[0],A=B[1];return(0,v.jsx)(r.Fragment,{children:(0,v.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(t.fileInputField," ").concat(t.fieldBottom," ").concat(t.fieldContainer," ").concat(""!==k?t.errorInField:""),children:[""!==n&&(0,v.jsxs)(l.Z,{htmlFor:o,className:"".concat(""!==k?t.fieldLabelError:""," ").concat(t.inputLabel),children:[(0,v.jsxs)("span",{children:[n,b?"*":""]}),""!==C&&(0,v.jsx)("div",{className:t.tooltipContainer,children:(0,v.jsx)(d.Z,{title:C,placement:"top-start",children:(0,v.jsx)("div",{className:t.tooltip,children:(0,v.jsx)(Z.Z,{})})})})]}),T||""===P?(0,v.jsxs)("div",{className:t.textBoxContainer,children:[(0,v.jsx)("input",{type:"file",name:f,onChange:function(e){var n=c()(e,"target.files[0].name","");!function(e,n){var t=e.target.files[0],i=new FileReader;i.readAsDataURL(t),i.onload=function(){var e=i.result;if(e){var t=e.toString().split("base64,");2===t.length&&n(t[1])}}}(e,(function(e){a(e,n)}))},accept:I,required:b,disabled:h,className:t.fileInputField}),""!==P&&(0,v.jsx)(m.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(x.Z,{})}),""!==k&&(0,v.jsx)(j.Z,{errorMessage:k})]}):(0,v.jsxs)("div",{className:t.fileReselect,children:[(0,v.jsx)("div",{className:t.valueString,children:P}),(0,v.jsx)(m.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(u.Z,{})})]})]})})}))},23508:function(e,n,t){var i=t(1413),a=t(72791),r=t(5574),o=t(65661),c=t(39157),s=t(97123),l=t(36151),d=t(59860),m=t(13400),u=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,i.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,j=void 0===Z?{}:Z,v=e.title,g=void 0===v?"":v,C=e.isLoading,b=e.confirmationContent,y=e.cancelText,k=void 0===y?"Cancel":y,N=e.confirmText,I=void 0===N?"Confirm":N,w=e.confirmButtonProps,P=void 0===w?{}:w,S=e.cancelButtonProps,B=void 0===S?{}:S,T=e.titleIcon,A=void 0===T?null:T;return(0,h.jsxs)(r.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&x()},className:j.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(o.Z,{className:j.title,children:[(0,h.jsxs)("div",{className:j.titleText,children:[A," ",g]}),(0,h.jsx)("div",{className:j.closeContainer,children:(0,h.jsx)(m.Z,{"aria-label":"close",className:j.closeButton,onClick:x,disableRipple:!0,size:"small",children:(0,h.jsx)(u.Z,{})})})]}),(0,h.jsx)(c.Z,{className:j.content,children:b}),(0,h.jsxs)(s.Z,{className:j.actions,children:[(0,h.jsx)(l.Z,(0,i.Z)((0,i.Z)({className:j.cancelButton,onClick:f||x,disabled:C,type:"button"},B),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:k})),(0,h.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:j.confirmButton,type:"button",onClick:p,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(a.Fragment,{}),autoFocus:!0,id:"confirm-ok"},P),{},{children:I}))]})]})}))},98952:function(e,n,t){t.d(n,{Z:function(){return b}});t(72791);var i=t(11135),a=t(25787),r=t(90983),o=t(81918),c=t(26445),s=t(61889),l=t(20890),d=t(64554),m=t(94721),u=t(90493),x=t(15021),f=t(20653),p=t(49900),h=t(52502),Z=t(46431),j=t.n(Z),v=t(1413),g=t(80184),C=function(e){return(0,g.jsxs)("svg",(0,v.Z)((0,v.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"certificate_svg__a",children:(0,g.jsx)("path",{"data-name":"Rect\\xE1ngulo 2156",fill:"#07193e",d:"M0 0h256v222.048H0z"})})}),(0,g.jsxs)("g",{"data-name":"Grupo 4763",transform:"translate(0 17)",clipPath:"url(#certificate_svg__a)",fill:"#07193e",children:[(0,g.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,g.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,g.jsx)("path",{"data-name":"Rect\\xE1ngulo 2157",fill:"none",d:"M0 0h256v256H0z"})]}))},b=(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"},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,t=e.certificateInfo,i=e.onDelete,a=void 0===i?function(){}:i,Z=t.domains||[];return(0,g.jsx)(o.Z,{variant:"outlined",color:"primary",className:n.certificateWrapper,label:(0,g.jsxs)(c.Z,{children:[(0,g.jsx)(s.ZP,{item:!0,xs:1,className:n.certificateIcon,children:(0,g.jsx)(C,{})}),(0,g.jsxs)(s.ZP,{item:!0,xs:11,className:n.certificateInfo,children:[(0,g.jsx)(l.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:t.name}),(0,g.jsxs)(d.Z,{className:n.certificateExpiry,children:[(0,g.jsx)(h.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,g.jsx)("span",{className:"label",children:"Expiry:\xa0"}),(0,g.jsx)("span",{children:(0,g.jsx)(j(),{format:"YYYY/MM/DD",children:t.expiry})})]}),(0,g.jsx)(m.Z,{}),(0,g.jsx)("br",{}),(0,g.jsx)(d.Z,{className:n.certificateDomains,children:(0,g.jsx)("span",{className:"label",children:"".concat(Z.length," Domain (s):")})}),(0,g.jsx)(u.Z,{className:n.certificatesList,children:Z.map((function(e){return(0,g.jsxs)(x.ZP,{className:n.certificatesListItem,children:[(0,g.jsx)(f.Z,{children:(0,g.jsx)(r.Z,{})}),(0,g.jsx)(p.Z,{primary:e})]})}))})]})]}),onDelete:a},t.name)}))},12684:function(e,n,t){t.r(n);var i=t(4942),a=t(93433),r=t(29439),o=t(1413),c=t(11135),s=t(25787),l=t(23814),d=t(10703),m=t(61889),u=t(72791),x=t(37516),f=t(51691),p=t(36151),h=t(54639),Z=t(81207),j=t(42649),v=t(60364),g=t(75460),C=t(23508),b=t(93656),y=t(72401),k=t(98952),N=t(80184),I={setErrorSnackMessage:j.Ih,setTenantDetailsLoad:g.V2},w=(0,v.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),I);n.default=(0,s.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},l.oZ),l.bK),{},{loaderAlign:{textAlign:"center"},title:{marginTop:35},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},paperContainer:{padding:"15px 15px 15px 50px"},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,l.Bz)(e.spacing(4))))}))(w((function(e){var n=e.classes,t=e.tenant,c=e.loadingTenant,s=e.setErrorSnackMessage,l=(e.setTenantDetailsLoad,(0,u.useState)(!1)),j=(0,r.Z)(l,2),v=j[0],g=j[1],I=(0,u.useState)(!1),w=(0,r.Z)(I,2),P=w[0],S=w[1],B=(0,u.useState)(!1),T=(0,r.Z)(B,2),A=T[0],R=T[1],D=(0,u.useState)(!1),E=(0,r.Z)(D,2),_=E[0],F=E[1],L=(0,u.useState)([]),M=(0,r.Z)(L,2),z=M[0],W=M[1],H=(0,u.useState)([]),O=(0,r.Z)(H,2),Y=O[0],K=O[1],q=(0,u.useState)([]),G=(0,r.Z)(q,2),V=G[0],Q=G[1],U=(0,u.useState)([]),$=(0,r.Z)(U,2),J=$[0],X=$[1],ee=(0,u.useState)([]),ne=(0,r.Z)(ee,2),te=ne[0],ie=ne[1],ae=(0,u.useCallback)((function(){Z.Z.invoke("GET","/api/v1/namespaces/".concat(null===t||void 0===t?void 0:t.namespace,"/tenants/").concat(null===t||void 0===t?void 0:t.name,"/security")).then((function(e){R(e.autoCert),(e.customCertificates.minio||e.customCertificates.minioCAs)&&F(!0),X(e.customCertificates.minio||[]),ie(e.customCertificates.minioCAs||[])})).catch((function(e){s(e)}))}),[t,s]);(0,u.useEffect)((function(){t&&ae()}),[t,ae]);var re=function(e){W([].concat((0,a.Z)(z),[e.name]));var n=J.filter((function(n){return n.name!==e.name})),t=te.filter((function(n){return n.name!==e.name}));X(n),ie(t)},oe=function(e,n,t,a,r){var c=Y,s=function(){};switch(e){case"minio":c=Y,s=K;break;case"minioCAs":c=V,s=Q}s(c.map((function(e){var c;return e.id===n?(0,o.Z)((0,o.Z)({},e),{},(c={},(0,i.Z)(c,t,a),(0,i.Z)(c,"encoded_".concat(t),r),c)):e})))},ce=function(e,n){var t=Y,i=function(){};switch(e){case"minio":t=Y,i=K;break;case"minioCAs":t=V,i=Q}t.length>1&&i(t.filter((function(e){return e.id!==n})))},se=function(e){var n=Y,t=function(){};switch(e){case"minio":n=Y,t=K;break;case"minioCAs":n=V,t=Q}t([].concat((0,a.Z)(n),[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}]))};return(0,N.jsxs)(u.Fragment,{children:[(0,N.jsx)(C.Z,{title:"Save and Restart",confirmText:"Restart",cancelText:"Cancel",titleIcon:(0,N.jsx)(b.Ej,{}),isLoading:v,onClose:function(){return S(!1)},isOpen:P,onConfirm:function(){g(!0);var e={autoCert:A,customCertificates:{}};e.customCertificates=_?{secretsToBeDeleted:z,minio:Y.map((function(e){return{crt:e.encoded_cert,key:e.encoded_key}})).filter((function(e){return e.crt&&e.key})),minioCAs:V.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}:{secretsToBeDeleted:[].concat((0,a.Z)(J.map((function(e){return e.name}))),(0,a.Z)(te.map((function(e){return e.name})))),minio:[],minioCAs:[]},Z.Z.invoke("POST","/api/v1/namespaces/".concat(null===t||void 0===t?void 0:t.namespace,"/tenants/").concat(null===t||void 0===t?void 0:t.name,"/security"),e).then((function(){g(!1),S(!1),K([{cert:"",encoded_cert:"",encoded_key:"",id:Date.now().toString(),key:""}]),Q([{cert:"",encoded_cert:"",encoded_key:"",id:Date.now().toString(),key:""}]),ae()})).catch((function(e){s(e),g(!1)}))},confirmationContent:(0,N.jsx)(f.Z,{children:"Are you sure you want to save the changes and restart the service?"})}),c?(0,N.jsx)(d.Z,{className:n.paperContainer,children:(0,N.jsx)("div",{className:n.loaderAlign,children:(0,N.jsx)(y.Z,{})})}):(0,N.jsxs)(u.Fragment,{children:[(0,N.jsx)("h1",{className:n.sectionTitle,children:"Security"}),(0,N.jsxs)(d.Z,{className:n.paperContainer,children:[(0,N.jsxs)(m.ZP,{item:!0,xs:12,className:n.title,children:[(0,N.jsx)(x.Z,{value:"enableAutoCert",id:"enableAutoCert",name:"enableAutoCert",checked:A,onChange:function(e){var n=e.target.checked;R(n)},label:"TLS",description:"The internode certificates will be generated and managed by MinIO Operator"}),(0,N.jsx)(x.Z,{value:"enableCustomCerts",id:"enableCustomCerts",name:"enableCustomCerts",checked:_,onChange:function(e){var n=e.target.checked;F(n)},label:"Custom Certificates"})]}),_&&(0,N.jsxs)(m.ZP,{container:!0,children:[(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:(0,N.jsx)("h4",{children:"MinIO Certificates"})}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:J.map((function(e){return(0,N.jsx)(k.Z,{certificateInfo:e,onDelete:function(){return re(e)}})}))}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:Y.map((function(e){return(0,N.jsxs)(m.ZP,{item:!0,xs:12,className:n.certInputRow,children:[(0,N.jsxs)(m.ZP,{item:!0,xs:9,className:n.fileItem,children:[(0,N.jsx)(m.ZP,{item:!0,xs:6,children:(0,N.jsx)(h.Z,{onChange:function(n,t){return oe("minio",e.id,"cert",t,n)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,N.jsx)(m.ZP,{item:!0,xs:6,className:n.spacerLeft,children:(0,N.jsx)(h.Z,{onChange:function(n,t){return oe("minio",e.id,"key",t,n)},accept:".key,.pem",id:"tlsKey",name:"tlsKey",label:"Key",value:e.key})})]}),(0,N.jsx)(m.ZP,{item:!0,md:2,xs:1,children:(0,N.jsx)(p.Z,{variant:"outlined",color:"secondary",onClick:function(){return ce("minio",e.id)},children:"Remove"})})]},e.id)}))}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:(0,N.jsx)(p.Z,{variant:"outlined",color:"primary",endIcon:(0,N.jsx)(b.dt,{}),onClick:function(){return se("minio")},children:"Add Certificate"})}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:(0,N.jsx)("h4",{children:"MinIO CA Certificates"})}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:te.map((function(e){return(0,N.jsx)(k.Z,{certificateInfo:e,onDelete:function(){return re(e)}})}))}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:V.map((function(e){return(0,N.jsxs)(m.ZP,{item:!0,xs:12,className:n.caCertsRow,children:[(0,N.jsx)(m.ZP,{item:!0,xs:9,className:n.fileItem,children:(0,N.jsx)(h.Z,{onChange:function(n,t){return oe("minioCAs",e.id,"cert",t,n)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,N.jsx)(m.ZP,{item:!0,xs:1,children:(0,N.jsx)(p.Z,{variant:"outlined",color:"secondary",onClick:function(){return ce("minioCAs",e.id)},children:"Remove"})})]},e.id)}))}),(0,N.jsx)(m.ZP,{container:!0,item:!0,xs:12,children:(0,N.jsx)(p.Z,{variant:"outlined",color:"primary",endIcon:(0,N.jsx)(b.dt,{}),onClick:function(){return se("minioCAs")},children:"Add CA Certificate"})})]}),(0,N.jsx)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,N.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:P||v,onClick:function(){return S(!0)},children:"Save"})})]})]})]})})))},22512:function(e,n,t){var i=t(72791),a=t(20890),r=t(11135),o=t(25787),c=t(80184);n.Z=(0,o.Z)((function(e){var n;return(0,r.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,r=e.withBreak,o=void 0===r||r;return(0,c.jsxs)(i.Fragment,{children:[o&&(0,c.jsx)("br",{}),(0,c.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))}}]); -//# sourceMappingURL=2684.3e7eb9b1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js.map b/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js.map deleted file mode 100644 index 9ebfce1fb..000000000 --- a/portal-ui/build/static/js/2684.3e7eb9b1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2684.3e7eb9b1.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/ConfirmDialog.tsx","icons/CertificateIcon.tsx","screens/Console/Common/TLSCertificate/TLSCertificate.tsx","screens/Console/Tenants/TenantDetails/TenantSecurity.tsx","screens/shared/ErrorBlock.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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 { ICertificateInfo, ITenantSecurityResponse } from \"../types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n spacingUtils,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { Button, DialogContentText } from \"@mui/material\";\nimport { KeyPair } from \"../ListTenants/utils\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { AddIcon, ConfirmModalIcon } from \"../../../../icons\";\nimport Loader from \"../../Common/Loader/Loader\";\nimport TLSCertificate from \"../../Common/TLSCertificate/TLSCertificate\";\n\ninterface ITenantSecurity {\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 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 });\n\nconst TenantSecurity = ({\n classes,\n tenant,\n loadingTenant,\n setErrorSnackMessage,\n setTenantDetailsLoad,\n}: ITenantSecurity) => {\n const [isSending, setIsSending] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [enableAutoCert, setEnableAutoCert] = useState(false);\n const [enableCustomCerts, setEnableCustomCerts] = useState(false);\n const [certificatesToBeRemoved, setCertificatesToBeRemoved] = useState<\n string[]\n >([]);\n // MinIO certificates\n const [minioCertificates, setMinioCertificates] = useState([]);\n const [minioCaCertificates, setMinioCaCertificates] = useState([]);\n const [minioTLSCertificateSecrets, setMinioTLSCertificateSecrets] = useState<\n ICertificateInfo[]\n >([]);\n const [minioTLSCaCertificateSecrets, setMinioTLSCaCertificateSecrets] =\n useState([]);\n\n const getTenantSecurityInfo = useCallback(() => {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/security`\n )\n .then((res: ITenantSecurityResponse) => {\n setEnableAutoCert(res.autoCert);\n if (res.customCertificates.minio || res.customCertificates.minioCAs) {\n setEnableCustomCerts(true);\n }\n setMinioTLSCertificateSecrets(res.customCertificates.minio || []);\n setMinioTLSCaCertificateSecrets(res.customCertificates.minioCAs || []);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n });\n }, [tenant, setErrorSnackMessage]);\n\n useEffect(() => {\n if (tenant) {\n getTenantSecurityInfo();\n }\n }, [tenant, getTenantSecurityInfo]);\n\n const updateTenantSecurity = () => {\n setIsSending(true);\n let payload = {\n autoCert: enableAutoCert,\n customCertificates: {},\n };\n if (enableCustomCerts) {\n payload[\"customCertificates\"] = {\n secretsToBeDeleted: certificatesToBeRemoved,\n minio: minioCertificates\n .map((keyPair: KeyPair) => ({\n crt: keyPair.encoded_cert,\n key: keyPair.encoded_key,\n }))\n .filter((cert: any) => cert.crt && cert.key),\n minioCAs: minioCaCertificates\n .map((keyPair: KeyPair) => keyPair.encoded_cert)\n .filter((cert: any) => cert),\n };\n } else {\n payload[\"customCertificates\"] = {\n secretsToBeDeleted: [\n ...minioTLSCertificateSecrets.map((cert) => cert.name),\n ...minioTLSCaCertificateSecrets.map((cert) => cert.name),\n ],\n minio: [],\n minioCAs: [],\n };\n }\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/security`,\n payload\n )\n .then(() => {\n setIsSending(false);\n // Close confirmation modal\n setDialogOpen(false);\n // Refresh Information and reset forms\n setMinioCertificates([\n {\n cert: \"\",\n encoded_cert: \"\",\n encoded_key: \"\",\n id: Date.now().toString(),\n key: \"\",\n },\n ]);\n setMinioCaCertificates([\n {\n cert: \"\",\n encoded_cert: \"\",\n encoded_key: \"\",\n id: Date.now().toString(),\n key: \"\",\n },\n ]);\n getTenantSecurityInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsSending(false);\n });\n };\n\n const removeCertificate = (certificateInfo: ICertificateInfo) => {\n // TLS certificate secrets can be referenced MinIO, Console or KES, we need to remove the secret from all list and update\n // the arrays\n // Add certificate to the global list of secrets to be removed\n setCertificatesToBeRemoved([\n ...certificatesToBeRemoved,\n certificateInfo.name,\n ]);\n\n // Update MinIO TLS certificate secrets\n const updatedMinIOTLSCertificateSecrets = minioTLSCertificateSecrets.filter(\n (certificateSecret) => certificateSecret.name !== certificateInfo.name\n );\n const updatedMinIOTLSCaCertificateSecrets =\n minioTLSCaCertificateSecrets.filter(\n (certificateSecret) => certificateSecret.name !== certificateInfo.name\n );\n setMinioTLSCertificateSecrets(updatedMinIOTLSCertificateSecrets);\n setMinioTLSCaCertificateSecrets(updatedMinIOTLSCaCertificateSecrets);\n };\n\n const addFileToKeyPair = (\n type: string,\n id: string,\n key: string,\n fileName: string,\n value: string\n ) => {\n let certificates = minioCertificates;\n let updateCertificates: any = () => {};\n\n switch (type) {\n case \"minio\": {\n certificates = minioCertificates;\n updateCertificates = setMinioCertificates;\n break;\n }\n case \"minioCAs\": {\n certificates = minioCaCertificates;\n updateCertificates = setMinioCaCertificates;\n break;\n }\n default:\n }\n\n const NCertList = certificates.map((item: KeyPair) => {\n if (item.id === id) {\n return {\n ...item,\n [key]: fileName,\n [`encoded_${key}`]: value,\n };\n }\n return item;\n });\n updateCertificates(NCertList);\n };\n\n const deleteKeyPair = (type: string, id: string) => {\n let certificates = minioCertificates;\n let updateCertificates: any = () => {};\n\n switch (type) {\n case \"minio\": {\n certificates = minioCertificates;\n updateCertificates = setMinioCertificates;\n break;\n }\n case \"minioCAs\": {\n certificates = minioCaCertificates;\n updateCertificates = setMinioCaCertificates;\n break;\n }\n default:\n }\n\n if (certificates.length > 1) {\n const cleanCertsList = certificates.filter(\n (item: KeyPair) => item.id !== id\n );\n updateCertificates(cleanCertsList);\n }\n };\n\n const addKeyPair = (type: string) => {\n let certificates = minioCertificates;\n let updateCertificates: any = () => {};\n\n switch (type) {\n case \"minio\": {\n certificates = minioCertificates;\n updateCertificates = setMinioCertificates;\n break;\n }\n case \"minioCAs\": {\n certificates = minioCaCertificates;\n updateCertificates = setMinioCaCertificates;\n break;\n }\n default:\n }\n const updatedCertificates = [\n ...certificates,\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ];\n updateCertificates(updatedCertificates);\n };\n return (\n \n }\n isLoading={isSending}\n onClose={() => setDialogOpen(false)}\n isOpen={dialogOpen}\n onConfirm={updateTenantSecurity}\n confirmationContent={\n \n Are you sure you want to save the changes and restart the service?\n \n }\n />\n {loadingTenant ? (\n \n
    \n \n
    \n
    \n ) : (\n \n

    Security

    \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setEnableAutoCert(checked);\n }}\n label={\"TLS\"}\n description={\n \"The internode certificates will be generated and managed by MinIO Operator\"\n }\n />\n {\n const targetD = e.target;\n const checked = targetD.checked;\n setEnableCustomCerts(checked);\n }}\n label={\"Custom Certificates\"}\n />\n \n\n {enableCustomCerts && (\n \n \n

    MinIO Certificates

    \n
    \n \n {minioTLSCertificateSecrets.map(\n (certificateInfo: ICertificateInfo) => (\n removeCertificate(certificateInfo)}\n />\n )\n )}\n \n\n \n {minioCertificates.map((keyPair) => (\n \n \n \n \n addFileToKeyPair(\n \"minio\",\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 addFileToKeyPair(\n \"minio\",\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 deleteKeyPair(\"minio\", keyPair.id)}\n >\n Remove\n \n \n \n ))}\n
    \n \n }\n onClick={() => addKeyPair(\"minio\")}\n >\n Add Certificate\n \n \n\n \n

    MinIO CA Certificates

    \n
    \n \n {minioTLSCaCertificateSecrets.map(\n (certificateInfo: ICertificateInfo) => (\n removeCertificate(certificateInfo)}\n />\n )\n )}\n \n\n \n {minioCaCertificates.map((keyPair: KeyPair) => (\n \n \n \n addFileToKeyPair(\n \"minioCAs\",\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 deleteKeyPair(\"minioCAs\", keyPair.id)}\n >\n Remove\n \n \n \n ))}\n \n \n }\n onClick={() => addKeyPair(\"minioCAs\")}\n >\n Add CA Certificate\n \n \n \n )}\n\n \n setDialogOpen(true)}\n >\n Save\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 mapDispatchToProps = {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantSecurity));\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","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","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","root","sx","padding","titleText","closeContainer","closeButton","content","actions","cancelButton","variant","confirmButton","loading","loadingPosition","startIcon","autoFocus","props","xmlns","fill","viewBox","d","transform","clipPath","backgroundColor","textDecoration","cursor","fontSize","palette","info","main","fontFamily","certificateIcon","float","paddingTop","paddingRight","certificateInfo","certificateWrapper","height","userSelect","borderRadius","certificateExpiry","display","alignItems","flexWrap","marginBottom","certificateDomains","certificatesList","textTransform","overflowY","maxHeight","certificatesListItem","borderBottom","minWidth","marginRight","opacity","onDelete","certificates","domains","Chip","Container","Typography","gutterBottom","Box","EventBusy","format","expiry","Divider","List","map","dom","ListItem","ListItemAvatar","Language","ListItemText","primary","mapDispatchToProps","setErrorSnackMessage","setTenantDetailsLoad","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","bold","italic","fontStyle","paperContainer","fileItem","certInputRow","caCertsRow","containerForHeader","spacing","isSending","setIsSending","dialogOpen","setDialogOpen","enableAutoCert","setEnableAutoCert","enableCustomCerts","setEnableCustomCerts","certificatesToBeRemoved","setCertificatesToBeRemoved","minioCertificates","setMinioCertificates","minioCaCertificates","setMinioCaCertificates","minioTLSCertificateSecrets","setMinioTLSCertificateSecrets","minioTLSCaCertificateSecrets","setMinioTLSCaCertificateSecrets","getTenantSecurityInfo","useCallback","api","namespace","then","res","autoCert","customCertificates","minio","minioCAs","catch","err","useEffect","removeCertificate","updatedMinIOTLSCertificateSecrets","filter","certificateSecret","updatedMinIOTLSCaCertificateSecrets","addFileToKeyPair","key","updateCertificates","deleteKeyPair","addKeyPair","Date","now","cert","encoded_key","encoded_cert","payload","secretsToBeDeleted","keyPair","crt","Fragment","sectionTitle","checked","description","container","encodedValue","spacerLeft","md","endIcon","buttonContainer","errorBlock","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2723.c7e2034f.chunk.js b/portal-ui/build/static/js/2723.c7e2034f.chunk.js deleted file mode 100644 index a44ded82d..000000000 --- a/portal-ui/build/static/js/2723.c7e2034f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2723],{29823:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.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");e.Z=o},22885:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.default)((0,i.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess");e.Z=o},81131:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.default)((0,i.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");e.Z=o},32686:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.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");e.Z=o},64119:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.default)((0,i.jsx)("path",{d:"m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z"}),"ZoomOutMap");e.Z=o},57621:function(t,e,r){"use strict";r.d(e,{Z:function(){return y}});var n=r(87462),a=r(63366),i=r(72791),o=r(28182),s=r(90767),l=r(47630),c=r(93736),u=r(10703),d=r(95159);function p(t){return(0,d.Z)("MuiCard",t)}(0,r(30208).Z)("MuiCard",["root"]);var f=r(80184),v=["className","raised"],h=(0,l.ZP)(u.Z,{name:"MuiCard",slot:"Root",overridesResolver:function(t,e){return e.root}})((function(){return{overflow:"hidden"}})),y=i.forwardRef((function(t,e){var r=(0,c.Z)({props:t,name:"MuiCard"}),i=r.className,l=r.raised,u=void 0!==l&&l,d=(0,a.Z)(r,v),y=(0,n.Z)({},r,{raised:u}),m=function(t){var e=t.classes;return(0,s.Z)({root:["root"]},p,e)}(y);return(0,f.jsx)(h,(0,n.Z)({className:(0,o.Z)(m.root,i),elevation:u?8:void 0,ref:e,ownerState:y},d))}))},9585:function(t,e,r){"use strict";r.d(e,{Z:function(){return Z}});var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(20890),u=r(93736),d=r(47630),p=r(95159);function f(t){return(0,p.Z)("MuiCardHeader",t)}var v=(0,r(30208).Z)("MuiCardHeader",["root","avatar","action","content","title","subheader"]),h=r(80184),y=["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"],m=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:function(t,e){var r;return(0,i.Z)((r={},(0,n.Z)(r,"& .".concat(v.title),e.title),(0,n.Z)(r,"& .".concat(v.subheader),e.subheader),r),e.root)}})({display:"flex",alignItems:"center",padding:16}),b=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:function(t,e){return e.avatar}})({display:"flex",flex:"0 0 auto",marginRight:16}),g=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:function(t,e){return e.action}})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),x=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:function(t,e){return e.content}})({flex:"1 1 auto"}),Z=o.forwardRef((function(t,e){var r=(0,u.Z)({props:t,name:"MuiCardHeader"}),n=r.action,o=r.avatar,d=r.className,p=r.component,v=void 0===p?"div":p,Z=r.disableTypography,S=void 0!==Z&&Z,w=r.subheader,A=r.subheaderTypographyProps,k=r.title,O=r.titleTypographyProps,P=(0,a.Z)(r,y),j=(0,i.Z)({},r,{component:v,disableTypography:S}),E=function(t){var e=t.classes;return(0,l.Z)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},f,e)}(j),M=k;null==M||M.type===c.Z||S||(M=(0,h.jsx)(c.Z,(0,i.Z)({variant:o?"body2":"h5",className:E.title,component:"span",display:"block"},O,{children:M})));var R=w;return null==R||R.type===c.Z||S||(R=(0,h.jsx)(c.Z,(0,i.Z)({variant:o?"body2":"body1",className:E.subheader,color:"text.secondary",component:"span",display:"block"},A,{children:R}))),(0,h.jsxs)(m,(0,i.Z)({className:(0,s.Z)(E.root,d),as:v,ref:e,ownerState:j},P,{children:[o&&(0,h.jsx)(b,{className:E.avatar,ownerState:j,children:o}),(0,h.jsxs)(x,{className:E.content,ownerState:j,children:[M,R]}),n&&(0,h.jsx)(g,{className:E.action,ownerState:j,children:n})]}))}))},97123:function(t,e,r){"use strict";r.d(e,{Z:function(){return h}});var n=r(63366),a=r(87462),i=r(72791),o=r(28182),s=r(90767),l=r(47630),c=r(93736),u=r(95159);function d(t){return(0,u.Z)("MuiDialogActions",t)}(0,r(30208).Z)("MuiDialogActions",["root","spacing"]);var p=r(80184),f=["className","disableSpacing"],v=(0,l.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,!r.disableSpacing&&e.spacing]}})((function(t){var e=t.ownerState;return(0,a.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!e.disableSpacing&&{"& > :not(:first-of-type)":{marginLeft:8}})})),h=i.forwardRef((function(t,e){var r=(0,c.Z)({props:t,name:"MuiDialogActions"}),i=r.className,l=r.disableSpacing,u=void 0!==l&&l,h=(0,n.Z)(r,f),y=(0,a.Z)({},r,{disableSpacing:u}),m=function(t){var e=t.classes,r={root:["root",!t.disableSpacing&&"spacing"]};return(0,s.Z)(r,d,e)}(y);return(0,p.jsx)(v,(0,a.Z)({className:(0,o.Z)(m.root,i),ownerState:y,ref:e},h))}))},63466:function(t,e,r){"use strict";r.d(e,{Z:function(){return S}});var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(14036),u=r(20890),d=r(93840),p=r(52930),f=r(47630),v=r(95159);function h(t){return(0,v.Z)("MuiInputAdornment",t)}var y,m=(0,r(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=r(93736),g=r(80184),x=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,e["position".concat((0,c.Z)(r.position))],!0===r.disablePointerEvents&&e.disablePointerEvents,e[r.variant]]}})((function(t){var e=t.theme,r=t.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:e.palette.action.active},"filled"===r.variant&&(0,n.Z)({},"&.".concat(m.positionStart,"&:not(.").concat(m.hiddenLabel,")"),{marginTop:16}),"start"===r.position&&{marginRight:8},"end"===r.position&&{marginLeft:8},!0===r.disablePointerEvents&&{pointerEvents:"none"})})),S=o.forwardRef((function(t,e){var r=(0,b.Z)({props:t,name:"MuiInputAdornment"}),n=r.children,f=r.className,v=r.component,m=void 0===v?"div":v,S=r.disablePointerEvents,w=void 0!==S&&S,A=r.disableTypography,k=void 0!==A&&A,O=r.position,P=r.variant,j=(0,a.Z)(r,x),E=(0,p.Z)()||{},M=P;P&&E.variant,E&&!M&&(M=E.variant);var R=(0,i.Z)({},r,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:w,position:O,variant:M}),C=function(t){var e=t.classes,r=t.disablePointerEvents,n=t.hiddenLabel,a=t.position,i=t.size,o=t.variant,s={root:["root",r&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),o,n&&"hiddenLabel",i&&"size".concat((0,c.Z)(i))]};return(0,l.Z)(s,h,e)}(R);return(0,g.jsx)(d.Z.Provider,{value:null,children:(0,g.jsx)(Z,(0,i.Z)({as:m,ownerState:R,className:(0,s.Z)(C.root,f),ref:e},j,{children:"string"!==typeof n||k?(0,g.jsxs)(o.Fragment,{children:["start"===O?y||(y=(0,g.jsx)("span",{className:"notranslate",children:"\u200b"})):null,n]}):(0,g.jsx)(u.Z,{color:"text.secondary",children:n})}))})}))},76278:function(t,e,r){"use strict";var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(12065),u=r(47630),d=r(93736),p=r(95080),f=r(40162),v=r(42071),h=r(66199),y=r(34065),m=r(80184),b=["alignItems","autoFocus","component","children","dense","disableGutters","divider","focusVisibleClassName","selected"],g=(0,u.ZP)(p.Z,{shouldForwardProp:function(t){return(0,u.FO)(t)||"classes"===t},name:"MuiListItemButton",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters]}})((function(t){var e,r=t.theme,a=t.ownerState;return(0,i.Z)((e={display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:r.transitions.create("background-color",{duration:r.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:r.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},(0,n.Z)(e,"&.".concat(y.Z.selected),(0,n.Z)({backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity)},"&.".concat(y.Z.focusVisible),{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.focusOpacity)})),(0,n.Z)(e,"&.".concat(y.Z.selected,":hover"),{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity)}}),(0,n.Z)(e,"&.".concat(y.Z.focusVisible),{backgroundColor:r.palette.action.focus}),(0,n.Z)(e,"&.".concat(y.Z.disabled),{opacity:r.palette.action.disabledOpacity}),e),a.divider&&{borderBottom:"1px solid ".concat(r.palette.divider),backgroundClip:"padding-box"},"flex-start"===a.alignItems&&{alignItems:"flex-start"},!a.disableGutters&&{paddingLeft:16,paddingRight:16},a.dense&&{paddingTop:4,paddingBottom:4})})),x=o.forwardRef((function(t,e){var r=(0,d.Z)({props:t,name:"MuiListItemButton"}),n=r.alignItems,c=void 0===n?"center":n,u=r.autoFocus,p=void 0!==u&&u,x=r.component,Z=void 0===x?"div":x,S=r.children,w=r.dense,A=void 0!==w&&w,k=r.disableGutters,O=void 0!==k&&k,P=r.divider,j=void 0!==P&&P,E=r.focusVisibleClassName,M=r.selected,R=void 0!==M&&M,C=(0,a.Z)(r,b),N=o.useContext(h.Z),I={dense:A||N.dense||!1,alignItems:c,disableGutters:O},z=o.useRef(null);(0,f.Z)((function(){p&&z.current&&z.current.focus()}),[p]);var L=(0,i.Z)({},r,{alignItems:c,dense:I.dense,disableGutters:O,divider:j,selected:R}),F=function(t){var e=t.alignItems,r=t.classes,n=t.dense,a=t.disabled,o={root:["root",n&&"dense",!t.disableGutters&&"gutters",t.divider&&"divider",a&&"disabled","flex-start"===e&&"alignItemsFlexStart",t.selected&&"selected"]},s=(0,l.Z)(o,y.t,r);return(0,i.Z)({},r,s)}(L),T=(0,v.Z)(z,e);return(0,m.jsx)(h.Z.Provider,{value:I,children:(0,m.jsx)(g,(0,i.Z)({ref:T,component:Z,focusVisibleClassName:(0,s.Z)(F.focusVisible,E),ownerState:L},C,{classes:F,children:S}))})}));e.Z=x},79834:function(t,e,r){"use strict";r.d(e,{Z:function(){return y}});var n=r(63366),a=r(87462),i=r(72791),o=r(28182),s=r(90767),l=r(47630),c=r(93736),u=r(14036),d=r(95159);function p(t){return(0,d.Z)("MuiListSubheader",t)}(0,r(30208).Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var f=r(80184),v=["className","color","component","disableGutters","disableSticky","inset"],h=(0,l.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,"default"!==r.color&&e["color".concat((0,u.Z)(r.color))],!r.disableGutters&&e.gutters,r.inset&&e.inset,!r.disableSticky&&e.sticky]}})((function(t){var e=t.theme,r=t.ownerState;return(0,a.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:e.palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===r.color&&{color:e.palette.primary.main},"inherit"===r.color&&{color:"inherit"},!r.disableGutters&&{paddingLeft:16,paddingRight:16},r.inset&&{paddingLeft:72},!r.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:e.palette.background.paper})})),y=i.forwardRef((function(t,e){var r=(0,c.Z)({props:t,name:"MuiListSubheader"}),i=r.className,l=r.color,d=void 0===l?"default":l,y=r.component,m=void 0===y?"li":y,b=r.disableGutters,g=void 0!==b&&b,x=r.disableSticky,Z=void 0!==x&&x,S=r.inset,w=void 0!==S&&S,A=(0,n.Z)(r,v),k=(0,a.Z)({},r,{color:d,component:m,disableGutters:g,disableSticky:Z,inset:w}),O=function(t){var e=t.classes,r=t.color,n=t.disableGutters,a=t.inset,i=t.disableSticky,o={root:["root","default"!==r&&"color".concat((0,u.Z)(r)),!n&&"gutters",a&&"inset",!i&&"sticky"]};return(0,s.Z)(o,p,e)}(k);return(0,f.jsx)(h,(0,a.Z)({as:m,className:(0,o.Z)(O.root,i),ref:e,ownerState:k},A))}))},31211:function(t){t.exports=function(t,e,r,n){for(var a=-1,i=null==t?0:t.length;++at.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function S(t){var e=t.offset,r=t.layout,n=t.width,a=t.dataKey,i=t.data,o=t.dataPointFormatter,s=t.xAxis,l=t.yAxis,c=Z(t,["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"]),u=(0,m.L6)(c),p=i.map((function(t,i){var c=o(t,a),p=c.x,f=c.y,v=c.value,h=c.errorVal;if(!h)return null;var m,x,Z=[];if(Array.isArray(h)){var S=g(h,2);m=S[0],x=S[1]}else m=x=h;if("vertical"===r){var w=s.scale,A=f+e,k=A+n,O=A-n,P=w(v-m),j=w(v+x);Z.push({x1:j,y1:k,x2:j,y2:O}),Z.push({x1:P,y1:A,x2:j,y2:A}),Z.push({x1:P,y1:k,x2:P,y2:O})}else if("horizontal"===r){var E=l.scale,M=p+e,R=M-n,C=M+n,N=E(v-m),I=E(v+x);Z.push({x1:R,y1:I,x2:C,y2:I}),Z.push({x1:M,y1:N,x2:M,y2:I}),Z.push({x1:R,y1:N,x2:C,y2:N})}return d.createElement(y.m,b({className:"recharts-errorBar",key:"bar-".concat(i)},u),Z.map((function(t,e){return d.createElement("line",b({},t,{key:"line-".concat(e)}))})))}));return d.createElement(y.m,{className:"recharts-errorBars"},p)}S.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"},S.displayName="ErrorBar";var w=r(41048),A=r(87970),k=r(70587),O=r(77612),P=r(36768),j=r(56926);function E(t){return E="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function M(t,e){if(null==t)return{};var r,n,a=function(t,e){if(null==t)return{};var r,n,a={},i=Object.keys(t);for(n=0;n=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function R(){return R=Object.assign||function(t){for(var e=1;e0&&Math.abs(b)0&&Math.abs(y) {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\n\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n raised\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.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 card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n\n return null;\n }),\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 Card;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"avatar\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from './cardHeaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\n\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader\n }, styles.root)\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto'\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n disableTypography\n });\n\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n display: \"block\"\n }, titleTypographyProps, {\n children: title\n }));\n }\n\n let subheader = subheaderProp;\n\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"text.secondary\",\n component: \"span\",\n display: \"block\"\n }, subheaderTypographyProps, {\n children: subheader\n }));\n }\n\n return /*#__PURE__*/_jsxs(CardHeaderRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.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 action to display in the card header.\n */\n action: PropTypes.node,\n\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\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 content of the component.\n */\n title: PropTypes.node,\n\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","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;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alignItems\", \"autoFocus\", \"component\", \"children\", \"dense\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"];\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, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from './listItemButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disabled,\n disableGutters,\n divider,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst ListItemButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiListItemButton',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemButtonClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${listItemButtonClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, ownerState.alignItems === 'flex-start' && {\n alignItems: 'flex-start'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.dense && {\n paddingTop: 4,\n paddingBottom: 4\n}));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemButton'\n });\n\n const {\n alignItems = 'center',\n autoFocus = false,\n component = 'div',\n children,\n dense = false,\n disableGutters = false,\n divider = false,\n focusVisibleClassName,\n selected = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n };\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n\n const ownerState = _extends({}, props, {\n alignItems,\n dense: childContext.dense,\n disableGutters,\n divider,\n selected\n });\n\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(ListItemButtonRoot, _extends({\n ref: handleRef,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState\n }, other, {\n classes: classes,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.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 * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\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 * 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`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n * @default false\n */\n selected: 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 ListItemButton;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\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 capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\n\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: theme.palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: theme.palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.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 component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\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 List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: 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 ListSubheader;","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n var _super = _createSuper(Bar);\n\n function Bar() {\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (onAnimationStart) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\nBar.displayName = 'Bar';\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return null;\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell.displayName);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getCardUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CardRoot","styled","Paper","name","overridesResolver","props","styles","root","overflow","React","inProps","ref","useThemeProps","className","raised","other","_objectWithoutPropertiesLoose","ownerState","_extends","classes","composeClasses","useUtilityClasses","_jsx","clsx","elevation","undefined","getCardHeaderUtilityClass","CardHeaderRoot","cardHeaderClasses","title","subheader","display","alignItems","padding","CardHeaderAvatar","avatar","flex","marginRight","CardHeaderAction","action","alignSelf","marginTop","marginBottom","CardHeaderContent","content","component","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","type","Typography","variant","children","color","_jsxs","as","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","spacing","justifyContent","marginLeft","slots","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","capitalize","position","disablePointerEvents","theme","height","maxHeight","whiteSpace","palette","active","inputAdornmentClasses","pointerEvents","variantProp","muiFormControl","useFormControl","hiddenLabel","size","FormControlContext","value","ListItemButtonRoot","ButtonBase","shouldForwardProp","prop","rootShouldForwardProp","dense","alignItemsFlexStart","divider","disableGutters","gutters","flexGrow","textDecoration","boxSizing","textAlign","paddingTop","paddingBottom","transition","transitions","create","duration","shortest","backgroundColor","hover","listItemButtonClasses","alpha","primary","main","selectedOpacity","focusOpacity","hoverOpacity","focus","opacity","disabledOpacity","borderBottom","backgroundClip","paddingLeft","paddingRight","ListItemButton","autoFocus","focusVisibleClassName","selected","context","ListContext","childContext","listItemRef","useEnhancedEffect","current","disabled","composedClasses","getListItemButtonUtilityClass","handleRef","useForkRef","focusVisible","getListSubheaderUtilityClass","ListSubheaderRoot","inset","disableSticky","sticky","lineHeight","listStyle","text","secondary","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","top","zIndex","background","paper","module","array","setter","iteratee","accumulator","index","length","baseEach","collection","key","arrayAggregator","baseAggregator","baseIteratee","isArray","initializer","func","baseAssignValue","createAggregator","hasOwnProperty","Object","prototype","groupBy","result","call","push","assign","target","i","arguments","source","apply","this","_slicedToArray","arr","Array","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ErrorBar","offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis","others","svgProps","filterProps","errorBars","map","entry","_dataPointFormatter","x","y","errorVal","lowBound","highBound","lineCoordinates","_errorVal","scale","yMid","yMin","yMax","xMin","xMax","x1","y1","x2","y2","_scale","xMid","_xMin","_xMax","_yMin","_yMax","Layer","concat","coordinates","defaultProps","stroke","strokeWidth","displayName","_typeof","obj","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_setPrototypeOf","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","Bar","_PureComponent","subClass","superClass","_inherits","protoProps","staticProps","_super","_this","_len","args","_key","state","isAnimationFinished","id","uniqueId","handleAnimationEnd","onAnimationEnd","setState","handleAnimationStart","onAnimationStart","nextProps","prevState","animationId","prevAnimationId","curData","prevData","option","_isFunction","Rectangle","_this2","shape","baseProps","adaptEventsOfChild","renderRectangle","_this3","_this$props","isAnimationActive","animationBegin","animationDuration","animationEasing","Animate","begin","isActive","easing","t","to","_ref","stepData","prev","interpolatorX","interpolateNumber","interpolatorY","interpolatorWidth","interpolatorHeight","h","_interpolatorHeight","w","interpolator","renderRectanglesStatically","_this$props2","_isEqual","renderRectanglesWithAnimation","_this4","backgroundProps","rest","fill","_this$props3","errorBarItems","findAllByType","dataPoint","getValueByDataKey","item","_this$props4","hide","left","layerClass","classNames","needClip","allowDataOverflow","clipPathId","_isNil","clipPath","renderBackground","renderRectangles","renderErrorBar","LabelList","PureComponent","xAxisId","yAxisId","legendType","minPointSize","Global","getComposedData","_ref2","barPosition","bandSize","xAxisTicks","yAxisTicks","stackedData","dataStartIndex","displayedData","pos","findPositionOfBar","_item$props","numericAxis","stackedDomain","domain","baseValue","getBaseValueOfBar","cells","Cell","rects","truncateByDomain","_isArray","getCateCoordinateOfBar","axis","ticks","Math","abs","delta","mathSign","payload","tooltipPayload","getTooltipItem","tooltipPosition","BarChart","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","XAxis","YAxis","formatAxisMap"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2763.02f8a4d8.chunk.js b/portal-ui/build/static/js/2763.02f8a4d8.chunk.js deleted file mode 100644 index 9736f86c2..000000000 --- a/portal-ui/build/static/js/2763.02f8a4d8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2763],{22763:function(e,n,t){t.r(n);var o=t(29439),s=t(1413),i=(t(72791),t(26181)),r=t.n(i),a=t(60364),c=t(51691),l=t(11135),u=t(25787),d=t(23814),m=t(42649),f=t(9505),Z=t(23508),p=t(93656),x=t(80184),v={setErrorSnackMessage:m.Ih},C=(0,a.$j)((function(e){var n=e.system;return{distributedSetup:r()(n,"distributedSetup",!1)}}),v);n.default=(0,u.Z)((function(e){return(0,l.Z)((0,s.Z)({},d.oO))}))(C((function(e){var n=e.deleteOpen,t=e.currentTags,i=e.selectedTag,r=e.onCloseAndUpdate,a=e.bucketName,l=e.setErrorSnackMessage,u=e.classes,d=(0,o.Z)(i,2),m=d[0],v=d[1],C=(0,f.Z)((function(){return r(!0)}),(function(e){return l(e)})),h=(0,o.Z)(C,2),j=h[0],b=h[1];if(!i)return null;return(0,x.jsx)(Z.Z,{title:"Delete Tag",confirmText:"Delete",isOpen:n,titleIcon:(0,x.jsx)(p.Nv,{}),isLoading:j,onConfirm:function(){var e=(0,s.Z)({},t);delete e[m],b("PUT","/api/v1/buckets/".concat(a,"/tags"),{tags:e})},onClose:function(){return r(!1)},confirmationContent:(0,x.jsxs)(c.Z,{children:["Are you sure you want to delete the tag"," ",(0,x.jsxs)("b",{className:u.wrapText,children:[m," : ",v]})," ","?"]})})})))},23508:function(e,n,t){var o=t(1413),s=t(72791),i=t(5574),r=t(65661),a=t(39157),c=t(97123),l=t(36151),u=t(59860),d=t(13400),m=t(29823),f=t(11135),Z=t(25787),p=t(23814),x=t(80184);n.Z=(0,Z.Z)((function(e){return(0,f.Z)((0,o.Z)({},p.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,Z=e.onCancel,p=e.onConfirm,v=e.classes,C=void 0===v?{}:v,h=e.title,j=void 0===h?"":h,b=e.isLoading,g=e.confirmationContent,k=e.cancelText,N=void 0===k?"Cancel":k,T=e.confirmText,y=void 0===T?"Confirm":T,w=e.confirmButtonProps,B=void 0===w?{}:w,P=e.cancelButtonProps,I=void 0===P?{}:P,O=e.titleIcon,S=void 0===O?null:O;return(0,x.jsxs)(i.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:C.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(r.Z,{className:C.title,children:[(0,x.jsxs)("div",{className:C.titleText,children:[S," ",j]}),(0,x.jsx)("div",{className:C.closeContainer,children:(0,x.jsx)(d.Z,{"aria-label":"close",className:C.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,x.jsx)(m.Z,{})})})]}),(0,x.jsx)(a.Z,{className:C.content,children:g}),(0,x.jsxs)(c.Z,{className:C.actions,children:[(0,x.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:C.cancelButton,onClick:Z||f,disabled:b,type:"button"},I),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,x.jsx)(u.Z,(0,o.Z)((0,o.Z)({className:C.confirmButton,type:"button",onClick:p,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(s.Fragment,{}),autoFocus:!0,id:"confirm-ok"},B),{},{children:y}))]})]})}))}}]); -//# sourceMappingURL=2763.02f8a4d8.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2763.02f8a4d8.chunk.js.map b/portal-ui/build/static/js/2763.02f8a4d8.chunk.js.map deleted file mode 100644 index 4e4bac18d..000000000 --- a/portal-ui/build/static/js/2763.02f8a4d8.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2763.02f8a4d8.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/DeleteBucketTagModal.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.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 get from \"lodash/get\";\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 { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeleteBucketTagModal {\n deleteOpen: boolean;\n currentTags: any;\n bucketName: string;\n selectedTag: string[];\n onCloseAndUpdate: (refresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteBucketTagModal = ({\n deleteOpen,\n currentTags,\n selectedTag,\n onCloseAndUpdate,\n bucketName,\n setErrorSnackMessage,\n classes,\n}: IDeleteBucketTagModal) => {\n const [tagKey, tagLabel] = selectedTag;\n\n const onDelSuccess = () => onCloseAndUpdate(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => onCloseAndUpdate(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedTag) {\n return null;\n }\n\n const onConfirmDelete = () => {\n const cleanObject = { ...currentTags };\n delete cleanObject[tagKey];\n\n invokeDeleteApi(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: cleanObject,\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 tag{\" \"}\n \n {tagKey} : {tagLabel}\n {\" \"}\n ?\n \n }\n />\n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(DeleteBucketTagModal));\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"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","modalBasic","deleteOpen","currentTags","selectedTag","onCloseAndUpdate","bucketName","classes","tagKey","tagLabel","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","cleanObject","tags","onClose","confirmationContent","className","wrapText","deleteDialogStyles","onCancel","cancelText","confirmButtonProps","cancelButtonProps","open","event","reason","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2763.58b7220d.chunk.js b/portal-ui/build/static/js/2763.58b7220d.chunk.js new file mode 100644 index 000000000..801b541e4 --- /dev/null +++ b/portal-ui/build/static/js/2763.58b7220d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2763],{22763:function(e,t,n){n.r(t);var r=n(29439),s=n(1413),u=(n(72791),n(26181)),a=n.n(u),o=n(60364),i=n(51691),c=n(11135),l=n(25787),f=n(23814),d=n(42649),p=n(9505),g=n(2148),Z=n(93656),k=n(80184),b={setErrorSnackMessage:d.Ih},h=(0,o.$j)((function(e){var t=e.system;return{distributedSetup:a()(t,"distributedSetup",!1)}}),b);t.default=(0,l.Z)((function(e){return(0,c.Z)((0,s.Z)({},f.oO))}))(h((function(e){var t=e.deleteOpen,n=e.currentTags,u=e.selectedTag,a=e.onCloseAndUpdate,o=e.bucketName,c=e.setErrorSnackMessage,l=e.classes,f=(0,r.Z)(u,2),d=f[0],b=f[1],h=(0,p.Z)((function(){return a(!0)}),(function(e){return c(e)})),m=(0,r.Z)(h,2),v=m[0],x=m[1];if(!u)return null;return(0,k.jsx)(g.Z,{title:"Delete Tag",confirmText:"Delete",isOpen:t,titleIcon:(0,k.jsx)(Z.Nv,{}),isLoading:v,onConfirm:function(){var e=(0,s.Z)({},n);delete e[d],x("PUT","/api/v1/buckets/".concat(o,"/tags"),{tags:e})},onClose:function(){return a(!1)},confirmationContent:(0,k.jsxs)(i.Z,{children:["Are you sure you want to delete the tag"," ",(0,k.jsxs)("b",{className:l.wrapText,children:[d," : ",b]})," ","?"]})})})))}}]); +//# sourceMappingURL=2763.58b7220d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2763.58b7220d.chunk.js.map b/portal-ui/build/static/js/2763.58b7220d.chunk.js.map new file mode 100644 index 000000000..4e4f94216 --- /dev/null +++ b/portal-ui/build/static/js/2763.58b7220d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2763.58b7220d.chunk.js","mappings":"wRAsGMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,KARM,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,MAA2B,CACjDC,iBAAkBC,GAAAA,CAAIF,EAAQ,oBAAoB,MAOTJ,GAE3C,WAAeO,EAAAA,EAAAA,IAnEA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAiEP,CAAkCR,GA9DL,SAAC,GAQA,IAP5BS,EAO2B,EAP3BA,WACAC,EAM2B,EAN3BA,YACAC,EAK2B,EAL3BA,YACAC,EAI2B,EAJ3BA,iBACAC,EAG2B,EAH3BA,WACAd,EAE2B,EAF3BA,qBACAe,EAC2B,EAD3BA,QAEA,UAA2BH,EAA3B,GAAOI,EAAP,KAAeC,EAAf,KAMA,GAAyCC,EAAAA,EAAAA,IAJpB,kBAAML,GAAiB,MACzB,SAACM,GAAD,OAA+BnB,EAAqBmB,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKT,EACH,OAAO,KAYT,OACE,SAAC,IAAD,CACEU,MAAK,aACLC,YAAa,SACbC,OAAQd,EACRe,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAhBoB,WACtB,IAAMC,GAAW,UAAQjB,UAClBiB,EAAYZ,GAEnBK,EAAgB,MAAD,0BAA2BP,EAA3B,SAA8C,CAC3De,KAAMD,KAYNE,QAzBY,kBAAMjB,GAAiB,IA0BnCkB,qBACE,UAAC,IAAD,qDAC0C,KACxC,eAAGC,UAAWjB,EAAQkB,SAAtB,UACGjB,EADH,MACcC,KACT,IAJP","sources":["screens/Console/Buckets/BucketDetails/DeleteBucketTagModal.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 get from \"lodash/get\";\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 { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeleteBucketTagModal {\n deleteOpen: boolean;\n currentTags: any;\n bucketName: string;\n selectedTag: string[];\n onCloseAndUpdate: (refresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteBucketTagModal = ({\n deleteOpen,\n currentTags,\n selectedTag,\n onCloseAndUpdate,\n bucketName,\n setErrorSnackMessage,\n classes,\n}: IDeleteBucketTagModal) => {\n const [tagKey, tagLabel] = selectedTag;\n\n const onDelSuccess = () => onCloseAndUpdate(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => onCloseAndUpdate(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedTag) {\n return null;\n }\n\n const onConfirmDelete = () => {\n const cleanObject = { ...currentTags };\n delete cleanObject[tagKey];\n\n invokeDeleteApi(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: cleanObject,\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 tag{\" \"}\n \n {tagKey} : {tagLabel}\n {\" \"}\n ?\n \n }\n />\n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(DeleteBucketTagModal));\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","modalBasic","deleteOpen","currentTags","selectedTag","onCloseAndUpdate","bucketName","classes","tagKey","tagLabel","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","cleanObject","tags","onClose","confirmationContent","className","wrapText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js b/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js new file mode 100644 index 000000000..4297679af --- /dev/null +++ b/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2794],{81806:function(e,n,t){var a=t(1413),i=t(45987),l=(t(72791),t(11135)),o=t(25787),s=t(80184),r=["classes","children"];n.Z=(0,o.Z)((function(e){return(0,l.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,l=(0,i.Z)(e,r);return(0,s.jsx)("button",(0,a.Z)((0,a.Z)({},l),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var a=t(29439),i=t(1413),l=t(72791),o=t(60364),s=t(13400),r=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),g=t(25787),v=t(23814),h=t(42649),x=t(29823),Z=t(28057),f=t(80184),p=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});n.Z=(0,g.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},v.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},v.sN))}))(p((function(e){var n=e.onClose,t=e.modalOpen,o=e.title,m=e.children,g=e.classes,v=e.wideLimit,h=void 0===v||v,p=e.modalSnackMessage,b=e.noContentPadding,j=e.setModalSnackMessage,w=e.titleIcon,S=void 0===w?null:w,k=(0,l.useState)(!1),y=(0,a.Z)(k,2),P=y[0],E=y[1];(0,l.useEffect)((function(){j("")}),[j]),(0,l.useEffect)((function(){if(p){if(""===p.message)return void E(!1);"error"!==p.type&&E(!0)}}),[p]);var R=h?{classes:{paper:g.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},C="";return p&&(C=p.detailedErrorMsg,(""===p.detailedErrorMsg||p.detailedErrorMsg.length<5)&&(C=p.message)),(0,f.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:g},R),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:g.root,children:[(0,f.jsxs)(d.Z,{className:g.title,children:[(0,f.jsxs)("div",{className:g.titleText,children:[S," ",o]}),(0,f.jsx)("div",{className:g.closeContainer,children:(0,f.jsx)(s.Z,{"aria-label":"close",id:"close",className:g.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,f.jsx)(x.Z,{})})})]}),(0,f.jsx)(Z.Z,{isModal:!0}),(0,f.jsx)(r.Z,{open:P,className:g.snackBarModal,onClose:function(){E(!1),j("")},message:C,ContentProps:{className:"".concat(g.snackBar," ").concat(p&&"error"===p.type?g.errorSnackBar:"")},autoHideDuration:p&&"error"===p.type?1e4:5e3}),(0,f.jsx)(u.Z,{className:b?"":g.content,children:m})]}))})))},45902:function(e,n,t){var a=t(1413),i=(t(72791),t(53767)),l=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,o=e.value,s=void 0===o?"-":o,r=e.orientation,c=void 0===r?"column":r,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,g=void 0===m?{}:m,v=e.valProps,h=void 0===v?{}:v;return(0,l.jsxs)(i.Z,(0,a.Z)((0,a.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,l.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:600}},g),{},{children:t})),(0,l.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:s}))]}))}},22794:function(e,n,t){t.r(n),t.d(n,{default:function(){return A}});var a=t(29439),i=t(1413),l=t(72791),o=t(60364),s=t(26181),r=t.n(s),c=t(11135),d=t(25787),u=t(23814),m=t(61889),g=t(64554),v=t(36151),h=t(42649),x=t(56028),Z=t(21435),f=t(37516),p=t(81207),b=t(80184),j=(0,o.$j)(null,{setModalErrorSnackMessage:h.zb}),w=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)({buttonContainer:{textAlign:"right"},infoText:{fontSize:14}},u.DF),u.ID))}))(j((function(e){var n=e.open,t=e.closeModalAndRefresh,o=e.namespace,s=e.idTenant,r=e.setModalErrorSnackMessage,c=e.classes,d=(0,l.useState)(!1),u=(0,a.Z)(d,2),g=u[0],h=u[1],j=(0,l.useState)(""),w=(0,a.Z)(j,2),S=w[0],k=w[1],y=(0,l.useState)(!1),P=(0,a.Z)(y,2),E=P[0],R=P[1],C=(0,l.useState)(""),I=(0,a.Z)(C,2),M=I[0],N=I[1],D=(0,l.useState)(""),T=(0,a.Z)(D,2),B=T[0],F=T[1],_=(0,l.useState)(""),L=(0,a.Z)(_,2),O=L[0],A=L[1],W=(0,l.useState)(!0),z=(0,a.Z)(W,2),$=z[0],U=z[1],V=(0,l.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)U(n.test(S))}),[S]);(0,l.useEffect)((function(){V("minioImage")}),[S,V]);return(0,b.jsx)(x.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,b.jsx)("div",{className:c.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,b.jsx)(Z.Z,{value:S,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){k(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,b.jsx)(f.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:E,onChange:function(e){R(!E)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),E&&(0,b.jsxs)(l.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,b.jsx)(Z.Z,{value:M,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){N(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,b.jsx)(Z.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){F(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,b.jsx)(Z.Z,{value:O,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){A(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,b.jsx)(v.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),R(!1),N(""),F(""),A("")},children:"Clear"}),(0,b.jsx)(v.Z,{type:"submit",variant:"contained",color:"primary",disabled:!$||E&&(""===M.trim()||""===B.trim()||""===O.trim())||g,onClick:function(){h(!0);var e={image:S,enable_prometheus:!0};if(E){var n={image_registry:{registry:M,username:B,password:O}};e=(0,i.Z)((0,i.Z)({},e),n)}p.Z.invoke("PUT","/api/v1/namespaces/".concat(o,"/tenants/").concat(s),e).then((function(){h(!1),t(!0)})).catch((function(e){r(e),h(!1)}))},children:"Save"})]})]})})}))),S=t(81806),k=t(40986),y=t(53767),P=t(22512),E=t(93656),R=t(45902),C=t(45248),I=t(72401),M=(0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(k.Z),N=(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.healthStatus,o=e.loading,s=e.error,r={value:"n/a",unit:""},c={value:"n/a",unit:""};if(t){var d=(0,C.ae)("".concat(t),!0).split(" ");r.value=d[0],r.unit=d[1]}if(a){var u=(0,C.ae)("".concat(a),!0).split(" ");c.value=u[0],c.unit=u[1]}var g=0;a&&t&&(g=100*a/t);return(0,b.jsxs)(l.Fragment,{children:[o&&(0,b.jsx)("div",{className:n.padChart,children:(0,b.jsx)(m.ZP,{item:!0,xs:12,className:n.centerItem,children:(0,b.jsx)(I.Z,{style:{width:40,height:40}})})}),o?null:""!==s?(0,b.jsx)(P.Z,{errorMessage:s,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(M,{variant:"determinate",value:g}),(0,b.jsxs)(y.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"15px 0 15px 0",children:[(0,b.jsx)(R.Z,{label:"Storage Capacity:",orientation:"row",value:"".concat(r.value," ").concat(r.unit)}),(0,b.jsx)(R.Z,{label:"Used:",orientation:"row",value:"".concat(c.value," ").concat(c.unit)}),i&&(0,b.jsx)(R.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:i,children:(0,b.jsx)(E.J$,{})})})]})]})]})})),D=t(50896),T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},B=function(e){var n,t,a,i,l,o=e.tenant,s=e.classes;return(0,b.jsx)(N,{currValue:null===o||void 0===o||null===(n=o.status)||void 0===n||null===(t=n.usage)||void 0===t?void 0:t.raw_usage,maxValue:null===o||void 0===o||null===(a=o.status)||void 0===a||null===(i=a.usage)||void 0===i?void 0:i.raw,label:"Storage",error:"",loading:!1,healthStatus:T(null===o||void 0===o||null===(l=o.status)||void 0===l?void 0:l.health_status,s)})},F=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,b.jsx)(f.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},_={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},L={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},O=(0,o.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,logEnabled:r()(e.tenants.tenantDetails.tenantInfo,"logEnabled",!1),monitoringEnabled:r()(e.tenants.tenantDetails.tenantInfo,"monitoringEnabled",!1),encryptionEnabled:r()(e.tenants.tenantDetails.tenantInfo,"encryptionEnabled",!1),minioTLS:r()(e.tenants.tenantDetails.tenantInfo,"minioTLS",!1),consoleTLS:r()(e.tenants.tenantDetails.tenantInfo,"consoleTLS",!1),consoleEnabled:r()(e.tenants.tenantDetails.tenantInfo,"consoleEnabled",!1),adEnabled:r()(e.tenants.tenantDetails.tenantInfo,"idpAdEnabled",!1),oidcEnabled:r()(e.tenants.tenantDetails.tenantInfo,"idpOidcEnabled",!1)}}),null),A=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},centerAlign:{textAlign:"center"},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main}},(0,u.Bz)(e.spacing(4))))}))(O((function(e){var n,t,o,s,r,c,d,u,v,h,x=e.classes,Z=e.match,f=e.tenant,p=e.logEnabled,j=e.monitoringEnabled,k=e.encryptionEnabled,y=e.minioTLS,P=(e.consoleTLS,e.consoleEnabled,e.adEnabled),E=e.oidcEnabled,C=(e.loadingTenant,(0,l.useState)(0)),I=(0,a.Z)(C,2),M=I[0],N=I[1],T=(0,l.useState)(0),O=(0,a.Z)(T,2),A=O[0],W=O[1],z=(0,l.useState)(0),$=(0,a.Z)(z,2),U=$[0],V=$[1],q=(0,l.useState)(!1),H=(0,a.Z)(q,2),Q=H[0],J=H[1],K=Z.params.tenantName,Y=Z.params.tenantNamespace;return(0,l.useEffect)((function(){f&&(N(f.pools.length),V(f.total_volumes||0),W(f.total_instances||0))}),[f]),(0,b.jsxs)(l.Fragment,{children:[Q&&(0,b.jsx)(w,{open:Q,closeModalAndRefresh:function(){J(!1)},idTenant:K,namespace:Y}),(0,b.jsx)(D.Z,{separator:!1,children:"Details"}),(0,b.jsx)(B,{tenant:f,classes:x}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"State:",value:null===f||void 0===f?void 0:f.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){J(!0)},children:f?f.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Endpoint:",value:(0,b.jsx)("a",{href:null===f||void 0===f||null===(n=f.endpoints)||void 0===n?void 0:n.minio,target:"_blank",rel:"noopener noreferrer",className:x.linkedSection,children:(null===f||void 0===f||null===(t=f.endpoints)||void 0===t?void 0:t.minio)||"-"})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Console:",value:(0,b.jsx)("a",{href:null===f||void 0===f||null===(o=f.endpoints)||void 0===o?void 0:o.console,target:"_blank",rel:"noopener noreferrer",className:x.linkedSection,children:(null===f||void 0===f||null===(s=f.endpoints)||void 0===s?void 0:s.console)||"-"})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Instances:",value:A})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Clusters:",value:M,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Total Drives:",value:U,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Write Quorum:",value:null!==f&&void 0!==f&&null!==(r=f.status)&&void 0!==r&&r.write_quorum?null===f||void 0===f||null===(c=f.status)||void 0===c?void 0:c.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Drives Online:",value:null!==f&&void 0!==f&&null!==(d=f.status)&&void 0!==d&&d.drives_online?null===f||void 0===f||null===(u=f.status)||void 0===u?void 0:u.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(R.Z,{label:"Drives Offline:",value:null!==f&&void 0!==f&&null!==(v=f.status)&&void 0!==v&&v.drives_offline?null===f||void 0===f||null===(h=f.status)||void 0===h?void 0:h.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(D.Z,{children:"Features"}),(0,b.jsxs)(g.Z,{sx:(0,i.Z)({},_),children:[(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"Logs:",value:F(p,"tenant-log")},L)),(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"AD/LDAP:",value:F(P,"tenant-sts")},L)),(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"Encryption:",value:F(k,"tenant-enc")},L))]}),(0,b.jsxs)(g.Z,{sx:(0,i.Z)({},_),children:[(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"MinIO TLS:",value:F(y,"tenant-tls")},L)),(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"Monitoring:",value:F(j,"tenant-monitor")},L)),(0,b.jsx)(R.Z,(0,i.Z)({orientation:"row",label:"OpenID:",value:F(E,"tenant-oidc")},L))]})]})})))},22512:function(e,n,t){var a=t(72791),i=t(20890),l=t(11135),o=t(25787),s=t(80184);n.Z=(0,o.Z)((function(e){var n;return(0,l.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,l=e.withBreak,o=void 0===l||l;return(0,s.jsxs)(a.Fragment,{children:[o&&(0,s.jsx)("br",{}),(0,s.jsx)(i.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},53767:function(e,n,t){var a=t(4942),i=t(63366),l=t(87462),o=t(72791),s=t(51184),r=t(45682),c=t(78519),d=t(82466),u=t(47630),m=t(93736),g=t(80184),v=["component","direction","spacing","divider","children"];function h(e,n){var t=o.Children.toArray(e).filter(Boolean);return t.reduce((function(e,a,i){return e.push(a),i :not(style) + :not(style)":(0,a.Z)({margin:0},"margin".concat((i=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[i])),(0,r.NA)(o,e))};var i})))}return i})),Z=o.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),a=(0,c.Z)(t),o=a.component,s=void 0===o?"div":o,r=a.direction,d=void 0===r?"column":r,u=a.spacing,Z=void 0===u?0:u,f=a.divider,p=a.children,b=(0,i.Z)(a,v),j={direction:d,spacing:Z};return(0,g.jsx)(x,(0,l.Z)({as:s,ownerState:j,ref:n},b,{children:f?h(p,f):p}))}));n.Z=Z}}]); +//# sourceMappingURL=2794.ee6b7b2c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js.map b/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js.map new file mode 100644 index 000000000..92204bf5d --- /dev/null +++ b/portal-ui/build/static/js/2794.ee6b7b2c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2794.ee6b7b2c.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/material/Stack/Stack.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { 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 from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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, useEffect, useCallback } 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, Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n setModalErrorSnackMessage,\n classes,\n}: IUpdateTenantModal) => {\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
    \n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
    \n
    \n
    \n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
    \n \n \n Clear\n \n \n Save\n \n \n
    \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UpdateTenantModal));\n","import React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport { CircleIcon } from \"../../../../icons\";\nimport LabelValuePair from \"./LabelValuePair\";\nimport { ValueUnit } from \"../../Tenants/ListTenants/types\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\n\ninterface ISummaryUsageBar {\n maxValue: number | undefined;\n currValue: number | undefined;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n 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 SummaryUsageBar = ({\n classes,\n maxValue,\n currValue,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n var capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n var used: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (maxValue) {\n const b = niceBytes(`${maxValue}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (currValue) {\n const b = niceBytes(`${currValue}`, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let percentagelValue = 0;\n if (currValue && maxValue) {\n percentagelValue = (currValue * 100) / maxValue;\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n \n \n {healthStatus && (\n \n \n
    \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
    \n \n \n \n
    \n )}\n {renderComponent()}\n
    \n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport { ITenant } from \"../ListTenants/types\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\ninterface ITenantsSummary {\n classes: any;\n match: any;\n tenant: ITenant | null;\n logEnabled: boolean;\n monitoringEnabled: boolean;\n encryptionEnabled: boolean;\n minioTLS: boolean;\n consoleTLS: boolean;\n consoleEnabled: boolean;\n adEnabled: boolean;\n oidcEnabled: boolean;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n centerAlign: {\n textAlign: \"center\",\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({ tenant, classes }: Partial) => {\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({\n classes,\n match,\n tenant,\n logEnabled,\n monitoringEnabled,\n encryptionEnabled,\n minioTLS,\n consoleTLS,\n consoleEnabled,\n adEnabled,\n oidcEnabled,\n loadingTenant,\n}: ITenantsSummary) => {\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant.pools.length);\n setVolumes(tenant.total_volumes || 0);\n setInstances(tenant.total_instances || 0);\n }\n }, [tenant]);\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n }}\n idTenant={tenantName}\n namespace={tenantNamespace}\n />\n )}\n\n Details\n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n }\n />\n \n \n \n {tenant?.endpoints?.console || \"-\"}\n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features\n \n \n\n \n \n \n \n \n\n \n \n \n \n );\n};\n\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(TenantSummary));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","classes","children","rest","className","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","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","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","setModalErrorSnackMessage","buttonContainer","textAlign","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","variant","disabled","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","catch","error","BorderLinearProgress","height","borderRadius","colorPrimary","bar","padChart","LinearProgress","allValue","marginBottom","currentUsage","marginTop","centerItem","maxValue","currValue","healthStatus","loading","capacity","unit","used","parts","niceBytes","split","percentagelValue","Loader","ErrorBlock","errorMessage","withBreak","Stack","spacing","md","alignItems","LabelValuePair","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","tenant","status","usage","raw_usage","raw","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","display","justifyContent","flexFlow","featureItemStyleProps","sx","flex","minWidth","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","consoleTLS","consoleEnabled","adEnabled","oidcEnabled","tenantDetailsStyles","warning","success","centerAlign","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","containerForHeader","match","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","tenantName","params","tenantNamespace","pools","total_volumes","total_instances","SectionTitle","separator","currentState","AButton","overflow","textOverflow","whiteSpace","wordBreak","href","endpoints","minio","rel","console","write_quorum","drives_online","drives_offline","Box","errorBlock","component","_excluded","joinChildren","childrenArray","React","filter","Boolean","reduce","output","child","index","push","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","acc","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","ref","themeProps","useThemeProps","extendSxProp","divider","other","_objectWithoutPropertiesLoose","_jsx","as"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2878.174d0b14.chunk.js b/portal-ui/build/static/js/2878.174d0b14.chunk.js deleted file mode 100644 index 406f93354..000000000 --- a/portal-ui/build/static/js/2878.174d0b14.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2878],{55521:function(e,t,n){"use strict";n.r(t);var o=n(29439),a=n(1413),i=n(72791),r=n(26181),s=n.n(r),c=n(60364),l=n(11135),d=n(25787),u=n(61889),p=n(27391),m=n(63466),v=n(23814),h=n(42649),f=n(81207),Z=n(92983),b=n(74900),x=n(75578),g=n(80184),j=(0,x.Z)(i.lazy((function(){return Promise.all([n.e(3772),n.e(2442),n.e(2112)]).then(n.bind(n,32112))}))),k={setErrorSnackMessage:h.Ih},y=(0,c.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),k);t.default=(0,d.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},v.oZ),v.VX),(0,v.Bz)(e.spacing(4))))}))(y((function(e){var t=e.classes,n=e.setErrorSnackMessage,r=e.history,c=e.match,l=e.loadingTenant,d=(0,i.useState)([]),v=(0,o.Z)(d,2),h=v[0],x=v[1],k=(0,i.useState)(""),y=(0,o.Z)(k,2),S=y[0],P=y[1],z=(0,i.useState)(!0),C=(0,o.Z)(z,2),w=C[0],E=C[1],M=(0,i.useState)(null),V=(0,o.Z)(M,2),I=V[0],L=V[1],N=(0,i.useState)(!1),H=(0,o.Z)(N,2),A=H[0],R=H[1],T=c.params.tenantName,F=c.params.tenantNamespace;(0,i.useEffect)((function(){w&&f.Z.invoke("GET","/api/v1/namespaces/".concat(F,"/tenants/").concat(T,"/pvcs")).then((function(e){var t=s()(e,"pvcs",[]);x(t||[]),E(!1)})).catch((function(e){E(!1),n(e)}))}),[w,n,T,F]);var B=h.filter((function(e){return e.name.toLowerCase().includes(S.toLowerCase())}));return(0,i.useEffect)((function(){l&&E(!0)}),[l]),(0,g.jsxs)(i.Fragment,{children:[A&&(0,g.jsx)(j,{deleteOpen:A,selectedPVC:I,closeDeleteModalAndRefresh:function(e){R(!1),E(!0)}}),(0,g.jsx)("h1",{className:t.sectionTitle,children:"Volumes"}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:t.actionsTray,children:(0,g.jsx)(p.Z,{placeholder:"Search Volumes (PVCs)",className:t.searchField,id:"search-resource",label:"",InputProps:{disableUnderline:!0,startAdornment:(0,g.jsx)(m.Z,{position:"start",children:(0,g.jsx)(b.Z,{})})},onChange:function(e){P(e.target.value)},variant:"standard"})}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,g.jsx)(Z.Z,{itemActions:[{type:"view",onClick:function(e){r.push("/namespaces/".concat(F,"/tenants/").concat(T,"/pvcs/").concat(e.name))}},{type:"delete",onClick:function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{tenant:T,namespace:F});L(t),R(!0)}}],columns:[{label:"Name",elementKey:"name"},{label:"Status",elementKey:"status",width:120},{label:"Capacity",elementKey:"capacity",width:120},{label:"Storage Class",elementKey:"storageClass"}],isLoading:w,records:B,entityName:"PVCs",idField:"name",customPaperHeight:t.tableWrapper})})]})})))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=r},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.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 o=n(4942),a=n(63366),i=n(87462),r=n(72791),s=n(90767),c=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"),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=n(14036),f=n(93736),Z=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"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],k=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.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,h.Z)(n.color))]]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!a.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===a.color?n.palette.action.active:n.palette[a.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==a.color&&(t={},(0,o.Z)(t,"&.".concat(g.checked,", &.").concat(g.indeterminate),{color:n.palette[a.color].main}),(0,o.Z)(t,"&.".concat(g.disabled),{color:n.palette.action.disabled}),t))})),y=(0,u.jsx)(m,{}),S=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),z=r.forwardRef((function(e,t){var n,o,c=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?y:l,p=c.color,m=void 0===p?"primary":p,v=c.icon,Z=void 0===v?S:v,b=c.indeterminate,g=void 0!==b&&b,z=c.indeterminateIcon,C=void 0===z?P:z,w=c.inputProps,E=c.size,M=void 0===E?"medium":E,V=(0,a.Z)(c,j),I=g?C:Z,L=g?C:d,N=(0,i.Z)({},c,{color:m,indeterminate:g,size:M}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,a={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},r=(0,s.Z)(a,x,t);return(0,i.Z)({},t,r)}(N);return(0,u.jsx)(k,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":g},w),icon:r.cloneElement(I,{fontSize:null!=(n=I.props.fontSize)?n:M}),checkedIcon:r.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:M}),ownerState:N,ref:t},V,{classes:H}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var o=n(4942),a=n(63366),i=n(87462),r=n(72791),s=n(28182),c=n(90767),l=n(14036),d=n(20890),u=n(93840),p=n(52930),m=n(47630),v=n(95159);function h(e){return(0,v.Z)("MuiInputAdornment",e)}var f,Z=(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"],j=(0,m.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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),k=r.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,m=n.className,v=n.component,Z=void 0===v?"div":v,k=n.disablePointerEvents,y=void 0!==k&&k,S=n.disableTypography,P=void 0!==S&&S,z=n.position,C=n.variant,w=(0,a.Z)(n,g),E=(0,p.Z)()||{},M=C;C&&E.variant,E&&!M&&(M=E.variant);var V=(0,i.Z)({},n,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:y,position:z,variant:M}),I=function(e){var t=e.classes,n=e.disablePointerEvents,o=e.hiddenLabel,a=e.position,i=e.size,r=e.variant,s={root:["root",n&&"disablePointerEvents",a&&"position".concat((0,l.Z)(a)),r,o&&"hiddenLabel",i&&"size".concat((0,l.Z)(i))]};return(0,c.Z)(s,h,t)}(V);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(j,(0,i.Z)({as:Z,ownerState:V,className:(0,s.Z)(I.root,m),ref:t},w,{children:"string"!==typeof o||P?(0,x.jsxs)(r.Fragment,{children:["start"===z?f||(f=(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),a=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!a(e)&&i(e)&&"[object String]"==o(e)}}}]); -//# sourceMappingURL=2878.174d0b14.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2878.174d0b14.chunk.js.map b/portal-ui/build/static/js/2878.174d0b14.chunk.js.map deleted file mode 100644 index af5b4b8f4..000000000 --- a/portal-ui/build/static/js/2878.174d0b14.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2878.174d0b14.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/VolumesSummary.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IStoragePVCs } from \"../../Storage/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { AppState } from \"../../../../store\";\n\nconst DeletePVC = withSuspense(React.lazy(() => import(\"./DeletePVC\")));\n\ninterface ITenantVolumesProps {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n history: any;\n match: 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 TenantVolumes = ({\n classes,\n setErrorSnackMessage,\n history,\n match,\n loadingTenant,\n}: ITenantVolumesProps) => {\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [selectedPVC, setSelectedPVC] = useState(null);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs`\n )\n .then((res: IStoragePVCs) => {\n let volumes = get(res, \"pvcs\", []);\n setRecords(volumes ? volumes : []);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [loading, setErrorSnackMessage, tenantName, tenantNamespace]);\n\n const confirmDeletePVC = (pvcItem: IStoragePVCs) => {\n const delPvc = {\n ...pvcItem,\n tenant: tenantName,\n namespace: tenantNamespace,\n };\n setSelectedPVC(delPvc);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IStoragePVCs[] = records.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const PVCViewAction = (PVC: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs/${PVC.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoading(true);\n };\n\n useEffect(() => {\n if (loadingTenant) {\n setLoading(true);\n }\n }, [loadingTenant]);\n\n return (\n \n {deleteOpen && (\n \n )}\n

    Volumes

    \n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFilter(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantVolumes));\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":["DeletePVC","withSuspense","React","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","loadingTenant","tenants","tenantDetails","withStyles","theme","createStyles","tenantDetailsStyles","tableStyles","containerForHeader","spacing","classes","history","match","useState","records","setRecords","filter","setFilter","loading","setLoading","selectedPVC","setSelectedPVC","deleteOpen","setDeleteOpen","tenantName","params","tenantNamespace","useEffect","api","then","res","volumes","get","catch","err","filteredRecords","elementItem","name","toLowerCase","includes","Fragment","closeDeleteModalAndRefresh","reloadData","className","sectionTitle","item","xs","actionsTray","placeholder","searchField","id","label","InputProps","disableUnderline","startAdornment","position","onChange","e","target","value","variant","tableBlock","itemActions","type","onClick","PVC","push","pvcItem","delPvc","tenant","namespace","columns","elementKey","width","isLoading","entityName","idField","customPaperHeight","tableWrapper","_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","root","indeterminate","color","capitalize","_extends","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","fontSize","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","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/2878.fca6e2cf.chunk.js b/portal-ui/build/static/js/2878.fca6e2cf.chunk.js new file mode 100644 index 000000000..cbb17c99d --- /dev/null +++ b/portal-ui/build/static/js/2878.fca6e2cf.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2878],{55521:function(e,t,n){"use strict";n.r(t);var o=n(29439),a=n(1413),i=n(72791),r=n(26181),s=n.n(r),c=n(60364),l=n(11135),d=n(25787),u=n(61889),p=n(27391),m=n(63466),v=n(23814),h=n(42649),Z=n(81207),f=n(92983),b=n(74900),x=n(75578),g=n(80184),j=(0,x.Z)(i.lazy((function(){return n.e(2112).then(n.bind(n,32112))}))),k={setErrorSnackMessage:h.Ih},S=(0,c.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),k);t.default=(0,d.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},v.oZ),v.VX),(0,v.Bz)(e.spacing(4))))}))(S((function(e){var t=e.classes,n=e.setErrorSnackMessage,r=e.history,c=e.match,l=e.loadingTenant,d=(0,i.useState)([]),v=(0,o.Z)(d,2),h=v[0],x=v[1],k=(0,i.useState)(""),S=(0,o.Z)(k,2),y=S[0],P=S[1],z=(0,i.useState)(!0),C=(0,o.Z)(z,2),w=C[0],E=C[1],M=(0,i.useState)(null),V=(0,o.Z)(M,2),I=V[0],L=V[1],N=(0,i.useState)(!1),H=(0,o.Z)(N,2),A=H[0],R=H[1],T=c.params.tenantName,F=c.params.tenantNamespace;(0,i.useEffect)((function(){w&&Z.Z.invoke("GET","/api/v1/namespaces/".concat(F,"/tenants/").concat(T,"/pvcs")).then((function(e){var t=s()(e,"pvcs",[]);x(t||[]),E(!1)})).catch((function(e){E(!1),n(e)}))}),[w,n,T,F]);var B=h.filter((function(e){return e.name.toLowerCase().includes(y.toLowerCase())}));return(0,i.useEffect)((function(){l&&E(!0)}),[l]),(0,g.jsxs)(i.Fragment,{children:[A&&(0,g.jsx)(j,{deleteOpen:A,selectedPVC:I,closeDeleteModalAndRefresh:function(e){R(!1),E(!0)}}),(0,g.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,g.jsx)("h1",{className:t.sectionTitle,children:"Volumes"}),(0,g.jsx)(u.ZP,{item:!0,xs:12,children:(0,g.jsx)(p.Z,{placeholder:"Search Volumes (PVCs)",className:t.searchField,id:"search-resource",label:"",InputProps:{disableUnderline:!0,startAdornment:(0,g.jsx)(m.Z,{position:"start",children:(0,g.jsx)(b.Z,{})})},onChange:function(e){P(e.target.value)},variant:"standard"})}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,g.jsx)(f.Z,{itemActions:[{type:"view",onClick:function(e){r.push("/namespaces/".concat(F,"/tenants/").concat(T,"/pvcs/").concat(e.name))}},{type:"delete",onClick:function(e){var t=(0,a.Z)((0,a.Z)({},e),{},{tenant:T,namespace:F});L(t),R(!0)}}],columns:[{label:"Name",elementKey:"name"},{label:"Status",elementKey:"status",width:120},{label:"Capacity",elementKey:"capacity",width:120},{label:"Storage Class",elementKey:"storageClass"}],isLoading:w,records:B,entityName:"PVCs",idField:"name",customPaperHeight:t.tableWrapper})})]})]})})))},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=r},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var a=o(n(45649)),i=n(80184),r=(0,a.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 o=n(4942),a=n(63366),i=n(87462),r=n(72791),s=n(90767),c=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"),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=n(14036),Z=n(93736),f=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"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],k=(0,f.ZP)(l.Z,{shouldForwardProp:function(e){return(0,f.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,h.Z)(n.color))]]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!a.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===a.color?n.palette.action.active:n.palette[a.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==a.color&&(t={},(0,o.Z)(t,"&.".concat(g.checked,", &.").concat(g.indeterminate),{color:n.palette[a.color].main}),(0,o.Z)(t,"&.".concat(g.disabled),{color:n.palette.action.disabled}),t))})),S=(0,u.jsx)(m,{}),y=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),z=r.forwardRef((function(e,t){var n,o,c=(0,Z.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?S:l,p=c.color,m=void 0===p?"primary":p,v=c.icon,f=void 0===v?y:v,b=c.indeterminate,g=void 0!==b&&b,z=c.indeterminateIcon,C=void 0===z?P:z,w=c.inputProps,E=c.size,M=void 0===E?"medium":E,V=(0,a.Z)(c,j),I=g?C:f,L=g?C:d,N=(0,i.Z)({},c,{color:m,indeterminate:g,size:M}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,a={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},r=(0,s.Z)(a,x,t);return(0,i.Z)({},t,r)}(N);return(0,u.jsx)(k,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":g},w),icon:r.cloneElement(I,{fontSize:null!=(n=I.props.fontSize)?n:M}),checkedIcon:r.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:M}),ownerState:N,ref:t},V,{classes:H}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var o=n(4942),a=n(63366),i=n(87462),r=n(72791),s=n(28182),c=n(90767),l=n(14036),d=n(20890),u=n(93840),p=n(52930),m=n(47630),v=n(95159);function h(e){return(0,v.Z)("MuiInputAdornment",e)}var Z,f=(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"],j=(0,m.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(f.positionStart,"&:not(.").concat(f.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),k=r.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,m=n.className,v=n.component,f=void 0===v?"div":v,k=n.disablePointerEvents,S=void 0!==k&&k,y=n.disableTypography,P=void 0!==y&&y,z=n.position,C=n.variant,w=(0,a.Z)(n,g),E=(0,p.Z)()||{},M=C;C&&E.variant,E&&!M&&(M=E.variant);var V=(0,i.Z)({},n,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:S,position:z,variant:M}),I=function(e){var t=e.classes,n=e.disablePointerEvents,o=e.hiddenLabel,a=e.position,i=e.size,r=e.variant,s={root:["root",n&&"disablePointerEvents",a&&"position".concat((0,l.Z)(a)),r,o&&"hiddenLabel",i&&"size".concat((0,l.Z)(i))]};return(0,c.Z)(s,h,t)}(V);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(j,(0,i.Z)({as:f,ownerState:V,className:(0,s.Z)(I.root,m),ref:t},w,{children:"string"!==typeof o||P?(0,x.jsxs)(r.Fragment,{children:["start"===z?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),a=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!a(e)&&i(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=2878.fca6e2cf.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2878.fca6e2cf.chunk.js.map b/portal-ui/build/static/js/2878.fca6e2cf.chunk.js.map new file mode 100644 index 000000000..9cf4cc56d --- /dev/null +++ b/portal-ui/build/static/js/2878.fca6e2cf.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2878.fca6e2cf.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/VolumesSummary.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IStoragePVCs } from \"../../Storage/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { AppState } from \"../../../../store\";\n\nconst DeletePVC = withSuspense(React.lazy(() => import(\"./DeletePVC\")));\n\ninterface ITenantVolumesProps {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n history: any;\n match: 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 TenantVolumes = ({\n classes,\n setErrorSnackMessage,\n history,\n match,\n loadingTenant,\n}: ITenantVolumesProps) => {\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [selectedPVC, setSelectedPVC] = useState(null);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs`\n )\n .then((res: IStoragePVCs) => {\n let volumes = get(res, \"pvcs\", []);\n setRecords(volumes ? volumes : []);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [loading, setErrorSnackMessage, tenantName, tenantNamespace]);\n\n const confirmDeletePVC = (pvcItem: IStoragePVCs) => {\n const delPvc = {\n ...pvcItem,\n tenant: tenantName,\n namespace: tenantNamespace,\n };\n setSelectedPVC(delPvc);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IStoragePVCs[] = records.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const PVCViewAction = (PVC: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs/${PVC.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoading(true);\n };\n\n useEffect(() => {\n if (loadingTenant) {\n setLoading(true);\n }\n }, [loadingTenant]);\n\n return (\n \n {deleteOpen && (\n \n )}\n \n

    Volumes

    \n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFilter(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n \n \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantVolumes));\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":["DeletePVC","withSuspense","React","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","loadingTenant","tenants","tenantDetails","withStyles","theme","createStyles","tenantDetailsStyles","tableStyles","containerForHeader","spacing","classes","history","match","useState","records","setRecords","filter","setFilter","loading","setLoading","selectedPVC","setSelectedPVC","deleteOpen","setDeleteOpen","tenantName","params","tenantNamespace","useEffect","api","then","res","volumes","get","catch","err","filteredRecords","elementItem","name","toLowerCase","includes","Fragment","closeDeleteModalAndRefresh","reloadData","container","className","sectionTitle","item","xs","placeholder","searchField","id","label","InputProps","disableUnderline","startAdornment","position","onChange","e","target","value","variant","tableBlock","itemActions","type","onClick","PVC","push","pvcItem","delPvc","tenant","namespace","columns","elementKey","width","isLoading","entityName","idField","customPaperHeight","tableWrapper","_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","root","indeterminate","color","capitalize","_extends","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","fontSize","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","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/2879.69834509.chunk.js b/portal-ui/build/static/js/2879.69834509.chunk.js deleted file mode 100644 index a33c7a1b1..000000000 --- a/portal-ui/build/static/js/2879.69834509.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2879,8760,9362],{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},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},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});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"),m=(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=n(14036),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],y=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.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,h.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),j=(0,u.jsx)(v,{}),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?j:l,p=s.color,v=void 0===p?"primary":p,m=s.icon,Z=void 0===m?w:m,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,S=void 0===g?P:g,E=s.inputProps,C=s.size,I=void 0===C?"medium":C,M=(0,r.Z)(s,k),H=z?S:Z,L=z?S:d,O=(0,i.Z)({},s,{color:v,indeterminate:z,size:I}),R=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(O);return(0,u.jsx)(y,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},E),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:I}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:I}),ownerState:O,ref:t},M,{classes:R}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});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),m=n(95159);function h(e){return(0,m.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),y=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,m=n.component,Z=void 0===m?"div":m,y=n.disablePointerEvents,j=void 0!==y&&y,w=n.disableTypography,P=void 0!==w&&w,g=n.position,S=n.variant,E=(0,r.Z)(n,z),C=(0,p.Z)()||{},I=S;S&&C.variant,C&&!I&&(I=C.variant);var M=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:j,position:g,variant:I}),H=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,h,t)}(M);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,i.Z)({as:Z,ownerState:M,className:(0,c.Z)(H.root,v),ref:t},E,{children:"string"!==typeof o||P?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(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=2879.69834509.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2879.69834509.chunk.js.map b/portal-ui/build/static/js/2879.69834509.chunk.js.map deleted file mode 100644 index 03cd4fb22..000000000 --- a/portal-ui/build/static/js/2879.69834509.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2879.69834509.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/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":["\"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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_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/3096.63d4ac67.chunk.js b/portal-ui/build/static/js/3096.63d4ac67.chunk.js deleted file mode 100644 index dff59a376..000000000 --- a/portal-ui/build/static/js/3096.63d4ac67.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3096],{26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.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 i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},29823:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.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");t.Z=a},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var o=n(4942),i=n(63366),r=n(87462),a=n(72791),c=n(90767),s=n(12065),d=n(97278),l=n(76189),u=n(80184),v=(0,l.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,l.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,l.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),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],j=(0,Z.ZP)(d.Z,{shouldForwardProp:function(e){return(0,Z.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,i=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===i.color?n.palette.action.active:n.palette[i.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(t={},(0,o.Z)(t,"&.".concat(z.checked,", &.").concat(z.indeterminate),{color:n.palette[i.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),S=(0,u.jsx)(h,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),d=s.checkedIcon,l=void 0===d?w:d,v=s.color,p=void 0===v?"primary":v,h=s.icon,Z=void 0===h?P:h,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,y=void 0===g?S:g,C=s.inputProps,E=s.size,M=void 0===E?"medium":E,I=(0,i.Z)(s,k),H=z?y:Z,L=z?y:l,R=(0,r.Z)({},s,{color:p,indeterminate:z,size:M}),V=function(e){var t=e.classes,n=e.indeterminate,o=e.color,i={root:["root",n&&"indeterminate","color".concat((0,m.Z)(o))]},a=(0,c.Z)(i,x,t);return(0,r.Z)({},t,a)}(R);return(0,u.jsx)(j,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":z},C),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:M}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:M}),ownerState:R,ref:t},I,{classes:V}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var o=n(4942),i=n(63366),r=n(87462),a=n(72791),c=n(28182),s=n(90767),d=n(14036),l=n(20890),u=n(93840),v=n(52930),p=n(47630),h=n(95159);function m(e){return(0,h.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,d.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,o.Z)({},"&.".concat(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),j=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,p=n.className,h=n.component,Z=void 0===h?"div":h,j=n.disablePointerEvents,w=void 0!==j&&j,P=n.disableTypography,S=void 0!==P&&P,g=n.position,y=n.variant,C=(0,i.Z)(n,z),E=(0,v.Z)()||{},M=y;y&&E.variant,E&&!M&&(M=E.variant);var I=(0,r.Z)({},n,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:w,position:g,variant:M}),H=function(e){var t=e.classes,n=e.disablePointerEvents,o=e.hiddenLabel,i=e.position,r=e.size,a=e.variant,c={root:["root",n&&"disablePointerEvents",i&&"position".concat((0,d.Z)(i)),a,o&&"hiddenLabel",r&&"size".concat((0,d.Z)(r))]};return(0,s.Z)(c,m,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,r.Z)({as:Z,ownerState:I,className:(0,c.Z)(H.root,p),ref:t},C,{children:"string"!==typeof o||S?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(l.Z,{color:"text.secondary",children:o})}))})}))},26769:function(e,t,n){var o=n(39066),i=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&r(e)&&"[object String]"==o(e)}}}]); -//# sourceMappingURL=3096.63d4ac67.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3096.63d4ac67.chunk.js.map b/portal-ui/build/static/js/3096.63d4ac67.chunk.js.map deleted file mode 100644 index 6848fc6e5..000000000 --- a/portal-ui/build/static/js/3096.63d4ac67.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3096.63d4ac67.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/Close.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":["\"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: \"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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/312.256db0f7.chunk.js b/portal-ui/build/static/js/312.256db0f7.chunk.js deleted file mode 100644 index 93316cb8f..000000000 --- a/portal-ui/build/static/js/312.256db0f7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[312],{9505:function(n,e,o){var t=o(29439),i=o(72791),c=o(81207);e.Z=function(n,e){var o=(0,i.useState)(!1),s=(0,t.Z)(o,2),l=s[0],r=s[1];return[l,function(o,t,i){r(!0),c.Z.invoke(o,t,i).then((function(e){r(!1),n(e)})).catch((function(n){r(!1),e(n)}))}]}},23508:function(n,e,o){var t=o(1413),i=o(72791),c=o(5574),s=o(65661),l=o(39157),r=o(97123),a=o(36151),u=o(59860),d=o(13400),f=o(29823),m=o(11135),Z=o(25787),v=o(23814),p=o(80184);e.Z=(0,Z.Z)((function(n){return(0,m.Z)((0,t.Z)({},v.Qw))}))((function(n){var e=n.isOpen,o=void 0!==e&&e,m=n.onClose,Z=n.onCancel,v=n.onConfirm,x=n.classes,h=void 0===x?{}:x,j=n.title,C=void 0===j?"":j,k=n.isLoading,b=n.confirmationContent,y=n.cancelText,N=void 0===y?"Cancel":y,g=n.confirmText,P=void 0===g?"Confirm":g,B=n.confirmButtonProps,E=void 0===B?{}:B,M=n.cancelButtonProps,T=void 0===M?{}:M,w=n.titleIcon,D=void 0===w?null:w;return(0,p.jsxs)(c.Z,{open:o,onClose:function(n,e){"backdropClick"!==e&&m()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,p.jsxs)(s.Z,{className:h.title,children:[(0,p.jsxs)("div",{className:h.titleText,children:[D," ",C]}),(0,p.jsx)("div",{className:h.closeContainer,children:(0,p.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,p.jsx)(f.Z,{})})})]}),(0,p.jsx)(l.Z,{className:h.content,children:b}),(0,p.jsxs)(r.Z,{className:h.actions,children:[(0,p.jsx)(a.Z,(0,t.Z)((0,t.Z)({className:h.cancelButton,onClick:Z||m,disabled:k,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,p.jsx)(u.Z,(0,t.Z)((0,t.Z)({className:h.confirmButton,type:"button",onClick:v,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,p.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:P}))]})]})}))},312:function(n,e,o){o.r(e);var t=o(29439),i=(o(72791),o(60364)),c=o(51691),s=o(42649),l=o(9505),r=o(23508),a=o(93656),u=o(80184),d={setErrorSnackMessage:s.Ih},f=(0,i.$j)(null,d);e.default=f((function(n){var e=n.closeDeleteModalAndRefresh,o=n.deleteOpen,i=n.selectedPolicy,s=n.setErrorSnackMessage,d=(0,l.Z)((function(){return e(!0)}),(function(n){return s(n)})),f=(0,t.Z)(d,2),m=f[0],Z=f[1];if(!i)return null;return(0,u.jsx)(r.Z,{title:"Delete Policy",confirmText:"Delete",isOpen:o,titleIcon:(0,u.jsx)(a.Nv,{}),isLoading:m,onConfirm:function(){Z("DELETE","/api/v1/policy?name=".concat(i))},onClose:function(){return e(!1)},confirmationContent:(0,u.jsxs)(c.Z,{children:["Are you sure you want to delete policy ",(0,u.jsx)("br",{}),(0,u.jsx)("b",{children:i}),"?"]})})}))},29823:function(n,e,o){var t=o(95318);e.Z=void 0;var i=t(o(45649)),c=o(80184),s=(0,i.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");e.Z=s}}]); -//# sourceMappingURL=312.256db0f7.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/312.256db0f7.chunk.js.map b/portal-ui/build/static/js/312.256db0f7.chunk.js.map deleted file mode 100644 index 982272c1a..000000000 --- a/portal-ui/build/static/js/312.256db0f7.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/312.256db0f7.chunk.js","mappings":"gJA+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,iIC7CL8B,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAChC,UAAeE,GA5CM,SAAC,GAKK,IAJzBE,EAIwB,EAJxBA,2BACAC,EAGwB,EAHxBA,WACAC,EAEwB,EAFxBA,eACAL,EACwB,EADxBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAAC/C,GAAD,OAA+B4C,EAAqB5C,MAGvE,eAAOmD,EAAP,KAAsBC,EAAtB,KAEA,IAAKH,EACH,OAAO,KAOT,OACE,SAAC,IAAD,CACEvC,MAAK,gBACLG,YAAa,SACbR,OAAQ2C,EACRhC,WAAW,SAAC,KAAD,IACXzB,UAAW4D,EACX3C,UAXoB,WACtB4C,EAAgB,SAAD,8BAAkCH,KAW/C3C,QApBY,kBAAMyC,GAA2B,IAqB7CpC,qBACE,UAAC,IAAD,sDACyC,mBACvC,uBAAIsC,IAFN,a,0BC5DJI,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/Policies/DeletePolicy.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeletePolicyProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedPolicy: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePolicy = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedPolicy,\n setErrorSnackMessage,\n}: IDeletePolicyProps) => {\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 (!selectedPolicy) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/policy?name=${selectedPolicy}`);\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 policy
    \n {selectedPolicy}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\nexport default connector(DeletePolicy);\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","mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedPolicy","useApi","deleteLoading","invokeDeleteApi","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/312.f6f66e6c.chunk.js b/portal-ui/build/static/js/312.f6f66e6c.chunk.js new file mode 100644 index 000000000..5180fc0d5 --- /dev/null +++ b/portal-ui/build/static/js/312.f6f66e6c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[312],{9505:function(e,n,t){var o=t(29439),r=t(72791),i=t(81207);n.Z=function(e,n){var t=(0,r.useState)(!1),c=(0,o.Z)(t,2),u=c[0],l=c[1];return[u,function(t,o,r){l(!0),i.Z.invoke(t,o,r).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},312:function(e,n,t){t.r(n);var o=t(29439),r=(t(72791),t(60364)),i=t(51691),c=t(42649),u=t(9505),l=t(2148),s=t(93656),a=t(80184),f={setErrorSnackMessage:c.Ih},p=(0,r.$j)(null,f);n.default=p((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,r=e.selectedPolicy,c=e.setErrorSnackMessage,f=(0,u.Z)((function(){return n(!0)}),(function(e){return c(e)})),p=(0,o.Z)(f,2),d=p[0],h=p[1];if(!r)return null;return(0,a.jsx)(l.Z,{title:"Delete Policy",confirmText:"Delete",isOpen:t,titleIcon:(0,a.jsx)(s.Nv,{}),isLoading:d,onConfirm:function(){h("DELETE","/api/v1/policy?name=".concat(r))},onClose:function(){return n(!1)},confirmationContent:(0,a.jsxs)(i.Z,{children:["Are you sure you want to delete policy ",(0,a.jsx)("br",{}),(0,a.jsx)("b",{children:r}),"?"]})})}))}}]); +//# sourceMappingURL=312.f6f66e6c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/312.f6f66e6c.chunk.js.map b/portal-ui/build/static/js/312.f6f66e6c.chunk.js.map new file mode 100644 index 000000000..c980ee4c8 --- /dev/null +++ b/portal-ui/build/static/js/312.f6f66e6c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/312.f6f66e6c.chunk.js","mappings":"gJA+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,gIC+CVC,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAChC,UAAeE,GA5CM,SAAC,GAKK,IAJzBE,EAIwB,EAJxBA,2BACAC,EAGwB,EAHxBA,WACAC,EAEwB,EAFxBA,eACAL,EACwB,EADxBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACL,GAAD,OAA+BE,EAAqBF,MAGvE,eAAOS,EAAP,KAAsBC,EAAtB,KAEA,IAAKH,EACH,OAAO,KAOT,OACE,SAAC,IAAD,CACEI,MAAK,gBACLC,YAAa,SACbC,OAAQP,EACRQ,WAAW,SAAC,KAAD,IACXvB,UAAWkB,EACXM,UAXoB,WACtBL,EAAgB,SAAD,8BAAkCH,KAW/CS,QApBY,kBAAMX,GAA2B,IAqB7CY,qBACE,UAAC,IAAD,sDACyC,mBACvC,uBAAIV,IAFN","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Policies/DeletePolicy.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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeletePolicyProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedPolicy: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePolicy = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedPolicy,\n setErrorSnackMessage,\n}: IDeletePolicyProps) => {\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 (!selectedPolicy) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/policy?name=${selectedPolicy}`);\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 policy
    \n {selectedPolicy}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\nexport default connector(DeletePolicy);\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedPolicy","useApi","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","onClose","confirmationContent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3176.43953acc.chunk.js b/portal-ui/build/static/js/3176.43953acc.chunk.js new file mode 100644 index 000000000..6d6cab1e8 --- /dev/null +++ b/portal-ui/build/static/js/3176.43953acc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3176],{75578:function(n,e,t){var r=t(1413),u=t(72791),i=t(80184);e.Z=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,i.jsx)(u.Suspense,{fallback:e,children:(0,i.jsx)(n,(0,r.Z)({},t))})}return t}},43176:function(n,e,t){t.r(e);var r=t(72791),u=t(32291),i=t(75578),l=t(80184),a=(0,i.Z)(r.lazy((function(){return Promise.all([t.e(5171),t.e(63),t.e(2983),t.e(4394)]).then(t.bind(t,4394))})));e.default=function(){return(0,l.jsxs)(r.Fragment,{children:[(0,l.jsx)(u.Z,{label:"Notification Endpoints"}),(0,l.jsx)(a,{})]})}}}]); +//# sourceMappingURL=3176.43953acc.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3176.43953acc.chunk.js.map b/portal-ui/build/static/js/3176.43953acc.chunk.js.map new file mode 100644 index 000000000..c17f426c1 --- /dev/null +++ b/portal-ui/build/static/js/3176.43953acc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3176.43953acc.chunk.js","mappings":"iJAiCA,IAfA,SACEA,GAEC,IADDC,EACA,uDADsC,KAEtC,SAASC,EAAsBC,GAC7B,OACE,SAAC,EAAAC,SAAD,CAAUH,SAAUA,EAApB,UACE,SAACD,GAAD,UAAsBG,MAK5B,OAAOD,I,6ECTHG,GAA4BC,EAAAA,EAAAA,GAChCC,EAAAA,MAAW,kBAAM,8EAYnB,UAT8B,WAC5B,OACE,UAAC,EAAAC,SAAD,YACE,SAAC,IAAD,CAAYC,MAAM,4BAClB,SAACJ,EAAD","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/NotificationEndpoints/NotificationEndpoints.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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

    (\n WrappedComponent: ComponentType

    ,\n fallback: SuspenseProps[\"fallback\"] = null\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nconst ListNotificationEndpoints = withSuspense(\n React.lazy(() => import(\"./ListNotificationEndpoints\"))\n);\n\nconst NotificationEndpoints = () => {\n return (\n \n \n \n \n );\n};\n\nexport default NotificationEndpoints;\n"],"names":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","ListNotificationEndpoints","withSuspense","React","Fragment","label"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3176.640e537b.chunk.js b/portal-ui/build/static/js/3176.640e537b.chunk.js deleted file mode 100644 index c8a025d67..000000000 --- a/portal-ui/build/static/js/3176.640e537b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3176],{75578:function(e,n,t){var a=t(1413),s=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)(s.Suspense,{fallback:n,children:(0,i.jsx)(e,(0,a.Z)({},t))})}return t}},32291:function(e,n,t){var a=t(72791),s=t(60364),i=t(61889),r=t(11135),l=t(25787),o=t(20890),c=t(13400),d=t(95466),m=t(84683),u=t(3925),g=t(93656),f=t(80184),p={toggleList:u.kQ},x=(0,s.$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,l.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,s=e.actions,r=e.sidebarOpen,l=e.operatorMode,u=e.managerObjects,p=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(a.Fragment,{}):(0,f.jsxs)(i.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!r&&(0,f.jsx)("div",{className:n.logo,children:l?(0,f.jsx)(d.Z,{}):(0,f.jsx)(m.Z,{})}),(0,f.jsx)(o.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,f.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,f.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[s&&s,u&&u.length>0&&(0,f.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(g.gx,{})})]})]})})))},43176:function(e,n,t){t.r(n);var a=t(72791),s=t(32291),i=t(75578),r=t(80184),l=(0,i.Z)(a.lazy((function(){return Promise.all([t.e(5171),t.e(7931),t.e(2983),t.e(4394)]).then(t.bind(t,4394))})));n.default=function(){return(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(s.Z,{label:"Notification Endpoints"}),(0,r.jsx)(l,{})]})}}}]); -//# sourceMappingURL=3176.640e537b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3176.640e537b.chunk.js.map b/portal-ui/build/static/js/3176.640e537b.chunk.js.map deleted file mode 100644 index 76be433fa..000000000 --- a/portal-ui/build/static/js/3176.640e537b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3176.640e537b.chunk.js","mappings":"iJAiCA,IAfA,SACEA,GAEC,IADDC,EACA,uDADsC,KAEtC,SAASC,EAAsBC,GAC7B,OACE,SAAC,EAAAC,SAAD,CAAUH,SAAUA,EAApB,UACE,SAACD,GAAD,UAAsBG,MAK5B,OAAOD,I,6JC0IHG,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,GAAUa,EAAAA,EAAAA,IAnIV,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,gBAAiB,CACfC,MAAO,OACPC,UAAW,GACXC,QAAS,OACTC,gBAAiB,OACjBC,KAAM,EACNC,UAAW,8BAEbC,MAAO,CACLJ,QAAS,OACTK,eAAgB,aAChBC,WAAY,UAEdC,WAAY,CACVC,MAAO,OACPC,SAAU,GACVC,WAAY,IACZC,WAAY,GACZC,UAAW,GAEbC,UAAW,CACTC,UAAW,SAEbC,KAAM,CACJJ,WAAY,GACZK,KAAMrB,EAAMsB,QAAQC,QAAQC,KAC5B,cAAe,CACbrB,MAAO,MAGXsB,gBAAiB,CACfpB,QAAS,OACTK,eAAgB,SAChBC,WAAY,cAgGOZ,EA5FN,SAAC,GAUA,IATlB2B,EASiB,EATjBA,QACAjB,EAQiB,EARjBA,MACAkB,EAOiB,EAPjBA,QACAtC,EAMiB,EANjBA,YACAE,EAKiB,EALjBA,aACAC,EAIiB,EAJjBA,eACAP,EAGiB,EAHjBA,WACAwC,EAEiB,EAFjBA,gBAGA,OADiB,EADjB7B,SAEagC,SAAS,cACb,SAAC,EAAAC,SAAD,KAGP,UAAC,KAAD,CACEC,WAAS,EACTC,UAAS,UAAKL,EAAQxB,gBAAb,gBACT8B,UAAU,MACVrB,WAAW,SAJb,WAME,UAAC,KAAD,CACEsB,MAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAIX,EAAkB,EAAI,EAC1BM,UAAWL,EAAQjB,MACnB4B,GAAI,CACFC,WAAY,CAAC,OAAQ,OAAQ,IAAK,MAPtC,WAUIjD,IACA,gBAAK0C,UAAWL,EAAQN,KAAxB,SACG7B,GAAe,SAAC,IAAD,KAAmB,SAAC,IAAD,OAGvC,SAAC,IAAD,CAAYgD,QAAQ,KAAKR,UAAWL,EAAQd,WAA5C,SACGH,OAGJgB,IACC,SAAC,KAAD,CACEQ,MAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,EACJL,UAAWL,EAAQD,gBACnBY,GAAI,CAAEpB,UAAW,CAAC,OAAQ,OAAQ,IAAK,MANzC,SAQGQ,KAGL,UAAC,KAAD,CACEQ,MAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAIX,EAAkB,EAAI,EAC1BM,UAAWL,EAAQR,UALrB,UAOGS,GAAWA,EACXnC,GAAkBA,EAAegD,OAAS,IACzC,SAAC,IAAD,CACE3B,MAAM,UACN,aAAW,eACX4B,UAAU,OACVC,QAAS,WACPzD,KAEF0D,GAAG,wBACHC,KAAK,QARP,UAUE,SAAC,KAAD,iB,6ECpINC,GAA4BC,EAAAA,EAAAA,GAChCC,EAAAA,MAAW,kBAAM,gFAYnB,UAT8B,WAC5B,OACE,UAAC,EAAAlB,SAAD,YACE,SAAC,IAAD,CAAYpB,MAAM,4BAClB,SAACoC,EAAD","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/NotificationEndpoints/NotificationEndpoints.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, { 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, { Fragment } from \"react\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nconst ListNotificationEndpoints = withSuspense(\n React.lazy(() => import(\"./ListNotificationEndpoints\"))\n);\n\nconst NotificationEndpoints = () => {\n return (\n \n \n \n \n );\n};\n\nexport default NotificationEndpoints;\n"],"names":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","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","ListNotificationEndpoints","withSuspense","React"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3208.c0b88007.chunk.js b/portal-ui/build/static/js/3208.c0b88007.chunk.js new file mode 100644 index 000000000..2d2cb0ced --- /dev/null +++ b/portal-ui/build/static/js/3208.c0b88007.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3208],{23804:function(e,t,n){n(72791);var i=n(11135),o=n(25787),r=n(61889),a=n(80184);t.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 t=e.classes,n=e.iconComponent,i=e.title,o=e.help;return(0,a.jsx)("div",{className:t.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:o})]})})}))},9505:function(e,t,n){var i=n(29439),o=n(72791),r=n(81207);t.Z=function(e,t){var n=(0,o.useState)(!1),a=(0,i.Z)(n,2),s=a[0],l=a[1];return[s,function(n,i,o){l(!0),r.Z.invoke(n,i,o).then((function(t){l(!1),e(t)})).catch((function(e){l(!1),t(e)}))}]}},56028:function(e,t,n){var i=n(29439),o=n(1413),r=n(72791),a=n(60364),s=n(13400),l=n(55646),d=n(5574),c=n(65661),p=n(39157),u=n(11135),x=n(25787),m=n(23814),f=n(42649),h=n(29823),g=n(28057),Z=n(80184),v=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,x.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))(v((function(e){var t=e.onClose,n=e.modalOpen,a=e.title,u=e.children,x=e.classes,m=e.wideLimit,f=void 0===m||m,v=e.modalSnackMessage,j=e.noContentPadding,b=e.setModalSnackMessage,y=e.titleIcon,S=void 0===y?null:y,C=(0,r.useState)(!1),k=(0,i.Z)(C,2),I=k[0],w=k[1];(0,r.useEffect)((function(){b("")}),[b]),(0,r.useEffect)((function(){if(v){if(""===v.message)return void w(!1);"error"!==v.type&&w(!0)}}),[v]);var R=f?{classes:{paper:x.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},M="";return v&&(M=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(M=v.message)),(0,Z.jsxs)(d.Z,(0,o.Z)((0,o.Z)({open:n,classes:x},R),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:x.root,children:[(0,Z.jsxs)(c.Z,{className:x.title,children:[(0,Z.jsxs)("div",{className:x.titleText,children:[S," ",a]}),(0,Z.jsx)("div",{className:x.closeContainer,children:(0,Z.jsx)(s.Z,{"aria-label":"close",id:"close",className:x.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(l.Z,{open:I,className:x.snackBarModal,onClose:function(){w(!1),b("")},message:M,ContentProps:{className:"".concat(x.snackBar," ").concat(v&&"error"===v.type?x.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,Z.jsx)(p.Z,{className:j?"":x.content,children:u})]}))})))},53208:function(e,t,n){n.r(t),n.d(t,{default:function(){return T}});var i=n(1413),o=n(29439),r=n(72791),a=n(32291),s=n(74794),l=n(64554),d=n(51691),c=n(9505),p=n(79834),u=n(90493),x=n(76278),m=n(56125),f=n(20068),h=n(36151),g=(n(25183),n(40603)),Z=n(54599),v=n(93656),j=n(2148),b=n(21435),y=n(61889),S=n(60364),C=n(42649),k=n(56028),I=n(25787),w=n(11135),R=n(23814),M=n(80184),B=(0,S.$j)(null,{setErrorSnackMessage:C.Ih,setSnackBarMessage:C.y1})((0,I.Z)((function(e){return(0,w.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},R.ID),R.DF),R.bK))}))((function(e){var t=e.sites,n=e.onDeleteSite,i=e.setErrorSnackMessage,a=e.setSnackBarMessage,s=e.onRefresh,S=e.classes,C=r.useState(""),I=(0,o.Z)(C,2),w=I[0],R=(I[1],(0,r.useState)("")),B=(0,o.Z)(R,2),E=B[0],D=B[1],F=(0,r.useState)(null),L=(0,o.Z)(F,2),P=L[0],N=L[1],T=(0,r.useState)(""),O=(0,o.Z)(T,2),K=O[0],A=O[1],G=(0,c.Z)((function(e){e.success?(N(null),a(e.status)):i({errorMessage:"Error",detailedError:e.status}),s()}),(function(e){i(e),s()})),z=(0,o.Z)(G,2),W=z[0],q=z[1],V=!1;try{new URL(K),V=!0}catch($){V=!1}return(0,M.jsx)(l.Z,{children:(0,M.jsxs)(u.Z,{sx:{width:"100%",flex:1,padding:"0",marginTop:"25px",height:"calc( 100vh - 450px )",border:"1px solid #eaeaea",marginBottom:"25px"},component:"nav","aria-labelledby":"nested-list-subheader",children:[(0,M.jsx)(l.Z,{sx:{fontWeight:600,borderBottom:"1px solid #f1f1f1",padding:"25px 25px 25px 20px"},children:"List of Replicated Sites"}),t.map((function(e,i){var o="".concat(e.name),a=w===e.name;return(0,M.jsxs)(r.Fragment,{children:[(0,M.jsxs)(x.Z,{disableRipple:!0,className:a?"expanded":"",sx:{display:"flex",alignItems:"center",border:"1px solid #f1f1f1",borderLeft:"0",borderRight:"0",borderTop:"0",padding:"6px 10px 6px 20px","&:hover":{background:"#bebbbb0d"},"&.expanded":{marginBottom:"0"}},children:[(0,M.jsxs)(l.Z,{sx:{flex:2,display:"grid",gridTemplateColumns:{sm:"1fr 1fr "}},children:[(0,M.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",overflow:"hidden"},children:e.name}),(0,M.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",overflow:"hidden"},children:[e.isCurrent?(0,M.jsx)(f.Z,{title:"This site/cluster",placement:"top",children:(0,M.jsx)(l.Z,{sx:{"& .min-icon":{height:"12px",fill:"green"}},children:(0,M.jsx)(v.J$,{})})}):null,(0,M.jsx)(f.Z,{title:e.endpoint,children:(0,M.jsx)(l.Z,{sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:e.isCurrent?"":"24px"},children:e.endpoint})})]})]}),(0,M.jsxs)(l.Z,{sx:{display:"flex",marginLeft:"25px",marginRight:"25px",width:"60px",flexShrink:0,"& button":{borderRadius:"50%",background:"#F8F8F8",border:"none","&:hover":{background:"#E2E2E2"},"& svg":{fill:"#696565"}}},children:[(0,M.jsx)(g.Z,{tooltip:t.length<=2?"Minimum two sites are required for replication":"Delete Site",text:"",variant:"outlined",color:"secondary",disabled:t.length<=2,icon:(0,M.jsx)(Z.Z,{}),onClick:function(e){e.preventDefault(),D(o)}}),(0,M.jsx)(g.Z,{tooltip:"Edit Endpoint",text:"",variant:"contained",color:"primary",icon:(0,M.jsx)(v.dY,{}),onClick:function(t){t.preventDefault(),N(e)}})]}),(0,M.jsx)(l.Z,{sx:{height:"25px",width:"25px"}})]}),a?(0,M.jsxs)(l.Z,{sx:{border:"1px solid #f1f1f1",borderLeft:"0",borderRight:"0",borderTop:"0"},children:[(0,M.jsx)(p.Z,{component:"div",sx:{paddingLeft:"30px"},children:"Replication status"},"".concat(i,"-drive-details")),(0,M.jsx)(m.Z,{in:a,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:"Status info"})]},"".concat(e.name)):null,E===o?(0,M.jsx)(j.Z,{title:"Delete Replication Site",confirmText:"Delete",isOpen:!0,titleIcon:(0,M.jsx)(v.Nv,{}),isLoading:!1,onConfirm:function(){n(!1,[o])},onClose:function(){D("")},confirmationContent:(0,M.jsxs)(d.Z,{children:["Are you sure you want to remove the replication site:"," ",o,".?"]})}):null,(null===P||void 0===P?void 0:P.name)===o?(0,M.jsxs)(k.Z,{title:"Edit Replication Endpoint ",modalOpen:!0,titleIcon:(0,M.jsx)(v.dY,{}),onClose:function(){N(null)},children:[(0,M.jsxs)(d.Z,{children:[(0,M.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",marginBottom:"15px"},children:[(0,M.jsxs)(l.Z,{sx:{marginBottom:"10px"},children:[(0,M.jsx)("strong",{children:"Site:"})," "," ",P.name]}),(0,M.jsxs)(l.Z,{sx:{marginBottom:"10px"},children:[(0,M.jsx)("strong",{children:"Current Endpoint:"})," "," ",P.endpoint]})]}),(0,M.jsxs)(y.ZP,{item:!0,xs:12,children:[(0,M.jsx)(l.Z,{sx:{marginBottom:"5px"},children:" New Endpoint:"}),(0,M.jsx)(b.Z,{id:"edit-rep-peer-endpoint",name:"edit-rep-peer-endpoint",placeholder:"https://dr.minio-storage:9000",onChange:function(e){A(e.target.value)},label:"",value:K})]})]}),(0,M.jsxs)(y.ZP,{item:!0,xs:12,className:S.modalButtonBar,children:[(0,M.jsx)(h.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){N(null)},children:"Close"}),(0,M.jsx)(h.Z,{type:"button",variant:"contained",color:"primary",disabled:W||!V,onClick:function(){q("PUT","api/v1/admin/site-replication",{endpoint:K,name:P.name,deploymentId:P.deploymentID})},children:"Update"})]})]}):null]},o)}))]})})}))),E=n(72401),D=n(93433),F=n(40986),L=function(e){var t=!1;try{new URL(e),t=!0}catch(n){t=!1}return t||""===e?"":"Invalid Endpoint"},P=(0,S.$j)(null,{setErrorSnackMessage:C.Ih,setSnackBarMessage:C.y1})((function(e){var t=e.existingSites,n=void 0===t?[]:t,a=e.onClose,s=e.setErrorSnackMessage,d=e.setSnackBarMessage,p=null!==n&&void 0!==n&&n.length?[{endpoint:"",name:""}]:[{endpoint:"",name:""},{endpoint:"",name:""}],u=(0,r.useState)(""),x=(0,o.Z)(u,2),m=x[0],f=x[1],Z=(0,r.useState)(""),j=(0,o.Z)(Z,2),S=j[0],C=j[1],I=(0,r.useState)(p),w=(0,o.Z)(I,2),R=w[0],B=w[1],E=R.reduce((function(e,t,n){var i=R[n].endpoint,o=L(i);return""===o&&""!==i&&e.push(o),e}),[]).length===R.length,P=(0,c.Z)((function(e){e.success?(d(e.status),a()):s({errorMessage:"Error",detailedError:e.status})}),(function(e){s(e)})),N=(0,o.Z)(P,2),T=N[0],O=N[1];return(0,M.jsxs)(k.Z,{modalOpen:!0,onClose:a,title:"Add Sites for Replication",titleIcon:(0,M.jsx)(v.D7,{}),"data-test-id":"add-site-replication-modal",children:[T?(0,M.jsx)(F.Z,{}):null,(0,M.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){return e.preventDefault(),function(){var e=null===n||void 0===n?void 0:n.map((function(e,t){return{accessKey:m,secretKey:S,name:e.name,endpoint:e.endpoint}})),t=R.reduce((function(e,t,n){return t.endpoint&&e.push({accessKey:m,secretKey:S,name:t.name||"dr-site-".concat(n),endpoint:t.endpoint}),e}),[]);O("POST","api/v1/admin/site-replication",[].concat((0,D.Z)(e||[]),(0,D.Z)(t||[])))}()},children:[(0,M.jsx)(y.ZP,{item:!0,xs:12,marginBottom:"15px",children:(0,M.jsxs)(l.Z,{sx:{fontStyle:"italic",display:"flex",alignItems:"center",fontSize:"12px"},children:[(0,M.jsx)(l.Z,{sx:{fontWeight:600},children:"Note:"})," ",(0,M.jsx)(l.Z,{sx:{marginLeft:"8px"},children:"Access Key and Secret Key should be same on all sites."})]})}),(0,M.jsx)(y.ZP,{item:!0,xs:12,marginBottom:"15px",sx:{"& label span":{fontWeight:"normal"}},children:(0,M.jsx)(b.Z,{id:"add-rep-peer-accKey",name:"add-rep-peer-accKey",onChange:function(e){f(e.target.value)},label:"Access Key",required:!0,value:m,error:""===m?"Access Key is required.":"","data-test-id":"add-site-rep-acc-key"})}),(0,M.jsx)(y.ZP,{item:!0,xs:12,marginBottom:"30px",sx:{"& label span":{fontWeight:"normal"}},children:(0,M.jsx)(b.Z,{id:"add-rep-peer-secKey",name:"add-rep-peer-secKey",type:"password",required:!0,onChange:function(e){C(e.target.value)},error:""===S?"Secret Key is required.":"",label:"Secret Key",value:S,"data-test-id":"add-site-rep-sec-key"})}),(0,M.jsx)(y.ZP,{item:!0,xs:12,children:(0,M.jsx)(l.Z,{sx:{marginBottom:"15px",fontSize:"14px",fontWeight:600},children:"Peer Sites"})}),(0,M.jsxs)(l.Z,{sx:{display:"grid",gridTemplateColumns:".8fr 1.2fr .2fr",border:"1px solid #eaeaea",padding:"15px",gap:"10px",maxHeight:"430px",overflowY:"auto"},children:[(0,M.jsx)(l.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:"Site Name"}),(0,M.jsxs)(l.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Endpoint ","*"]}),(0,M.jsx)(l.Z,{children:" "}),null===n||void 0===n?void 0:n.map((function(e,t){return(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)(l.Z,{children:(0,M.jsx)(b.Z,{id:"add-rep-ex-peer-site-".concat(t),name:"add-rep-ex-peer-site-".concat(t),extraInputProps:{readOnly:!0},label:"",value:e.name,onChange:function(){}})}),(0,M.jsx)(l.Z,{children:(0,M.jsx)(b.Z,{id:"add-rep-ex-peer-site-ep-".concat(t),name:"add-rep-ex-peer-site-ep-".concat(t),extraInputProps:{readOnly:!0},label:"",value:e.endpoint,onChange:function(){}})}),(0,M.jsx)(y.ZP,{item:!0,xs:12,children:" "})]},e.name)})),R.map((function(e,t){var o=!1;return(null!==n&&void 0!==n&&n.length&&0===t||(null===n||void 0===n||!n.length)&&t<2)&&(o=!0),(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)(l.Z,{children:(0,M.jsx)(b.Z,{id:"add-rep-peer-site-".concat(t),name:"add-rep-peer-site-".concat(t),placeholder:"dr-site-".concat(t),label:"",value:"".concat(e.name),onChange:function(e){var n=e.target.value;B((function(e){return e.map((function(e,o){return o===t?(0,i.Z)((0,i.Z)({},e),{},{name:n}):e}))}))},"data-test-id":"add-site-rep-peer-site-".concat(t)})}),(0,M.jsx)(l.Z,{children:(0,M.jsx)(b.Z,{id:"add-rep-peer-site-ep-".concat(t),name:"add-rep-peer-site-ep-".concat(t),placeholder:"https://dr.minio-storage:900".concat(t),label:"",error:L(R[t].endpoint),value:"".concat(e.endpoint),onChange:function(e){var n=e.target.value;B((function(e){return e.map((function(e,o){return o===t?(0,i.Z)((0,i.Z)({},e),{},{endpoint:n}):e}))}))},"data-test-id":"add-site-rep-peer-ep-".concat(t)})}),(0,M.jsx)(y.ZP,{item:!0,xs:12,alignItems:"center",display:"flex",children:(0,M.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"baseline",marginTop:"4px","& button":{borderColor:"#696969",color:"#696969",borderRadius:"50%"}},children:[(0,M.jsx)(g.Z,{tooltip:"Add a Row",text:"",variant:"outlined",color:"primary",icon:(0,M.jsx)(v.dt,{}),onClick:function(e){e.preventDefault();var n=(0,D.Z)(R);n.splice(t+1,0,{name:"",endpoint:""}),B(n)}}),(0,M.jsx)(g.Z,{tooltip:"Remove Row",text:"",variant:"outlined",disabled:o,color:"primary",icon:(0,M.jsx)(v.HF,{}),onClick:function(e){e.preventDefault(),B(R.filter((function(e,n){return n!==t})))}})]})})]},"".concat(t))}))]}),(0,M.jsx)(y.ZP,{item:!0,xs:12,children:(0,M.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[(0,M.jsx)(h.Z,{type:"button",variant:"outlined",color:"primary",disabled:T,onClick:function(){f(""),C(""),B(p)},children:"Clear"}),(0,M.jsx)(h.Z,{type:"submit",variant:"contained",color:"primary",disabled:T||!m||!S||!E,children:"Save"})]})})]})]})})),N=n(23804),T=(0,S.$j)(null,{setErrorSnackMessage:C.Ih,setSnackBarMessage:C.y1})((function(e){var t=e.setSnackBarMessage,n=(0,r.useState)([]),p=(0,o.Z)(n,2),u=p[0],x=p[1],m=(0,r.useState)(!1),f=(0,o.Z)(m,2),h=f[0],b=f[1],y=(0,r.useState)(!1),S=(0,o.Z)(y,2),k=S[0],I=S[1],w=(0,c.Z)((function(e){var t=e.sites,n=e.name,o=t.findIndex((function(e){return e.name===n}));if(-1!==o){var r=t[o];r=(0,i.Z)((0,i.Z)({},r),{},{isCurrent:!0}),t.splice(o,1,r)}t.sort((function(e,t){return e.name===n?-1:t.name===n?1:0})),x(t)}),(function(e){x([])})),R=(0,o.Z)(w,2),D=R[0],F=R[1],L=function(){F("GET","api/v1/admin/site-replication")},T=(0,c.Z)((function(e){I(!1),t("Successfully deleted."),L()}),(function(e){(0,C.Ih)(e)})),O=(0,o.Z)(T,2),K=O[0],A=O[1],G=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];A("DELETE","api/v1/admin/site-replication",{all:e,sites:t})};(0,r.useEffect)((function(){L()}),[]);var z=null===u||void 0===u?void 0:u.length;return(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)(a.Z,{label:"Site Replication"}),(0,M.jsxs)(s.Z,{children:[(0,M.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[z?(0,M.jsx)(l.Z,{children:(0,M.jsx)(g.Z,{tooltip:"Delete All",text:"Delete All",variant:"outlined",color:"secondary",disabled:K,icon:(0,M.jsx)(Z.Z,{}),onClick:function(){I(!0)}})}):null,(0,M.jsx)(g.Z,{tooltip:"Add Replication Sites",text:"Add Sites",variant:"contained",color:"primary",disabled:K,icon:(0,M.jsx)(v.dt,{}),onClick:function(){b(!0)}})]}),z?(0,M.jsx)(B,{sites:u,onDeleteSite:G,onRefresh:L}):null,D?(0,M.jsx)(l.Z,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"calc( 100vh - 450px )"},children:(0,M.jsx)(E.Z,{style:{width:16,height:16}})}):null,z||D?null:(0,M.jsx)(l.Z,{sx:{padding:"30px",border:"1px solid #eaeaea",marginTop:"15px",marginBottom:"15px",height:"calc( 100vh - 450px )"},children:"Site Replication is not configured."}),h?(0,M.jsx)(P,{existingSites:u,onClose:function(){b(!1),L()}}):null,(0,M.jsx)(N.Z,{title:"Site Replication",iconComponent:(0,M.jsx)(v.D7,{}),help:(0,M.jsxs)(r.Fragment,{children:["This feature allows multiple independent MinIO sites (or clusters) that are using the same external IDentity Provider (IDP) to be configured as replicas. In this situation the set of replica sites are referred to as peer sites or just sites.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"You can learn more at our"," ",(0,M.jsx)("a",{href:"https://github.com/minio/minio/tree/master/docs/site-replication?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})}),k?(0,M.jsx)(j.Z,{title:"Delete All",confirmText:"Delete",isOpen:!0,titleIcon:(0,M.jsx)(v.Nv,{}),isLoading:!1,onConfirm:function(){var e=u.map((function(e){return e.name}));G(!0,e)},onClose:function(){I(!1)},confirmationContent:(0,M.jsx)(d.Z,{children:"Are you sure you want to remove all the replication sites?."})}):null]})]})}))},76278:function(e,t,n){var i=n(4942),o=n(63366),r=n(87462),a=n(72791),s=n(28182),l=n(90767),d=n(12065),c=n(47630),p=n(93736),u=n(95080),x=n(40162),m=n(42071),f=n(66199),h=n(34065),g=n(80184),Z=["alignItems","autoFocus","component","children","dense","disableGutters","divider","focusVisibleClassName","selected"],v=(0,c.ZP)(u.Z,{shouldForwardProp:function(e){return(0,c.FO)(e)||"classes"===e},name:"MuiListItemButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dense&&t.dense,"flex-start"===n.alignItems&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)((t={display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:n.transitions.create("background-color",{duration:n.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:n.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},(0,i.Z)(t,"&.".concat(h.Z.selected),(0,i.Z)({backgroundColor:(0,d.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)},"&.".concat(h.Z.focusVisible),{backgroundColor:(0,d.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.focusOpacity)})),(0,i.Z)(t,"&.".concat(h.Z.selected,":hover"),{backgroundColor:(0,d.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(0,d.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)}}),(0,i.Z)(t,"&.".concat(h.Z.focusVisible),{backgroundColor:n.palette.action.focus}),(0,i.Z)(t,"&.".concat(h.Z.disabled),{opacity:n.palette.action.disabledOpacity}),t),o.divider&&{borderBottom:"1px solid ".concat(n.palette.divider),backgroundClip:"padding-box"},"flex-start"===o.alignItems&&{alignItems:"flex-start"},!o.disableGutters&&{paddingLeft:16,paddingRight:16},o.dense&&{paddingTop:4,paddingBottom:4})})),j=a.forwardRef((function(e,t){var n=(0,p.Z)({props:e,name:"MuiListItemButton"}),i=n.alignItems,d=void 0===i?"center":i,c=n.autoFocus,u=void 0!==c&&c,j=n.component,b=void 0===j?"div":j,y=n.children,S=n.dense,C=void 0!==S&&S,k=n.disableGutters,I=void 0!==k&&k,w=n.divider,R=void 0!==w&&w,M=n.focusVisibleClassName,B=n.selected,E=void 0!==B&&B,D=(0,o.Z)(n,Z),F=a.useContext(f.Z),L={dense:C||F.dense||!1,alignItems:d,disableGutters:I},P=a.useRef(null);(0,x.Z)((function(){u&&P.current&&P.current.focus()}),[u]);var N=(0,r.Z)({},n,{alignItems:d,dense:L.dense,disableGutters:I,divider:R,selected:E}),T=function(e){var t=e.alignItems,n=e.classes,i=e.dense,o=e.disabled,a={root:["root",i&&"dense",!e.disableGutters&&"gutters",e.divider&&"divider",o&&"disabled","flex-start"===t&&"alignItemsFlexStart",e.selected&&"selected"]},s=(0,l.Z)(a,h.t,n);return(0,r.Z)({},n,s)}(N),O=(0,m.Z)(P,t);return(0,g.jsx)(f.Z.Provider,{value:L,children:(0,g.jsx)(v,(0,r.Z)({ref:O,component:b,focusVisibleClassName:(0,s.Z)(T.focusVisible,M),ownerState:N},D,{classes:T,children:y}))})}));t.Z=j},79834:function(e,t,n){n.d(t,{Z:function(){return h}});var i=n(63366),o=n(87462),r=n(72791),a=n(28182),s=n(90767),l=n(47630),d=n(93736),c=n(14036),p=n(95159);function u(e){return(0,p.Z)("MuiListSubheader",e)}(0,n(30208).Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var x=n(80184),m=["className","color","component","disableGutters","disableSticky","inset"],f=(0,l.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"default"!==n.color&&t["color".concat((0,c.Z)(n.color))],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:t.palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14)},"primary"===n.color&&{color:t.palette.primary.main},"inherit"===n.color&&{color:"inherit"},!n.disableGutters&&{paddingLeft:16,paddingRight:16},n.inset&&{paddingLeft:72},!n.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:t.palette.background.paper})})),h=r.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiListSubheader"}),r=n.className,l=n.color,p=void 0===l?"default":l,h=n.component,g=void 0===h?"li":h,Z=n.disableGutters,v=void 0!==Z&&Z,j=n.disableSticky,b=void 0!==j&&j,y=n.inset,S=void 0!==y&&y,C=(0,i.Z)(n,m),k=(0,o.Z)({},n,{color:p,component:g,disableGutters:v,disableSticky:b,inset:S}),I=function(e){var t=e.classes,n=e.color,i=e.disableGutters,o=e.inset,r=e.disableSticky,a={root:["root","default"!==n&&"color".concat((0,c.Z)(n)),!i&&"gutters",o&&"inset",!r&&"sticky"]};return(0,s.Z)(a,u,t)}(k);return(0,x.jsx)(f,(0,o.Z)({as:g,className:(0,a.Z)(I.root,r),ref:t,ownerState:k},C))}))}}]); +//# sourceMappingURL=3208.c0b88007.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3208.c0b88007.chunk.js.map b/portal-ui/build/static/js/3208.c0b88007.chunk.js.map new file mode 100644 index 000000000..dc3c4b843 --- /dev/null +++ b/portal-ui/build/static/js/3208.c0b88007.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3208.c0b88007.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,0DCpCX,IAvBe,SACbK,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,wMCyJVC,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAehD,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACR+C,EAAAA,IADO,IAEVC,QAAS,CACPC,QAAS,GACT1C,cAAe,GAEjB2C,iBAAkB,CAChBjC,MAAO,OACPkC,SAAU,MAETC,EAAAA,OA4HP,CAAkCZ,GAzHb,SAAC,GAWF,IAVlBa,EAUiB,EAVjBA,QACAC,EASiB,EATjBA,UACAjC,EAQiB,EARjBA,MACAkC,EAOiB,EAPjBA,SACApC,EAMiB,EANjBA,QAMiB,IALjBqC,UAAAA,OAKiB,SAJjBb,EAIiB,EAJjBA,kBACAc,EAGiB,EAHjBA,iBACAX,EAEiB,EAFjBA,qBAEiB,IADjBY,UAAAA,OACiB,MADL,KACK,EACjB,GAAwC7B,EAAAA,EAAAA,WAAkB,GAA1D,eAAO8B,EAAP,KAAqBC,EAArB,MAEAC,EAAAA,EAAAA,YAAU,WACRf,EAAqB,MACpB,CAACA,KAEJe,EAAAA,EAAAA,YAAU,WACR,GAAIlB,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBmB,QAEpB,YADAF,GAAgB,GAIa,UAA3BjB,EAAkBoB,MACpBH,GAAgB,MAGnB,CAACjB,IAEJ,IAKMqB,EAAaR,EACf,CACErC,QAAS,CACP8C,MAAO9C,EAAQ+B,mBAGnB,CAAEC,SAAU,KAAee,WAAW,GAEtCJ,EAAU,GAYd,OAVInB,IACFmB,EAAUnB,EAAkBwB,kBAEa,KAAvCxB,EAAkBwB,kBAClBxB,EAAkBwB,iBAAiBC,OAAS,KAE5CN,EAAUnB,EAAkBmB,WAK9B,UAAC,KAAD,gBACEO,KAAMf,EACNnC,QAASA,GACL6C,GAHN,IAIEM,OAAQ,QACRjB,QAAS,SAACkB,EAAOC,GACA,kBAAXA,GACFnB,KAGJ9B,UAAWJ,EAAQlB,KAVrB,WAYE,UAAC,IAAD,CAAasB,UAAWJ,EAAQE,MAAhC,WACE,iBAAKE,UAAWJ,EAAQsD,UAAxB,UACGf,EADH,IACerC,MAEf,gBAAKE,UAAWJ,EAAQuD,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXC,GAAI,QACJpD,UAAWJ,EAAQyD,YACnBC,QAASxB,EACTyB,eAAa,EACbC,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWC,SAAS,KACpB,SAAC,IAAD,CACEX,KAAMV,EACNpC,UAAWJ,EAAQ8D,cACnB5B,QAAS,WA3DbO,GAAgB,GAChBd,EAAqB,KA6DjBgB,QAASA,EACToB,aAAc,CACZ3D,UAAU,GAAD,OAAKJ,EAAQgE,SAAb,YACPxC,GAAgD,UAA3BA,EAAkBoB,KACnC5C,EAAQiE,cACR,KAGRC,iBACE1C,GAAgD,UAA3BA,EAAkBoB,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAexC,UAAWkC,EAAmB,GAAKtC,EAAQ6B,QAA1D,SACGO,a,wXCwST,GAJkBd,EAAAA,EAAAA,IAAQ,KAAM,CAC9B6C,qBAAAA,EAAAA,GACAC,mBAAAA,EAAAA,IAEF,EAAyBzF,EAAAA,EAAAA,IAhaV,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACRwF,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OA4ZkB5F,EAzZA,SAAC,GAcnB,IAbL6F,EAaI,EAbJA,MACAC,EAYI,EAZJA,aACAN,EAWI,EAXJA,qBACAC,EAUI,EAVJA,mBACAM,EASI,EATJA,UACA1E,EAQI,EARJA,QASA,EAAgC2E,EAAAA,SAAuB,IAAvD,eAAOC,EAAP,KAEA,GAFA,MAE4ClE,EAAAA,EAAAA,UAAiB,KAA7D,eAAOmE,EAAP,KAAsBC,EAAtB,KACA,GAAgCpE,EAAAA,EAAAA,UAAc,MAA9C,eAAOqE,EAAP,KAAiBC,EAAjB,KACA,GAAgDtE,EAAAA,EAAAA,UAAiB,IAAjE,eAAOuE,EAAP,KAAyBC,EAAzB,KAMA,GAAuCC,EAAAA,EAAAA,IACrC,SAACjE,GACKA,EAAIkE,SACNJ,EAAY,MACZZ,EAAmBlD,EAAImE,SAEvBlB,EAAqB,CACnBmB,aAAc,QACdC,cAAerE,EAAImE,SAGvBX,OAEF,SAACtD,GACC+C,EAAqB/C,GACrBsD,OAfJ,eAAOc,EAAP,KAAkBC,EAAlB,KA2BIC,GAAqB,EAEzB,IACE,IAAIC,IAAIV,GACRS,GAAqB,EACrB,MAAOtE,GACPsE,GAAqB,EAGvB,OACE,SAACE,EAAA,EAAD,WACE,UAACC,EAAA,EAAD,CACEC,GAAI,CACFhG,MAAO,OACPiG,KAAM,EACNjE,QAAS,IACTkE,UAAW,OACXnG,OAAQ,wBACRd,OAAQ,oBACRU,aAAc,QAEhBwG,UAAU,MACV,kBAAgB,wBAXlB,WAaE,SAACL,EAAA,EAAD,CACEE,GAAI,CACFtG,WAAY,IACZ0G,aAAc,oBACdpE,QAAS,uBAJb,sCASC0C,EAAM2B,KAAI,SAACC,EAAUC,GACpB,IAAMC,EAAG,UAAMF,EAASG,MAClBC,EAAa5B,IAAawB,EAASG,KASzC,OACE,UAAC,WAAD,YACE,UAACE,EAAA,EAAD,CACE9C,eAAa,EACbvD,UAAWoG,EAAa,WAAa,GACrCV,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZZ,OAAQ,oBACR2H,WAAY,IACZC,YAAa,IACbC,UAAW,IACX9E,QAAS,oBACT,UAAW,CACT+E,WAAY,aAEd,aAAc,CACZpH,aAAc,MAfpB,WAmBE,UAACmG,EAAA,EAAD,CACEE,GAAI,CACFC,KAAM,EACNrG,QAAS,OACToH,oBAAqB,CACnBC,GAAI,aALV,WASE,SAACnB,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZqH,SAAU,UAJd,SAOGZ,EAASG,QAEZ,UAACX,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZqH,SAAU,UAJd,UAOGZ,EAASa,WACR,SAACC,EAAA,EAAD,CAAShH,MAAO,oBAAqBiH,UAAU,MAA/C,UACE,SAACvB,EAAA,EAAD,CACEE,GAAI,CACF,cAAe,CACbjG,OAAQ,OACRuH,KAAM,UAJZ,UAQE,SAAC,KAAD,QAGF,MACJ,SAACF,EAAA,EAAD,CAAShH,MAAOkG,EAASiB,SAAzB,UACE,SAACzB,EAAA,EAAD,CACEE,GAAI,CACFkB,SAAU,SACVM,aAAc,WACdC,WAAY,SACZC,WAAYpB,EAASa,UAAY,GAAK,QAL1C,SAQGb,EAASiB,oBAMlB,UAACzB,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACT8H,WAAY,OACZ5H,YAAa,OACbE,MAAO,OACP2H,WAAY,EAEZ,WAAY,CACVzI,aAAc,MACd6H,WAAY,UACZ9H,OAAQ,OAER,UAAW,CACT8H,WAAY,WAGd,QAAS,CACPO,KAAM,aAlBd,WAuBE,SAACM,EAAA,EAAD,CACEC,QACEnD,EAAMvB,QAAU,EACZ,iDACA,cAEN2E,KAAM,GACNC,QAAQ,WACRC,MAAM,YACNC,SAAUvD,EAAMvB,QAAU,EAC1B+E,MAAM,SAACC,EAAA,EAAD,IACNvE,QAAS,SAACwE,GACRA,EAAEC,iBACFrD,EAAmBwB,OAGvB,SAACoB,EAAA,EAAD,CACEC,QAAS,gBACTC,KAAM,GACNC,QAAQ,YACRC,MAAM,UACNE,MAAM,SAAC,KAAD,IACNtE,QAAS,SAACwE,GACRA,EAAEC,iBACFnD,EAAYoB,UAyChB,SAACR,EAAA,EAAD,CACEE,GAAI,CACFjG,OAAQ,OACRC,MAAO,aAKd0G,GACC,UAACZ,EAAA,EAAD,CAEEE,GAAI,CACF/G,OAAQ,oBACR2H,WAAY,IACZC,YAAa,IACbC,UAAW,KANf,WASE,SAACwB,EAAA,EAAD,CAEEnC,UAAU,MACVH,GAAI,CAAE5G,YAAa,QAHrB,yCACUmH,EADV,oBAQA,SAACgC,EAAA,EAAD,CACEC,GAAI9B,EACJ+B,QAAQ,OACRC,eAAa,EACb1C,GAAI,CACFhG,MAAO,OACPiG,KAAM,EACNrG,QAAS,OACToC,QAAS,CAAE2G,GAAI,YAAalI,GAAI,aAChC,8BAA+B,CAC7Bb,QAAS,OACTgJ,SAAU,SACVC,IAAK,SAZX,2BAjBF,UACUvC,EAASG,OAmCjB,KAEH1B,IAAkByB,GACjB,SAACsC,EAAA,EAAD,CACE1I,MAAK,0BACL2I,YAAa,SACbC,QAAQ,EACRvG,WAAW,SAAC,KAAD,IACX5B,WAAW,EACXoI,UAAW,WACTtE,GAAa,EAAO,CAAC6B,KAEvBpE,QAAS,WACP4C,EAAmB,KAErBkE,qBACE,UAACC,EAAA,EAAD,mEACwD,IACrD3C,EAFH,UAMF,MAEK,OAARvB,QAAQ,IAARA,OAAA,EAAAA,EAAUwB,QAASD,GAClB,UAAC4C,EAAA,EAAD,CACEhJ,MAAK,6BACLiC,WAAW,EACXI,WAAW,SAAC,KAAD,IACXL,QAAS,WACP8C,EAAY,OALhB,WAQE,UAACiE,EAAA,EAAD,YACE,UAACrD,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTgJ,SAAU,SACVjJ,aAAc,QAJlB,WAOE,UAACmG,EAAA,EAAD,CAAKE,GAAI,CAAErG,aAAc,QAAzB,WACE,sCADF,IAC0B,KACvBsF,EAASwB,SAEZ,UAACX,EAAA,EAAD,CAAKE,GAAI,CAAErG,aAAc,QAAzB,WACE,kDADF,IACsC,KACnCsF,EAASsC,gBAId,UAAC8B,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAf,WACE,SAACqF,EAAA,EAAD,CAAKE,GAAI,CAAErG,aAAc,OAAzB,6BACA,SAAC2J,EAAA,EAAD,CACE5F,GAAG,yBACH+C,KAAK,yBACL8C,YAAa,gCACbC,SAAU,SACRlG,GAEA8B,EAAoB9B,EAAMmG,OAAOC,QAEnCC,MAAM,GACND,MAAOvE,WAKb,UAACkE,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ0J,eAAtC,WACE,SAACC,EAAA,EAAD,CACE/G,KAAK,SACLiF,QAAQ,WACRC,MAAM,UACNpE,QAAS,WACPsB,EAAY,OALhB,oBAUA,SAAC2E,EAAA,EAAD,CACE/G,KAAK,SACLiF,QAAQ,YACRC,MAAM,UACNC,SAAUvC,IAAcE,EACxBhC,QAAS,WAxV3B+B,EAAkB,MAAD,gCAAyC,CACxD4B,SAAUpC,EACVsB,KAAMxB,EAASwB,KACfqD,aAAc7E,EAAS8E,gBAgVT,0BAaF,OA3SevD,e,iCCrH3BwD,EAAkB,SAACC,GACvB,IAAIrE,GAAqB,EAEzB,IACE,IAAIC,IAAIoE,GACRrE,GAAqB,EACrB,MAAOtE,GACPsE,GAAqB,EAEvB,OAAIA,GAA6B,KAAPqE,EACjB,GAEA,oBAoXX,GAJkBzI,EAAAA,EAAAA,IAAQ,KAAM,CAC9B6C,qBAAAA,EAAAA,GACAC,mBAAAA,EAAAA,IAEF,EAjXiC,SAAC,GAU3B,IAAD,IATJ4F,cAAAA,OASI,MATY,GASZ,EARJ9H,EAQI,EARJA,QACAiC,EAOI,EAPJA,qBACAC,EAMI,EANJA,mBAOM6F,EAA+B,OAAbD,QAAa,IAAbA,GAAAA,EAAe/G,OACnC,CAAC,CAAEoE,SAAU,GAAId,KAAM,KACvB,CACE,CAAEc,SAAU,GAAId,KAAM,IACtB,CAAEc,SAAU,GAAId,KAAM,KAG5B,GAAkC7F,EAAAA,EAAAA,UAAiB,IAAnD,eAAOwJ,EAAP,KAAkBC,EAAlB,KACA,GAAkCzJ,EAAAA,EAAAA,UAAiB,IAAnD,eAAO0J,EAAP,KAAkBC,EAAlB,KACA,GAAoC3J,EAAAA,EAAAA,UAAyBuJ,GAA7D,eAAOK,EAAP,KAAmBC,EAAnB,KAEMC,EACJF,EAAWG,QAAO,SAACC,EAAeC,EAAIC,GACpC,IAAMC,EAAUP,EAAWM,GAAGvD,SACxByD,EAAYhB,EAAgBe,GAKlC,MAHkB,KAAdC,GAAgC,KAAZD,GACtBH,EAAIK,KAAKD,GAEJJ,IACN,IAAIzH,SAAWqH,EAAWrH,OAE/B,GAAqCkC,EAAAA,EAAAA,IACnC,SAACjE,GACKA,EAAIkE,SACNhB,EAAmBlD,EAAImE,QACvBnD,KAEAiC,EAAqB,CACnBmB,aAAc,QACdC,cAAerE,EAAImE,YAIzB,SAACjE,GACC+C,EAAqB/C,MAbzB,eAAO4J,EAAP,KAAiBC,EAAjB,KAmDA,OACE,UAAC/B,EAAA,EAAD,CACE/G,WAAW,EACXD,QAASA,EACThC,MAAK,4BACLqC,WAAW,SAAC,KAAD,IACX,eAAc,6BALhB,UAOGyI,GAAW,SAACE,EAAA,EAAD,IAAqB,MACjC,kBACEC,YAAU,EACVC,aAAa,MACbC,SAAU,SAACnD,GAET,OADAA,EAAEC,iBAzCiB,WACzB,IAAMmD,EAAkB,OAAGtB,QAAH,IAAGA,OAAH,EAAGA,EAAe7D,KAAI,SAACoF,EAAIC,GACjD,MAAO,CACLtB,UAAWA,EACXE,UAAWA,EACX7D,KAAMgF,EAAGhF,KACTc,SAAUkE,EAAGlE,aAIXoE,EAAgBnB,EAAWG,QAAO,SAACC,EAAUgB,EAAIF,GASrD,OARIE,EAAGrE,UACLqD,EAAIK,KAAK,CACPb,UAAWA,EACXE,UAAWA,EACX7D,KAAMmF,EAAGnF,MAAH,kBAAsBiF,GAC5BnE,SAAUqE,EAAGrE,WAGVqD,IACN,IAEHO,EAAiB,OAAD,kDACVK,GAAsB,KADZ,OAEVG,GAAiB,MAkBVE,IALX,WAQE,SAACxC,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAId,aAAc,OAAjC,UACE,UAACmG,EAAA,EAAD,CACEE,GAAI,CACF8F,UAAW,SACXlM,QAAS,OACTC,WAAY,SACZJ,SAAU,QALd,WAQE,SAACqG,EAAA,EAAD,CAAKE,GAAI,CAAEtG,WAAY,KAAvB,mBAA0C,KAC1C,SAACoG,EAAA,EAAD,CAAKE,GAAI,CAAE0B,WAAY,OAAvB,0EAKJ,SAAC2B,EAAA,GAAD,CACE7I,MAAI,EACJC,GAAI,GACJd,aAAc,OACdqG,GAAI,CACF,eAAgB,CACdtG,WAAY,WANlB,UAUE,SAAC4J,EAAA,EAAD,CACE5F,GAAG,sBACH+C,KAAK,sBACL+C,SAAU,SAAClG,GACT+G,EAAa/G,EAAMmG,OAAOC,QAE5BC,MAAM,aACNoC,UAAU,EACVrC,MAAOU,EACP4B,MAAqB,KAAd5B,EAAmB,0BAA4B,GACtD,eAAc,4BAGlB,SAACf,EAAA,GAAD,CACE7I,MAAI,EACJC,GAAI,GACJd,aAAc,OACdqG,GAAI,CACF,eAAgB,CACdtG,WAAY,WANlB,UAUE,SAAC4J,EAAA,EAAD,CACE5F,GAAG,sBACH+C,KAAK,sBACL3D,KAAM,WACNiJ,UAAU,EACVvC,SAAU,SAAClG,GACTiH,EAAajH,EAAMmG,OAAOC,QAE5BsC,MAAqB,KAAd1B,EAAmB,0BAA4B,GACtDX,MAAM,aACND,MAAOY,EACP,eAAc,4BAIlB,SAACjB,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAf,UACE,SAACqF,EAAA,EAAD,CAAKE,GAAI,CAAErG,aAAc,OAAQF,SAAU,OAAQC,WAAY,KAA/D,2BAKF,UAACoG,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACToH,oBAAqB,kBACrB/H,OAAQ,oBACR+C,QAAS,OACT6G,IAAK,OACLoD,UAAW,QACXC,UAAW,QARf,WAWE,SAACpG,EAAA,EAAD,CACEE,GAAI,CACFvG,SAAU,OACViI,WAAY,OAHhB,wBAQA,UAAC5B,EAAA,EAAD,CAAKE,GAAI,CAAEvG,SAAU,OAAQiI,WAAY,OAAzC,sBAA4D,QAC5D,SAAC5B,EAAA,EAAD,gBApBF,OAqBGoE,QArBH,IAqBGA,OArBH,EAqBGA,EAAe7D,KAAI,SAAC8F,EAAI5F,GACvB,OACE,UAAC,EAAA6F,SAAD,YACE,SAACtG,EAAA,EAAD,WACE,SAACwD,EAAA,EAAD,CACE5F,GAAE,+BAA0B6C,GAC5BE,KAAI,+BAA0BF,GAC9B8F,gBAAiB,CACfC,UAAU,GAEZ3C,MAAM,GACND,MAAOyC,EAAG1F,KACV+C,SAAU,kBAGd,SAAC1D,EAAA,EAAD,WACE,SAACwD,EAAA,EAAD,CACE5F,GAAE,kCAA6B6C,GAC/BE,KAAI,kCAA6BF,GACjC8F,gBAAiB,CACfC,UAAU,GAEZ3C,MAAM,GACND,MAAOyC,EAAG5E,SACViC,SAAU,kBAGd,SAACH,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAf,SACG,QA1BU0L,EAAG1F,SAgCrB+D,EAAWnE,KAAI,SAACkG,EAAKhG,GACpB,IAAIiG,GAAgB,EAQpB,OANiB,OAAbtC,QAAa,IAAbA,GAAAA,EAAe/G,QAAoB,IAAVoD,IAElB,OAAC2D,QAAD,IAACA,IAAAA,EAAe/G,SAAUoD,EAAQ,KAD3CiG,GAAgB,IAMhB,UAAC,EAAAJ,SAAD,YACE,SAACtG,EAAA,EAAD,WACE,SAACwD,EAAA,EAAD,CACE5F,GAAE,4BAAuB6C,GACzBE,KAAI,4BAAuBF,GAC3BgD,YAAW,kBAAahD,GACxBoD,MAAM,GACND,MAAK,UAAK6C,EAAI9F,MACd+C,SAAU,SAACpB,GACT,IAAMqE,EAAUrE,EAAEqB,OAAOC,MACzBe,GAAc,SAACiC,GACb,OAAOA,EAAUrG,KAAI,SAAC7F,EAAMmM,GAAP,OACnBA,IAAOpG,GAAP,kBAAoB/F,GAApB,IAA0BiG,KAAMgG,IAAYjM,SAIlD,gDAAwC+F,QAG5C,SAACT,EAAA,EAAD,WACE,SAACwD,EAAA,EAAD,CACE5F,GAAE,+BAA0B6C,GAC5BE,KAAI,+BAA0BF,GAC9BgD,YAAW,sCAAiChD,GAC5CoD,MAAM,GACNqC,MAAOhC,EAAgBQ,EAAWjE,GAAOgB,UACzCmC,MAAK,UAAK6C,EAAIhF,UACdiC,SAAU,SAACpB,GACT,IAAMwE,EAAQxE,EAAEqB,OAAOC,MACvBe,GAAc,SAACiC,GACb,OAAOA,EAAUrG,KAAI,SAAC7F,EAAMmM,GAAP,OACnBA,IAAOpG,GAAP,kBAAoB/F,GAApB,IAA0B+G,SAAUqF,IAAUpM,SAIpD,8CAAsC+F,QAG1C,SAAC8C,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAIZ,WAAY,SAAUD,QAAS,OAAlD,UACE,UAACkG,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZgN,eAAgB,SAChBC,UAAW,WACX5G,UAAW,MAEX,WAAY,CACV6G,YAAa,UACb/E,MAAO,UACP9I,aAAc,QAXpB,WAeE,SAAC0I,EAAA,EAAD,CACEC,QAAS,YACTC,KAAM,GACNC,QAAQ,WACRC,MAAM,UACNE,MAAM,SAAC,KAAD,IACNtE,QAAS,SAACwE,GACRA,EAAEC,iBACF,IAAM2E,GAAO,OAAOxC,GAEpBwC,EAAQC,OAAO1G,EAAQ,EAAG,EAAG,CAC3BE,KAAM,GACNc,SAAU,KAGZkD,EAAcuC,OAGlB,SAACpF,EAAA,EAAD,CACEC,QAAS,aACTC,KAAM,GACNC,QAAQ,WACRE,SAAUuE,EACVxE,MAAM,UACNE,MAAM,SAAC,KAAD,IACNtE,QAAS,SAACwE,GACRA,EAAEC,iBACFoC,EACED,EAAW0C,QAAO,SAACC,EAAGzB,GAAJ,OAAYA,IAAQnF,gBAlFlD,UAAkBA,WA6FxB,SAAC8C,EAAA,GAAD,CAAM7I,MAAI,EAACC,GAAI,GAAf,UACE,UAACqF,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZgN,eAAgB,WAChB3G,UAAW,OACX2C,IAAK,QANT,WASE,SAACgB,EAAA,EAAD,CACE/G,KAAK,SACLiF,QAAQ,WACRC,MAAM,UACNC,SAAUiD,EACVtH,QArSM,WAChByG,EAAa,IACbE,EAAa,IACbE,EAAcN,IA6RN,oBAUA,SAACN,EAAA,EAAD,CACE/G,KAAK,SACLiF,QAAQ,YACRC,MAAM,UACNC,SACEiD,IAAad,IAAcE,IAAcI,EAL7C,gC,WC9JZ,GALkBlJ,EAAAA,EAAAA,IAAQ,KAAM,CAC9B6C,qBAAAA,EAAAA,GACAC,mBAAAA,EAAAA,IAGF,EAvMwB,SAAC,GAIlB,IAHLA,EAGI,EAHJA,mBAIA,GAA0B1D,EAAAA,EAAAA,UAAS,IAAnC,eAAO8D,EAAP,KAAc0I,EAAd,KAEA,GAAkCxM,EAAAA,EAAAA,WAAS,GAA3C,eAAOyM,EAAP,KAAkBC,EAAlB,KAEA,GAAoC1M,EAAAA,EAAAA,WAAS,GAA7C,eAAO2M,EAAP,KAAkBC,EAAlB,KACA,GAA+CnI,EAAAA,EAAAA,IAC7C,SAACjE,GACC,IAAeqM,EAAgCrM,EAAvCsD,MAAuBgJ,EAAgBtM,EAAtBqF,KAEnBkH,EAAWF,EAASG,WAAU,SAACC,GAAD,OAAaA,EAAGpH,OAASiH,KAC7D,IAAkB,IAAdC,EAAiB,CACnB,IAAIG,EAAUL,EAASE,GACvBG,GAAO,kBACFA,GADE,IAEL3G,WAAW,IAEbsG,EAASR,OAAOU,EAAU,EAAGG,GAG/BL,EAASM,MAAK,SAACC,EAAQC,GACrB,OAAOD,EAAEvH,OAASiH,GAAe,EAAIO,EAAExH,OAASiH,EAAc,EAAI,KAEpEN,EAASK,MAEX,SAACnM,GACC8L,EAAS,OApBb,eAAOc,EAAP,KAA0BC,EAA1B,KAwBMC,EAAW,WACfD,EAAkB,MAAD,kCAGnB,GAA0C9I,EAAAA,EAAAA,IACxC,SAACjE,GACCoM,GAAe,GACflJ,EAAmB,yBACnB8J,OAEF,SAAC9M,IACC+C,EAAAA,EAAAA,IAAqB/C,MAPzB,eAAO+M,EAAP,KAAmBC,EAAnB,KAWMC,EAAc,WAAsD,IAArDC,EAAoD,wDAA5BC,EAA4B,uDAAP,GAChEH,EAAoB,SAAD,gCAA4C,CAC7DI,IAAKF,EACL9J,MAAO+J,MAIX7L,EAAAA,EAAAA,YAAU,WACRwL,MAEC,IAEH,IAAMO,EAAQ,OAAGjK,QAAH,IAAGA,OAAH,EAAGA,EAAOvB,OAExB,OACE,UAAC,EAAAiJ,SAAD,YACE,SAACwC,EAAA,EAAD,CAAYjF,MAAO,sBACnB,UAACkF,EAAA,EAAD,YACE,UAAC/I,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTC,WAAY,SACZgN,eAAgB,YAJpB,UAOG8B,GACC,SAAC7I,EAAA,EAAD,WACE,SAAC8B,EAAA,EAAD,CACEC,QAAS,aACTC,KAAM,aACNC,QAAQ,WACRC,MAAM,YACNC,SAAUoG,EACVnG,MAAM,SAACC,EAAA,EAAD,IACNvE,QAAS,WACP4J,GAAe,QAInB,MACJ,SAAC5F,EAAA,EAAD,CACEC,QAAS,wBACTC,KAAM,YACNC,QAAQ,YACRC,MAAM,UACNC,SAAUoG,EACVnG,MAAM,SAAC,KAAD,IACNtE,QAAS,WACP0J,GAAa,SAIlBqB,GACC,SAAC,EAAD,CACEjK,MAAOA,EACPC,aAAc4J,EACd3J,UAAWwJ,IAEX,KACHF,GACC,SAACpI,EAAA,EAAD,CACEE,GAAI,CACFpG,QAAS,OACTiN,eAAgB,SAChBhN,WAAY,SACZE,OAAQ,yBALZ,UAQE,SAAC+O,EAAA,EAAD,CAAQC,MAAO,CAAE/O,MAAO,GAAID,OAAQ,QAEpC,KACF4O,GAAaT,EAYX,MAXF,SAACpI,EAAA,EAAD,CACEE,GAAI,CACFhE,QAAS,OACT/C,OAAQ,oBACRiH,UAAW,OACXvG,aAAc,OACdI,OAAQ,yBANZ,iDAaDsN,GACC,SAAC,EAAD,CACEnD,cAAexF,EACftC,QAAS,WACPkL,GAAa,GACbc,OAGF,MAEJ,SAACY,EAAA,EAAD,CACE5O,MAAO,mBACPD,eAAe,SAAC,KAAD,IACfE,MACE,UAAC,EAAA+L,SAAD,gQAKE,mBACA,kBANF,4BAO4B,KAC1B,cACE6C,KAAK,2EACLxF,OAAO,SACPyF,IAAI,aAHN,2BARF,SAoBH3B,GACC,SAACzE,EAAA,EAAD,CACE1I,MAAK,aACL2I,YAAa,SACbC,QAAQ,EACRvG,WAAW,SAAC,KAAD,IACX5B,WAAW,EACXoI,UAAW,WACT,IAAMkG,EAAYzK,EAAM2B,KAAI,SAAC+I,GAAD,OAAYA,EAAE3I,QAC1C8H,GAAY,EAAMY,IAEpB/M,QAAS,WACPoL,GAAe,IAEjBtE,qBACE,SAACC,EAAA,EAAD,4EAKF,e,8LClONkG,EAAY,CAAC,aAAc,YAAa,YAAa,WAAY,QAAS,iBAAkB,UAAW,wBAAyB,YAsChIC,GAAqBC,EAAAA,EAAAA,IAAOC,EAAAA,EAAY,CAC5CC,kBAAmB,SAAAC,GAAI,OAAIC,EAAAA,EAAAA,IAAsBD,IAAkB,YAATA,GAC1DjJ,KAAM,oBACNmJ,KAAM,OACNC,kBA5B+B,SAACC,EAAOC,GACvC,IACEC,EACEF,EADFE,WAEF,MAAO,CAACD,EAAO/Q,KAAMgR,EAAWC,OAASF,EAAOE,MAAiC,eAA1BD,EAAWnQ,YAA+BkQ,EAAOG,oBAAqBF,EAAWG,SAAWJ,EAAOI,SAAUH,EAAWI,gBAAkBL,EAAOM,WAoB/Kd,EAKxB,kBACDzQ,EADC,EACDA,MACAkR,EAFC,EAEDA,WAFC,OAGGM,EAAAA,EAAAA,IAAQ,GACZ1Q,QAAS,OACT2Q,SAAU,EACV1D,eAAgB,aAChBhN,WAAY,SACZ2Q,SAAU,WACVC,eAAgB,OAChBC,UAAW,aACXC,UAAW,OACXtR,WAAY,EACZC,cAAe,EACfsR,WAAY9R,EAAM+R,YAAYC,OAAO,mBAAoB,CACvDC,SAAUjS,EAAM+R,YAAYE,SAASC,WAEvC,UAAW,CACTP,eAAgB,OAChBtR,gBAAiBL,EAAMmS,QAAQC,OAAOC,MAEtC,uBAAwB,CACtBhS,gBAAiB,kBAnBT,qBAsBNiS,EAAAA,EAAAA,WAtBM,QAuBVjS,iBAAiBkS,EAAAA,EAAAA,IAAMvS,EAAMmS,QAAQK,QAAQC,KAAMzS,EAAMmS,QAAQC,OAAOM,kBAvB9D,YAwBJJ,EAAAA,EAAAA,cAAuC,CAC3CjS,iBAAiBkS,EAAAA,EAAAA,IAAMvS,EAAMmS,QAAQK,QAAQC,KAAMzS,EAAMmS,QAAQC,OAAOM,gBAAkB1S,EAAMmS,QAAQC,OAAOO,kBAzBvG,qBA4BNL,EAAAA,EAAAA,SA5BM,UA4BmC,CAC7CjS,iBAAiBkS,EAAAA,EAAAA,IAAMvS,EAAMmS,QAAQK,QAAQC,KAAMzS,EAAMmS,QAAQC,OAAOM,gBAAkB1S,EAAMmS,QAAQC,OAAOQ,cAE/G,uBAAwB,CACtBvS,iBAAiBkS,EAAAA,EAAAA,IAAMvS,EAAMmS,QAAQK,QAAQC,KAAMzS,EAAMmS,QAAQC,OAAOM,qBAhChE,qBAmCNJ,EAAAA,EAAAA,cAAuC,CAC3CjS,gBAAiBL,EAAMmS,QAAQC,OAAOS,SApC5B,qBAsCNP,EAAAA,EAAAA,UAAmC,CACvCQ,QAAS9S,EAAMmS,QAAQC,OAAOW,kBAvCpB,GAyCX7B,EAAWG,SAAW,CACvB/J,aAAc,aAAF,OAAetH,EAAMmS,QAAQd,SACzC2B,eAAgB,eACW,eAA1B9B,EAAWnQ,YAA+B,CAC3CA,WAAY,eACVmQ,EAAWI,gBAAkB,CAC/BhR,YAAa,GACbG,aAAc,IACbyQ,EAAWC,OAAS,CACrB5Q,WAAY,EACZC,cAAe,OAEXqH,EAA8B9B,EAAAA,YAAiB,SAAwBkN,EAASC,GACpF,IAAMlC,GAAQmC,EAAAA,EAAAA,GAAc,CAC1BnC,MAAOiC,EACPtL,KAAM,sBAGR,EAUIqJ,EATFjQ,WAAAA,OADF,MACe,SADf,IAUIiQ,EARFoC,UAAAA,OAFF,WAUIpC,EAPF3J,UAAAA,OAHF,MAGc,MAHd,EAIE7D,EAMEwN,EANFxN,SAJF,EAUIwN,EALFG,MAAAA,OALF,WAUIH,EAJFM,eAAAA,OANF,WAUIN,EAHFK,QAAAA,OAPF,SAQEgC,EAEErC,EAFFqC,sBARF,EAUIrC,EADFsC,SAAAA,OATF,SAWMC,GAAQC,EAAAA,EAAAA,GAA8BxC,EAAOT,GAE7CkD,EAAU1N,EAAAA,WAAiB2N,EAAAA,GAC3BC,EAAe,CACnBxC,MAAOA,GAASsC,EAAQtC,QAAS,EACjCpQ,WAAAA,EACAuQ,eAAAA,GAEIsC,EAAc7N,EAAAA,OAAa,OACjC8N,EAAAA,EAAAA,IAAkB,WACZT,GACEQ,EAAYE,SACdF,EAAYE,QAAQjB,UAKvB,CAACO,IAEJ,IAAMlC,GAAaM,EAAAA,EAAAA,GAAS,GAAIR,EAAO,CACrCjQ,WAAAA,EACAoQ,MAAOwC,EAAaxC,MACpBG,eAAAA,EACAD,QAAAA,EACAiC,SAAAA,IAGIlS,EA1HkB,SAAA8P,GACxB,IACEnQ,EAOEmQ,EAPFnQ,WACAK,EAME8P,EANF9P,QACA+P,EAKED,EALFC,MACAhI,EAIE+H,EAJF/H,SAKI4K,EAAQ,CACZ7T,KAAM,CAAC,OAAQiR,GAAS,SAFtBD,EAHFI,gBAKoD,UAFlDJ,EAFFG,SAI0E,UAAWlI,GAAY,WAA2B,eAAfpI,GAA+B,sBAF1ImQ,EADFoC,UAG+K,aAE3KU,GAAkBC,EAAAA,EAAAA,GAAeF,EAAOG,EAAAA,EAA+B9S,GAC7E,OAAOoQ,EAAAA,EAAAA,GAAS,GAAIpQ,EAAS4S,GA4GbG,CAAkBjD,GAC5BkD,GAAYC,EAAAA,EAAAA,GAAWT,EAAaV,GAC1C,OAAoBoB,EAAAA,EAAAA,KAAKZ,EAAAA,EAAAA,SAAsB,CAC7C9I,MAAO+I,EACPnQ,UAAuB8Q,EAAAA,EAAAA,KAAK9D,GAAoBgB,EAAAA,EAAAA,GAAS,CACvD0B,IAAKkB,EACL/M,UAAWA,EACXgM,uBAAuBkB,EAAAA,EAAAA,GAAKnT,EAAQoT,aAAcnB,GAClDnC,WAAYA,GACXqC,EAAO,CACRnS,QAASA,EACToC,SAAUA,UAwFhB,O,6JCnPO,SAASiR,EAA6B3D,GAC3C,OAAO4D,EAAAA,EAAAA,GAAqB,mBAAoB5D,IAErB6D,E,SAAAA,GAAuB,mBAAoB,CAAC,OAAQ,eAAgB,eAAgB,UAAW,QAAS,WAArI,I,WCFMpE,EAAY,CAAC,YAAa,QAAS,YAAa,iBAAkB,gBAAiB,SAyBnFqE,GAAoBnE,EAAAA,EAAAA,IAAO,KAAM,CACrC9I,KAAM,mBACNmJ,KAAM,OACNC,kBAAmB,SAACC,EAAOC,GACzB,IACEC,EACEF,EADFE,WAEF,MAAO,CAACD,EAAO/Q,KAA2B,YAArBgR,EAAWhI,OAAuB+H,EAAO,QAAD,QAAS4D,EAAAA,EAAAA,GAAW3D,EAAWhI,UAAYgI,EAAWI,gBAAkBL,EAAOM,QAASL,EAAW4D,OAAS7D,EAAO6D,OAAQ5D,EAAW6D,eAAiB9D,EAAO+D,UAPrMvE,EASvB,gBACDzQ,EADC,EACDA,MACAkR,EAFC,EAEDA,WAFC,OAGGM,EAAAA,EAAAA,GAAS,CACbI,UAAW,aACXqD,WAAY,OACZC,UAAW,OACXhM,MAAOlJ,EAAMmS,QAAQnJ,KAAKmM,UAC1BC,WAAYpV,EAAMqV,WAAWD,WAC7BxU,WAAYZ,EAAMqV,WAAWC,iBAC7B3U,SAAUX,EAAMqV,WAAWE,QAAQ,KACb,YAArBrE,EAAWhI,OAAuB,CACnCA,MAAOlJ,EAAMmS,QAAQK,QAAQC,MACP,YAArBvB,EAAWhI,OAAuB,CACnCA,MAAO,YACLgI,EAAWI,gBAAkB,CAC/BhR,YAAa,GACbG,aAAc,IACbyQ,EAAW4D,OAAS,CACrBxU,YAAa,KACX4Q,EAAW6D,eAAiB,CAC9BrD,SAAU,SACV8D,IAAK,EACLC,OAAQ,EACRpV,gBAAiBL,EAAMmS,QAAQlK,WAAW/D,WA4F5C,EA1FmC6B,EAAAA,YAAiB,SAAuBkN,EAASC,GAClF,IAAMlC,GAAQmC,EAAAA,EAAAA,GAAc,CAC1BnC,MAAOiC,EACPtL,KAAM,qBAINnG,EAMEwP,EANFxP,UADF,EAOIwP,EALF9H,MAAAA,OAFF,MAEU,UAFV,IAOI8H,EAJF3J,UAAAA,OAHF,MAGc,KAHd,IAOI2J,EAHFM,eAAAA,OAJF,WAOIN,EAFF+D,cAAAA,OALF,WAOI/D,EADF8D,MAAAA,OANF,SAQMvB,GAAQC,EAAAA,EAAAA,GAA8BxC,EAAOT,GAE7CW,GAAaM,EAAAA,EAAAA,GAAS,GAAIR,EAAO,CACrC9H,MAAAA,EACA7B,UAAAA,EACAiK,eAAAA,EACAyD,cAAAA,EACAD,MAAAA,IAGI1T,EAzEkB,SAAA8P,GACxB,IACE9P,EAKE8P,EALF9P,QACA8H,EAIEgI,EAJFhI,MACAoI,EAGEJ,EAHFI,eACAwD,EAEE5D,EAFF4D,MACAC,EACE7D,EADF6D,cAEIhB,EAAQ,CACZ7T,KAAM,CAAC,OAAkB,YAAVgJ,GAAA,gBAA+B2L,EAAAA,EAAAA,GAAW3L,KAAWoI,GAAkB,UAAWwD,GAAS,SAAUC,GAAiB,WAEvI,OAAOd,EAAAA,EAAAA,GAAeF,EAAOU,EAA8BrT,GA8D3C+S,CAAkBjD,GAClC,OAAoBoD,EAAAA,EAAAA,KAAKM,GAAmBpD,EAAAA,EAAAA,GAAS,CACnDkE,GAAIrO,EACJ7F,WAAW+S,EAAAA,EAAAA,GAAKnT,EAAQlB,KAAMsB,GAC9B0R,IAAKA,EACLhC,WAAYA,GACXqC","sources":["common/HelpBox.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Configurations/SiteReplication/ReplicationSites.tsx","screens/Console/Configurations/SiteReplication/AddReplicationSitesModal.tsx","screens/Console/Configurations/SiteReplication/SiteReplication.tsx","../node_modules/@mui/material/ListItemButton/ListItemButton.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.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 { 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, { useState } 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 { Box, Button, DialogContentText, Tooltip } from \"@mui/material\";\nimport {\n MenuCollapsedIcon,\n MenuExpandedIcon,\n} from \"../../../../icons/SidebarMenus\";\nimport { ReplicationSite } from \"./SiteReplication\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport TrashIcon from \"../../../../icons/TrashIcon\";\nimport { CircleIcon, ConfirmDeleteIcon, EditIcon } from \"../../../../icons\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport withStyles from \"@mui/styles/withStyles\";\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\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n });\n\nconst ReplicationSites = ({\n sites,\n onDeleteSite,\n setErrorSnackMessage,\n setSnackBarMessage,\n onRefresh,\n classes,\n}: {\n sites: ReplicationSite[];\n onDeleteSite: (isAll: boolean, sites: string[]) => void;\n setErrorSnackMessage: (err: ErrorResponseHandler) => void;\n setSnackBarMessage: (msg: string) => void;\n onRefresh: () => void;\n classes: any;\n}) => {\n const [expanded, setExpanded] = React.useState(\"\");\n\n const [deleteSiteKey, setIsDeleteSiteKey] = useState(\"\");\n const [editSite, setEditSite] = useState(null);\n const [editEndPointName, setEditEndPointName] = useState(\"\");\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n const [isEditing, invokeSiteEditApi] = useApi(\n (res: any) => {\n if (res.success) {\n setEditSite(null);\n setSnackBarMessage(res.status);\n } else {\n setErrorSnackMessage({\n errorMessage: \"Error\",\n detailedError: res.status,\n });\n }\n onRefresh();\n },\n (err: any) => {\n setErrorSnackMessage(err);\n onRefresh();\n }\n );\n const updatePeerSite = () => {\n invokeSiteEditApi(\"PUT\", `api/v1/admin/site-replication`, {\n endpoint: editEndPointName,\n name: editSite.name,\n deploymentId: editSite.deploymentID, // readonly\n });\n };\n\n const hasExpand = false; //siteInfo.isCurrent to b\n let isValidEndPointUrl = false;\n\n try {\n new URL(editEndPointName);\n isValidEndPointUrl = true;\n } catch (err) {\n isValidEndPointUrl = false;\n }\n\n return (\n \n \n \n List of Replicated Sites\n \n {sites.map((siteInfo, index) => {\n const key = `${siteInfo.name}`;\n const isExpanded = expanded === siteInfo.name;\n\n const handleToggle = () => {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n };\n return (\n \n \n \n \n {siteInfo.name}\n \n \n {siteInfo.isCurrent ? (\n \n \n \n \n \n ) : null}\n \n \n {siteInfo.endpoint}\n \n \n \n \n\n \n }\n onClick={(e) => {\n e.preventDefault();\n setIsDeleteSiteKey(key);\n }}\n />\n }\n onClick={(e) => {\n e.preventDefault();\n setEditSite(siteInfo);\n }}\n />\n \n {hasExpand ? (\n \n {isExpanded ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )}\n \n {isExpanded ? (\n \n \n Replication status\n \n\n \n Status info\n \n \n ) : null}\n\n {deleteSiteKey === key ? (\n }\n isLoading={false}\n onConfirm={() => {\n onDeleteSite(false, [key]);\n }}\n onClose={() => {\n setIsDeleteSiteKey(\"\");\n }}\n confirmationContent={\n \n Are you sure you want to remove the replication site:{\" \"}\n {key}.?\n \n }\n />\n ) : null}\n\n {editSite?.name === key ? (\n }\n onClose={() => {\n setEditSite(null);\n }}\n >\n \n \n \n Site: {\" \"}\n {editSite.name}\n \n \n Current Endpoint: {\" \"}\n {editSite.endpoint}\n \n \n\n \n New Endpoint:\n \n ) => {\n setEditEndPointName(event.target.value);\n }}\n label=\"\"\n value={editEndPointName}\n />\n \n \n\n \n {\n setEditSite(null);\n }}\n >\n Close\n \n {\n updatePeerSite();\n }}\n >\n Update\n \n \n \n ) : null}\n \n );\n })}\n \n \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n setSnackBarMessage,\n});\nexport default connector(withStyles(styles)(ReplicationSites));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { AddIcon, RecoverIcon, RemoveIcon } from \"../../../../icons\";\nimport { ReplicationSite } from \"./SiteReplication\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Button, LinearProgress } from \"@mui/material\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype SiteInputRow = {\n name: string;\n endpoint: string;\n};\n\nconst isValidEndPoint = (ep: string) => {\n let isValidEndPointUrl = false;\n\n try {\n new URL(ep);\n isValidEndPointUrl = true;\n } catch (err) {\n isValidEndPointUrl = false;\n }\n if (isValidEndPointUrl || ep === \"\") {\n return \"\";\n } else {\n return \"Invalid Endpoint\";\n }\n};\nconst AddReplicationSitesModal = ({\n existingSites = [],\n onClose,\n setErrorSnackMessage,\n setSnackBarMessage,\n}: {\n existingSites: ReplicationSite[];\n onClose: () => void;\n setErrorSnackMessage: (err: ErrorResponseHandler) => void;\n setSnackBarMessage: (msg: string) => void;\n}) => {\n const defaultNewSites = existingSites?.length\n ? [{ endpoint: \"\", name: \"\" }]\n : [\n { endpoint: \"\", name: \"\" },\n { endpoint: \"\", name: \"\" },\n ];\n\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [siteConfig, setSiteConfig] = useState(defaultNewSites);\n\n const isAllEndpointsValid =\n siteConfig.reduce((acc: string[], cv, i) => {\n const epValue = siteConfig[i].endpoint;\n const isEpValid = isValidEndPoint(epValue);\n\n if (isEpValid === \"\" && epValue !== \"\") {\n acc.push(isEpValid);\n }\n return acc;\n }, []).length === siteConfig.length;\n\n const [isAdding, invokeSiteAddApi] = useApi(\n (res: any) => {\n if (res.success) {\n setSnackBarMessage(res.status);\n onClose();\n } else {\n setErrorSnackMessage({\n errorMessage: \"Error\",\n detailedError: res.status,\n });\n }\n },\n (err: any) => {\n setErrorSnackMessage(err);\n }\n );\n\n const resetForm = () => {\n setAccessKey(\"\");\n setSecretKey(\"\");\n setSiteConfig(defaultNewSites);\n };\n\n const addSiteReplication = () => {\n const existingSitesToAdd = existingSites?.map((es, idx) => {\n return {\n accessKey: accessKey,\n secretKey: secretKey,\n name: es.name,\n endpoint: es.endpoint,\n };\n });\n\n const newSitesToAdd = siteConfig.reduce((acc: any, ns, idx) => {\n if (ns.endpoint) {\n acc.push({\n accessKey: accessKey,\n secretKey: secretKey,\n name: ns.name || `dr-site-${idx}`,\n endpoint: ns.endpoint,\n });\n }\n return acc;\n }, []);\n\n invokeSiteAddApi(\"POST\", `api/v1/admin/site-replication`, [\n ...(existingSitesToAdd || []),\n ...(newSitesToAdd || []),\n ]);\n };\n\n return (\n }\n data-test-id={\"add-site-replication-modal\"}\n >\n {isAdding ? : null}\n ) => {\n e.preventDefault();\n return addSiteReplication();\n }}\n >\n \n \n Note:{\" \"}\n \n Access Key and Secret Key should be same on all sites.\n \n \n \n \n ) => {\n setAccessKey(event.target.value);\n }}\n label=\"Access Key\"\n required={true}\n value={accessKey}\n error={accessKey === \"\" ? \"Access Key is required.\" : \"\"}\n data-test-id={\"add-site-rep-acc-key\"}\n />\n \n \n ) => {\n setSecretKey(event.target.value);\n }}\n error={secretKey === \"\" ? \"Secret Key is required.\" : \"\"}\n label=\"Secret Key\"\n value={secretKey}\n data-test-id={\"add-site-rep-sec-key\"}\n />\n \n\n \n \n Peer Sites\n \n \n\n \n \n Site Name\n \n Endpoint {\"*\"}\n \n {existingSites?.map((si, index) => {\n return (\n \n \n {}}\n />\n \n \n {}}\n />\n \n \n {\" \"}\n \n \n );\n })}\n\n {siteConfig.map((sci, index) => {\n let isDelDisabled = false;\n\n if (existingSites?.length && index === 0) {\n isDelDisabled = true;\n } else if (!existingSites?.length && index < 2) {\n isDelDisabled = true;\n }\n\n return (\n \n \n {\n const nameTxt = e.target.value;\n setSiteConfig((prevItems) => {\n return prevItems.map((item, ix) =>\n ix === index ? { ...item, name: nameTxt } : item\n );\n });\n }}\n data-test-id={`add-site-rep-peer-site-${index}`}\n />\n \n \n {\n const epTxt = e.target.value;\n setSiteConfig((prevItems) => {\n return prevItems.map((item, ix) =>\n ix === index ? { ...item, endpoint: epTxt } : item\n );\n });\n }}\n data-test-id={`add-site-rep-peer-ep-${index}`}\n />\n \n \n \n }\n onClick={(e) => {\n e.preventDefault();\n const newRows = [...siteConfig];\n //add at the next index\n newRows.splice(index + 1, 0, {\n name: \"\",\n endpoint: \"\",\n });\n\n setSiteConfig(newRows);\n }}\n />\n }\n onClick={(e) => {\n e.preventDefault();\n setSiteConfig(\n siteConfig.filter((_, idx) => idx !== index)\n );\n }}\n />\n \n \n \n );\n })}\n \n\n \n \n \n Clear\n \n\n \n Save\n \n \n \n \n \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n setSnackBarMessage,\n});\nexport default connector(AddReplicationSitesModal);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { Box, DialogContentText } from \"@mui/material\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ReplicationSites from \"./ReplicationSites\";\nimport TrashIcon from \"../../../../icons/TrashIcon\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport Loader from \"../../Common/Loader/Loader\";\nimport { AddIcon, ConfirmDeleteIcon, RecoverIcon } from \"../../../../icons\";\nimport AddReplicationSitesModal from \"./AddReplicationSitesModal\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\nexport type ReplicationSite = {\n deploymentID: string;\n endpoint: string;\n name: string;\n isCurrent?: boolean;\n};\n\nconst SiteReplication = ({\n setSnackBarMessage,\n}: {\n setSnackBarMessage: (msg: string) => void;\n}) => {\n const [sites, setSites] = useState([]);\n\n const [isAddOpen, setIsAddOpen] = useState(false);\n\n const [deleteAll, setIsDeleteAll] = useState(false);\n const [isSiteInfoLoading, invokeSiteInfoApi] = useApi(\n (res: any) => {\n const { sites: siteList, name: curSiteName } = res;\n // current site name to be the fist one.\n const foundIdx = siteList.findIndex((el: any) => el.name === curSiteName);\n if (foundIdx !== -1) {\n let curSite = siteList[foundIdx];\n curSite = {\n ...curSite,\n isCurrent: true,\n };\n siteList.splice(foundIdx, 1, curSite);\n }\n\n siteList.sort((x: any, y: any) => {\n return x.name === curSiteName ? -1 : y.name === curSiteName ? 1 : 0;\n });\n setSites(siteList);\n },\n (err: any) => {\n setSites([]);\n }\n );\n\n const getSites = () => {\n invokeSiteInfoApi(\"GET\", `api/v1/admin/site-replication`);\n };\n\n const [isRemoving, invokeSiteRemoveApi] = useApi(\n (res: any) => {\n setIsDeleteAll(false);\n setSnackBarMessage(`Successfully deleted.`);\n getSites();\n },\n (err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n }\n );\n\n const removeSites = (isAll: boolean = false, delSites: string[] = []) => {\n invokeSiteRemoveApi(\"DELETE\", `api/v1/admin/site-replication`, {\n all: isAll,\n sites: delSites,\n });\n };\n\n useEffect(() => {\n getSites();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const hasSites = sites?.length;\n\n return (\n \n \n \n \n {hasSites ? (\n \n }\n onClick={() => {\n setIsDeleteAll(true);\n }}\n />\n \n ) : null}\n }\n onClick={() => {\n setIsAddOpen(true);\n }}\n />\n \n {hasSites ? (\n \n ) : null}\n {isSiteInfoLoading ? (\n \n \n \n ) : null}\n {!hasSites && !isSiteInfoLoading ? (\n \n Site Replication is not configured.\n \n ) : null}\n\n {isAddOpen ? (\n {\n setIsAddOpen(false);\n getSites();\n }}\n />\n ) : null}\n\n }\n help={\n \n This feature allows multiple independent MinIO sites (or clusters)\n that are using the same external IDentity Provider (IDP) to be\n configured as replicas. In this situation the set of replica sites\n are referred to as peer sites or just sites.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\n \n .\n
    \n }\n />\n\n {deleteAll ? (\n }\n isLoading={false}\n onConfirm={() => {\n const siteNames = sites.map((s: any) => s.name);\n removeSites(true, siteNames);\n }}\n onClose={() => {\n setIsDeleteAll(false);\n }}\n confirmationContent={\n \n Are you sure you want to remove all the replication sites?.\n \n }\n />\n ) : null}\n
    \n
    \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n setSnackBarMessage,\n});\n\nexport default connector(SiteReplication);\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alignItems\", \"autoFocus\", \"component\", \"children\", \"dense\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"];\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, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from './listItemButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disabled,\n disableGutters,\n divider,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst ListItemButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiListItemButton',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemButtonClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${listItemButtonClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, ownerState.alignItems === 'flex-start' && {\n alignItems: 'flex-start'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.dense && {\n paddingTop: 4,\n paddingBottom: 4\n}));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemButton'\n });\n\n const {\n alignItems = 'center',\n autoFocus = false,\n component = 'div',\n children,\n dense = false,\n disableGutters = false,\n divider = false,\n focusVisibleClassName,\n selected = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n };\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n\n const ownerState = _extends({}, props, {\n alignItems,\n dense: childContext.dense,\n disableGutters,\n divider,\n selected\n });\n\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(ListItemButtonRoot, _extends({\n ref: handleRef,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState\n }, other, {\n classes: classes,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.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 * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\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 * 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`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n * @default false\n */\n selected: 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 ListItemButton;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\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 capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\n\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: theme.palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: theme.palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.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 component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\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 List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: 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 ListSubheader;"],"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","onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","setErrorSnackMessage","setSnackBarMessage","modalStyleUtils","formFieldStyles","spacingUtils","sites","onDeleteSite","onRefresh","React","expanded","deleteSiteKey","setIsDeleteSiteKey","editSite","setEditSite","editEndPointName","setEditEndPointName","useApi","success","status","errorMessage","detailedError","isEditing","invokeSiteEditApi","isValidEndPointUrl","URL","Box","List","sx","flex","marginTop","component","borderBottom","map","siteInfo","index","key","name","isExpanded","ListItemButton","borderLeft","borderRight","borderTop","background","gridTemplateColumns","sm","overflow","isCurrent","Tooltip","placement","fill","endpoint","textOverflow","whiteSpace","marginLeft","flexShrink","RBIconButton","tooltip","text","variant","color","disabled","icon","TrashIcon","e","preventDefault","ListSubheader","Collapse","in","timeout","unmountOnExit","md","flexFlow","gap","ConfirmDialog","confirmText","isOpen","onConfirm","confirmationContent","DialogContentText","ModalWrapper","Grid","InputBoxWrapper","placeholder","onChange","target","value","label","modalButtonBar","Button","deploymentId","deploymentID","isValidEndPoint","ep","existingSites","defaultNewSites","accessKey","setAccessKey","secretKey","setSecretKey","siteConfig","setSiteConfig","isAllEndpointsValid","reduce","acc","cv","i","epValue","isEpValid","push","isAdding","invokeSiteAddApi","LinearProgress","noValidate","autoComplete","onSubmit","existingSitesToAdd","es","idx","newSitesToAdd","ns","addSiteReplication","fontStyle","required","error","maxHeight","overflowY","si","Fragment","extraInputProps","readOnly","sci","isDelDisabled","nameTxt","prevItems","ix","epTxt","justifyContent","alignSelf","borderColor","newRows","splice","filter","_","setSites","isAddOpen","setIsAddOpen","deleteAll","setIsDeleteAll","siteList","curSiteName","foundIdx","findIndex","el","curSite","sort","x","y","isSiteInfoLoading","invokeSiteInfoApi","getSites","isRemoving","invokeSiteRemoveApi","removeSites","isAll","delSites","all","hasSites","PageHeader","PageLayout","Loader","style","HelpBox","href","rel","siteNames","s","_excluded","ListItemButtonRoot","styled","ButtonBase","shouldForwardProp","prop","rootShouldForwardProp","slot","overridesResolver","props","styles","ownerState","dense","alignItemsFlexStart","divider","disableGutters","gutters","_extends","flexGrow","position","textDecoration","boxSizing","textAlign","transition","transitions","create","duration","shortest","palette","action","hover","listItemButtonClasses","alpha","primary","main","selectedOpacity","focusOpacity","hoverOpacity","focus","opacity","disabledOpacity","backgroundClip","inProps","ref","useThemeProps","autoFocus","focusVisibleClassName","selected","other","_objectWithoutPropertiesLoose","context","ListContext","childContext","listItemRef","useEnhancedEffect","current","slots","composedClasses","composeClasses","getListItemButtonUtilityClass","useUtilityClasses","handleRef","useForkRef","_jsx","clsx","focusVisible","getListSubheaderUtilityClass","generateUtilityClass","generateUtilityClasses","ListSubheaderRoot","capitalize","inset","disableSticky","sticky","lineHeight","listStyle","secondary","fontFamily","typography","fontWeightMedium","pxToRem","top","zIndex","as"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/321.2af53d6e.chunk.js b/portal-ui/build/static/js/321.2af53d6e.chunk.js new file mode 100644 index 000000000..bf1fa5afc --- /dev/null +++ b/portal-ui/build/static/js/321.2af53d6e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[321],{23804:function(e,t,n){n(72791);var i=n(11135),a=n(25787),r=n(61889),s=n(80184);t.Z=(0,a.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 t=e.classes,n=e.iconComponent,i=e.title,a=e.help;return(0,s.jsx)("div",{className:t.root,children:(0,s.jsxs)(r.ZP,{container:!0,children:[(0,s.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,s.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},81806:function(e,t,n){var i=n(1413),a=n(45987),r=(n(72791),n(11135)),s=n(25787),l=n(80184),o=["classes","children"];t.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 t=e.classes,n=e.children,r=(0,a.Z)(e,o);return(0,l.jsx)("button",(0,i.Z)((0,i.Z)({},r),{},{className:t.root,children:n}))}))},75578:function(e,t,n){var i=n(1413),a=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)(a.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,i.Z)({},n))})}return n}},59114:function(e,t,n){var i=n(4942),a=n(1413),r=(n(72791),n(63466)),s=n(74900),l=n(27391),o=n(25787),c=n(11135),d=n(23814),u=n(80184);t.Z=(0,o.Z)((function(e){return(0,c.Z)({searchField:(0,a.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,n=void 0===t?"":t,a=e.classes,o=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,h=e.overrideClass,f=e.value,p=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:a.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(l.Z,{placeholder:n,className:h||a.searchField,id:"search-resource",label:"",InputProps:p,onChange:function(e){o(e.target.value)},variant:"standard",value:f})}))},98994:function(e,t,n){var i=n(72791),a=n(22338),r=n(79762),s=n(5171),l=n(80184),o={};t.Z=function(e){var t=e.rowRenderFunction,n=e.totalItems,c=e.defaultHeight,d=function(e){var n=e.index,i=e.style;return(0,l.jsx)("div",{style:i,children:t(n)})};return(0,l.jsx)(i.Fragment,{children:(0,l.jsx)(r.Z,{isItemLoaded:function(e){return!!o[e]},loadMoreItems:function(e,t){for(var n=e;n<=t;n++)o[n]=1;for(var i=e;i<=t;i++)o[i]=2},itemCount:n,children:function(e){var t=e.onItemsRendered,i=e.ref;return(0,l.jsx)(s.qj,{children:function(e){var r=e.width,s=e.height;return(0,l.jsx)(a.t7,{itemSize:c||220,height:s,itemCount:n,width:r,ref:i,onItemsRendered:t,children:d})}})}})})}},60321:function(e,t,n){n.r(t),n.d(t,{default:function(){return W}});var i=n(29439),a=n(1413),r=n(72791),s=n(60364),l=n(61889),o=n(40986),c=n(11135),d=n(25787),u=n(45248),h=n(23814),f=n(42649),p=n(93656),g=n(81207),x=n(62666),m=n(28789),v=n(32291),j=n(80184),y=function(e){var t=e.label,n=e.value,i=e.unit,a=e.variant,s=void 0===a?"normal":a;return(0,j.jsxs)("div",{style:{margin:"0px 20px"},children:[(0,j.jsxs)("div",{style:{textAlign:"center"},children:[(0,j.jsx)("span",{style:{fontSize:18,color:"normal"===s?"#000":"#999",fontWeight:400},children:n}),i&&(0,j.jsxs)(r.Fragment,{children:[" ",(0,j.jsx)("span",{style:{fontSize:12,color:"#8F9090",fontWeight:"bold"},children:i})]})]}),(0,j.jsx)("div",{style:{textAlign:"center",color:"normal"===s?"#767676":"#bababa",fontSize:12,whiteSpace:"nowrap"},children:t})]})},Z=n(93433),b=n(73909),S=n(21041),C=n(41048),w=function(e){var t=e.totalCapacity,n=e.usedSpaceVariants,i=e.statusClass,a=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],r=n.reduce((function(e,t){return e+t.value}),0),s=t-r,l=[],o=n.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};n.length>10?l=[{value:r-o.value,color:"#2781B0",label:"Total Tiers Space"}]:l=n.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,t){return{value:e.value,color:a[t],label:"Tier - ".concat(e.variant)}}));var c="#07193E",d=100*o.value/t;d>=90?c="#C83B51":d>=75&&(c="#FFAB0F");var h=[{value:s,color:"transparent",label:"Empty Space"},{value:o.value,color:c,label:"Used Space by Tenant"}].concat((0,Z.Z)(l));return(0,j.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,j.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:i,children:(0,j.jsx)(p.J$,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,j.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(r)?"N/A":(0,u.l5)(r)}),(0,j.jsx)("div",{children:(0,j.jsxs)(b.u,{width:110,height:110,children:[(0,j.jsx)(S.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:"#ededed",isAnimationActive:!1,stroke:"none"}),(0,j.jsx)(S.b,{data:h,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:h.map((function(e,t){return(0,j.jsx)(C.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(t))}))})]})})]})},T=(0,s.$j)(null,{setErrorSnackMessage:f.Ih}),z=(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 #EAEAEA",marginBottom:16,padding:"15px 30px","&:hover":{backgroundColor:"#FAFAFA",cursor:"pointer"}},titleContainer:{display:"flex",justifyContent:"space-between",width:"100%"},title:{fontSize:18,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"},namespaceLabel:{display:"inline-flex",backgroundColor:"#EAEDEF",borderRadius:2,padding:"4px 8px",fontSize:10,marginRight:20},status:{fontSize:12,color:"#8F9090"}})}))(T((function(e){var t=e.tenant,n=e.classes,i={value:"n/a",unit:""},a={value:"n/a",unit:""},s={value:"n/a",unit:""},o={value:"n/a",unit:""},c={value:"n/a",unit:""};if(t.capacity_raw){var d=(0,u.ae)("".concat(t.capacity_raw),!0).split(" ");i.value=d[0],i.unit=d[1]}if(t.capacity){var h=(0,u.ae)("".concat(t.capacity),!0).split(" ");a.value=h[0],a.unit=h[1]}if(t.capacity_usage){var f=(0,u.l5)(t.capacity_usage,!0).split(" ");s.value=f[0],s.unit=f[1]}var g=[];if(t.tiers&&0!==t.tiers.length){g=t.tiers.map((function(e){return{value:e.size,variant:e.name}}));var m=t.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,t){return e+t.size}),0),v=t.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,t){return e+t.size}),0),Z=(0,u.l5)(v,!0).split(" ");c.value=Z[0],c.unit=Z[1];var b=(0,u.l5)(m,!0).split(" ");o.value=b[0],o.unit=b[1]}else g=[{value:t.capacity_usage||0,variant:"STANDARD"}];return(0,j.jsx)(r.Fragment,{children:(0,j.jsx)("div",{className:n.tenantItem,id:"list-tenant-".concat(t.name),onClick:function(){x.Z.push("/namespaces/".concat(t.namespace,"/tenants/").concat(t.name))},children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:n.titleContainer,children:[(0,j.jsx)("div",{className:n.title,children:(0,j.jsx)("span",{children:t.name})}),(0,j.jsx)("div",{children:(0,j.jsxs)("span",{className:n.namespaceLabel,children:["Namespace:\xa0",t.namespace]})})]}),(0,j.jsx)(l.ZP,{item:!0,xs:12,sx:{marginTop:2},children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsx)(l.ZP,{item:!0,xs:2,children:(0,j.jsx)(w,{totalCapacity:t.capacity_raw||0,usedSpaceVariants:g,statusClass:function(e){switch(e){case"red":return n.redState;case"yellow":return n.yellowState;case"green":return n.greenState;default:return n.greyState}}(t.health_status)})}),(0,j.jsxs)(l.ZP,{item:!0,xs:!0,children:[(0,j.jsxs)(l.ZP,{item:!0,xs:!0,sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:"10px"},children:[(0,j.jsx)(y,{label:"Raw Capacity",value:i.value,unit:i.unit}),(0,j.jsx)(y,{label:"Usable Capacity",value:a.value,unit:a.unit}),(0,j.jsx)(y,{label:"Pools",value:t.pool_count.toString(),variant:"faded"})]}),(0,j.jsx)(l.ZP,{item:!0,xs:12,sx:{paddingLeft:"20px",marginTop:"15px"},children:(0,j.jsxs)("span",{className:n.status,children:[(0,j.jsx)("strong",{children:"State:"})," ",t.currentState]})})]}),(0,j.jsx)(l.ZP,{item:!0,xs:3,children:(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsxs)(l.ZP,{item:!0,xs:2,textAlign:"center",justifyContent:"center",justifyItems:"center",children:[(0,j.jsx)(p.FU,{style:{width:25,color:"rgb(91,91,91)"}}),(0,j.jsx)("div",{style:{color:"rgb(118, 118, 118)",fontSize:12,fontWeight:"400"},children:"Usage"})]}),(0,j.jsx)(l.ZP,{item:!0,xs:1}),(0,j.jsxs)(l.ZP,{item:!0,style:{paddingTop:8},children:[(!t.tiers||0===t.tiers.length)&&(0,j.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,j.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(s.value," ").concat(s.unit)]}),t.tiers&&t.tiers.length>0&&(0,j.jsxs)(r.Fragment,{children:[(0,j.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,j.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(o.value," ").concat(o.unit)]}),(0,j.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,j.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Tiered:"," "]})," ","".concat(c.value," ").concat(c.unit)]})]})]})]})})})]})})]})})})}))),R=n(23804),A=n(81806),F=n(75578),I=n(98994),P=n(40603),E=n(59114),N=n(74794),k=(0,F.Z)(r.lazy((function(){return n.e(7798).then(n.bind(n,37798))}))),B=(0,s.$j)(null,{setErrorSnackMessage:f.Ih}),W=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},h.OR),h.qg),(0,h.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:{height:"calc(100vh - 195px)"}}))}))(B((function(e){var t=e.classes,n=e.setErrorSnackMessage,a=(0,r.useState)(!1),s=(0,i.Z)(a,2),c=s[0],d=s[1],h=(0,r.useState)(""),f=(0,i.Z)(h,2),y=f[0],Z=f[1],b=(0,r.useState)([]),S=(0,i.Z)(b,2),C=S[0],w=S[1],T=(0,r.useState)(!1),F=(0,i.Z)(T,2),B=F[0],W=F[1],L=(0,r.useState)(null),_=(0,i.Z)(L,2),M=_[0],D=_[1],U=C.filter((function(e){return""===y||e.name.indexOf(y)>=0}));(0,r.useEffect)((function(){if(c){g.Z.invoke("GET","/api/v1/tenants").then((function(e){if(null!==e){var t=[];null!==e.tenants&&(t=e.tenants);for(var n=0;n.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { 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, { 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 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 React, { Fragment } from \"react\";\n\ninterface IInformationItemProps {\n label: string;\n value: string;\n unit?: string;\n variant?: \"normal\" | \"faded\";\n}\n\nconst InformationItem = ({\n label,\n value,\n unit,\n variant = \"normal\",\n}: IInformationItemProps) => {\n return (\n
    \n
    \n \n {value}\n \n {unit && (\n \n {\" \"}\n \n {unit}\n \n \n )}\n
    \n \n {label}\n
    \n \n );\n};\n\nexport default InformationItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n { value: emptySpace, color: \"transparent\", label: \"Empty Space\" },\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n ];\n\n return (\n
    \n \n \n
    \n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
    \n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
    \n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { CapacityValues, ITenant, ValueUnit } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport Grid from \"@mui/material/Grid\";\nimport history from \"../../../../history\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport InformationItem from \"./InformationItem\";\nimport TenantCapacity from \"./TenantCapacity\";\nimport { DrivesIcon } from \"../../../../icons\";\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 #EAEAEA\",\n marginBottom: 16,\n padding: \"15px 30px\",\n \"&:hover\": {\n backgroundColor: \"#FAFAFA\",\n cursor: \"pointer\",\n },\n },\n titleContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n },\n title: {\n fontSize: 18,\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 namespaceLabel: {\n display: \"inline-flex\",\n backgroundColor: \"#EAEDEF\",\n borderRadius: 2,\n padding: \"4px 8px\",\n fontSize: 10,\n marginRight: 20,\n },\n status: {\n fontSize: 12,\n color: \"#8F9090\",\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 let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.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 b = niceBytesInt(tenant.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const openTenantDetails = () => {\n history.push(`/namespaces/${tenant.namespace}/tenants/${tenant.name}`);\n };\n\n return (\n \n \n \n \n
    \n {tenant.name}\n
    \n
    \n \n Namespace: {tenant.namespace}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n State: {tenant.currentState}\n \n \n \n \n \n \n \n \n \n Usage\n \n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n Internal:{\" \"}\n {\" \"}\n {`${used.value} ${used.unit}`}\n \n )}\n\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n Internal:{\" \"}\n {\" \"}\n {`${localUse.value} ${localUse.unit}`}\n \n \n \n Tiered:{\" \"}\n {\" \"}\n {`${tieredUse.value} ${tieredUse.unit}`}\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 height: \"calc(100vh - 195px)\",\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 setFilterTenants(val);\n }}\n value={filterTenants}\n />\n }\n actions={\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"],"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","padding","margin","textDecoration","cursor","color","palette","info","main","fontFamily","children","rest","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","variant","itemStatusMap","rowRenderFunction","totalItems","defaultHeight","RenderItemLine","index","style","Fragment","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","ref","itemSize","unit","textAlign","whiteSpace","totalCapacity","usedSpaceVariants","statusClass","colors","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","length","filter","map","standardTierColor","usedPercentage","plotValues","right","top","zIndex","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","connector","connect","setErrorSnackMessage","redState","error","float","yellowState","warning","greenState","success","greyState","tenantIcon","healthStatusIcon","tenantItem","titleContainer","justifyContent","titleSubKey","titleSubValue","boxyTitle","boxyValue","boxyUnit","manageButton","textTransform","namespaceLabel","status","tenant","raw","capacity","used","localUse","tieredUse","capacity_raw","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","size","name","internalUsage","type","sum","tieredUsage","partsInternal","onClick","history","namespace","Grid","sx","marginTop","health_status","healthStatusToClass","pool_count","toString","currentState","justifyItems","CredentialsPrompt","withSuspense","React","actionsTray","containerForHeader","spacing","addTenant","theaderSearchLabel","grey","theaderSearch","borderColor","actionHeaderItems","marginLeft","mainActions","tenantsList","useState","isLoading","setIsLoading","filterTenants","setFilterTenants","records","setRecords","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","filteredRecords","b","indexOf","useEffect","api","then","res","resTenants","tenants","i","total_capacity","total_size","catch","err","newServiceAccount","open","closeModal","entity","PageHeader","middleComponent","SearchBox","val","actions","RBIconButton","tooltip","text","icon","RefreshIcon","PageLayout","LinearProgress","VirtualizedList","alignContent","HelpBox","AButton"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/321.eedfb3a5.chunk.js b/portal-ui/build/static/js/321.eedfb3a5.chunk.js deleted file mode 100644 index ee3f75ea6..000000000 --- a/portal-ui/build/static/js/321.eedfb3a5.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[321],{23804:function(e,t,n){n(72791);var a=n(11135),i=n(25787),r=n(61889),o=n(80184);t.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 t=e.classes,n=e.iconComponent,a=e.title,i=e.help;return(0,o.jsx)("div",{className:t.root,children:(0,o.jsxs)(r.ZP,{container:!0,children:[(0,o.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,a]}),(0,o.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},40603:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(85531)),o=n(72455),s=n(80184),l=["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,p=void 0!==u&&u,h=e.tooltip,m=e.icon,f=void 0===m?null:m,x=e.className,g=void 0===x?"":x,v=(0,i.Z)(e,l);return(0,s.jsxs)(r.Z,(0,a.Z)((0,a.Z)({className:g,classes:t,tooltip:h||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"}}}},v),{},{children:[(0,s.jsx)("span",{children:d})," ",f]}))}},81806:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(11135)),o=n(25787),s=n(80184),l=["classes","children"];t.Z=(0,o.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 t=e.classes,n=e.children,r=(0,i.Z)(e,l);return(0,s.jsx)("button",(0,a.Z)((0,a.Z)({},r),{},{className:t.root,children:n}))}))},85531:function(e,t,n){var a=n(1413),i=n(4942),r=n(45987),o=(n(72791),n(11135)),s=n(25787),l=n(13400),c=n(20068),d=n(28182),u=n(80184),p=["classes","children","variant","tooltip"];t.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 t=e.classes,n=e.children,o=e.variant,s=void 0===o?"outlined":o,h=e.tooltip,m=(0,r.Z)(e,p),f=(0,u.jsx)(l.Z,(0,a.Z)((0,a.Z)({},m),{},{className:(0,d.Z)(t.root,(0,i.Z)({},t.contained,"contained"===s)),children:n}));return h&&""!==h?(0,u.jsx)(c.Z,{title:h,children:(0,u.jsx)("span",{children:f})}):f}))},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}},74794:function(e,t,n){var a=n(1413),i=(n(72791),n(61889)),r=n(11135),o=n(25787),s=n(23814),l=n(80184);t.Z=(0,o.Z)((function(e){return(0,r.Z)((0,a.Z)({},s.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)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:a,children:r})})})}))},32291:function(e,t,n){var a=n(72791),i=n(60364),r=n(61889),o=n(11135),s=n(25787),l=n(20890),c=n(13400),d=n(95466),u=n(84683),p=n(3925),h=n(93656),m=n(80184),f={toggleList:p.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}}),f);t.Z=x((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 t=e.classes,n=e.label,i=e.actions,o=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(a.Fragment,{}):(0,m.jsxs)(r.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.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,m.jsx)("div",{className:t.logo,children:s?(0,m.jsx)(d.Z,{}):(0,m.jsx)(u.Z,{})}),(0,m.jsx)(l.Z,{variant:"h4",className:t.labelStyle,children:n})]}),x&&(0,m.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,m.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:t.rightMenu,children:[i&&i,p&&p.length>0&&(0,m.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(h.gx,{})})]})]})})))},59114:function(e,t,n){var a=n(4942),i=n(1413),r=(n(72791),n(63466)),o=n(74900),s=n(27391),l=n(25787),c=n(11135),d=n(23814),u=n(80184);t.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,n=void 0===t?"":t,i=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,p=e.overrideClass,h=e.value,m=(0,a.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:i.adornment,children:(0,u.jsx)(o.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:n,className:p||i.searchField,id:"search-resource",label:"",InputProps:m,onChange:function(e){l(e.target.value)},variant:"standard",value:h})}))},98994:function(e,t,n){var a=n(72791),i=n(22338),r=n(79762),o=n(5171),s=n(80184),l={};t.Z=function(e){var t=e.rowRenderFunction,n=e.totalItems,c=e.defaultHeight,d=function(e){var n=e.index,a=e.style;return(0,s.jsx)("div",{style:a,children:t(n)})};return(0,s.jsx)(a.Fragment,{children:(0,s.jsx)(r.Z,{isItemLoaded:function(e){return!!l[e]},loadMoreItems:function(e,t){for(var n=e;n<=t;n++)l[n]=1;for(var a=e;a<=t;a++)l[a]=2},itemCount:n,children:function(e){var t=e.onItemsRendered,a=e.ref;return(0,s.jsx)(o.qj,{children:function(e){var r=e.width,o=e.height;return(0,s.jsx)(i.t7,{itemSize:c||220,height:o,itemCount:n,width:r,ref:a,onItemsRendered:t,children:d})}})}})})}},60321:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var a=n(29439),i=n(1413),r=n(72791),o=n(60364),s=n(61889),l=n(40986),c=n(11135),d=n(25787),u=n(45248),p=n(23814),h=n(42649),m=n(93656),f=n(81207),x=n(62666),g=n(28789),v=n(32291),j=n(49724),Z=n(36151),b=n(80184),y=function(e){var t=e.label,n=e.value,a=e.unit;return(0,b.jsxs)("div",{style:{margin:"0px 20px"},children:[(0,b.jsxs)("div",{style:{textAlign:"center"},children:[(0,b.jsx)("span",{style:{fontSize:18,color:"#000",fontWeight:400},children:n}),a&&(0,b.jsxs)(r.Fragment,{children:[" ",(0,b.jsx)("span",{style:{fontSize:12,color:"#8F9090",fontWeight:"bold"},children:a})]})]}),(0,b.jsx)("div",{style:{textAlign:"center",color:"#767676",fontSize:12,whiteSpace:"nowrap"},children:t})]})},C=n(93433),S=n(73909),E=n(21041),w=n(41048),R=function(e){var t=e.totalCapacity,n=e.usedSpaceVariants,a=e.statusClass,i=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#71ACCB","#F4CECE","#D6D6D6","#2781B0"],r=n.reduce((function(e,t){return e+t.value}),0),o=t-r,s=[],l=n.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};n.length>10?s=[{value:r-l.value,color:"#2781B0",label:"Total Tiers Space"}]:s=n.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,t){return{value:e.value,color:i[t],label:"Tier - ".concat(e.variant)}}));var c="#07193E",d=100*l.value/t;d>=90?c="#C83B51":d>=75&&(c="#FFAB0F");var p=[{value:o,color:"#D6D6D6",label:"Empty Space"},{value:l.value,color:c,label:"Used Space by Tenant"}].concat((0,C.Z)(s));return(0,b.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,b.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:a,children:(0,b.jsx)(m.J$,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,b.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(r)?"N/A":(0,u.l5)(r)}),(0,b.jsx)("div",{children:(0,b.jsx)(S.u,{width:110,height:110,children:(0,b.jsx)(E.b,{data:p,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:p.map((function(e,t){return(0,b.jsx)(w.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})},T=(0,o.$j)(null,{setErrorSnackMessage:h.Ih}),F=(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 #EAEDEE",borderRadius:3,marginBottom:20,padding:"15px 30px","&:hover":{backgroundColor:"#FAFAFA",cursor:"pointer"}},titleContainer:{display:"flex",justifyContent:"space-between",width:"100%"},title:{fontSize:18,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"},namespaceLabel:{display:"inline-flex",backgroundColor:"#EAEDEF",borderRadius:2,padding:"4px 8px",fontSize:10,marginRight:20},status:{fontSize:12,color:"#8F9090"}})}))(T((function(e){var t=e.tenant,n=e.classes,a={value:"n/a",unit:""},i={value:"n/a",unit:""},o={value:"n/a",unit:""};if(t.capacity_raw){var l=(0,u.ae)("".concat(t.capacity_raw),!0).split(" ");a.value=l[0],a.unit=l[1]}if(t.capacity){var c=(0,u.ae)("".concat(t.capacity),!0).split(" ");i.value=c[0],i.unit=c[1]}if(t.capacity_usage){var d=(0,u.l5)(t.capacity_usage,!0).split(" ");o.value=d[0],o.unit=d[1]}var p=[];p=t.tiers&&0!==t.tiers.length?t.tiers.map((function(e){return{value:e.size,variant:e.name}})):[{value:t.capacity_usage||0,variant:"STANDARD"}];return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)("div",{className:n.tenantItem,id:"list-tenant-".concat(t.name),onClick:function(){x.Z.push("/namespaces/".concat(t.namespace,"/tenants/").concat(t.name))},children:(0,b.jsxs)(s.ZP,{container:!0,children:[(0,b.jsxs)(s.ZP,{item:!0,xs:12,className:n.titleContainer,children:[(0,b.jsx)("div",{className:n.title,children:(0,b.jsx)("span",{children:t.name})}),(0,b.jsx)("div",{children:(0,b.jsxs)("span",{className:n.namespaceLabel,children:["Namespace:\xa0",t.namespace]})})]}),(0,b.jsx)(s.ZP,{item:!0,xs:12,sx:{marginTop:2},children:(0,b.jsxs)(s.ZP,{container:!0,children:[(0,b.jsx)(s.ZP,{item:!0,xs:2,children:(0,b.jsx)(R,{totalCapacity:t.capacity_raw||0,usedSpaceVariants:p,statusClass:function(e){switch(e){case"red":return n.redState;case"yellow":return n.yellowState;case"green":return n.greenState;default:return n.greyState}}(t.health_status)})}),(0,b.jsxs)(s.ZP,{item:!0,xs:!0,children:[(0,b.jsxs)(s.ZP,{item:!0,xs:!0,sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:"10px"},children:[(0,b.jsx)(y,{label:"Raw Capacity",value:a.value,unit:a.unit}),(0,b.jsx)(y,{label:"Usable Capacity",value:i.value,unit:i.unit}),(0,b.jsx)(y,{label:"Usage",value:o.value,unit:o.unit}),(0,b.jsx)(y,{label:"Pools",value:t.pool_count.toString()})]}),(0,b.jsx)(s.ZP,{item:!0,xs:12,sx:{paddingLeft:"20px",marginTop:"15px"},children:(0,b.jsxs)("span",{className:n.status,children:[(0,b.jsx)("strong",{children:"State:"})," ",t.currentState]})})]}),(0,b.jsx)(s.ZP,{item:!0,xs:2,sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,b.jsx)(Z.Z,{id:"manage-tenant-"+t.name,disabled:!(0,j.Yk)(t),onClick:function(e){e.preventDefault(),e.stopPropagation(),x.Z.push("/namespaces/".concat(t.namespace,"/tenants/").concat(t.name,"/hop"))},disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,sx:{color:"#5E5E5E",border:"#5E5E5E 1px solid",whiteSpace:"nowrap",paddingLeft:4.5,paddingRight:4.5},variant:"outlined",children:"Manage"})})]})})]})})})}))),N=n(23804),k=n(81806),z=n(75578),I=n(98994),A=n(40603),P=n(59114),B=n(74794),D=(0,z.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(7798)]).then(n.bind(n,37798))}))),L=(0,o.$j)(null,{setErrorSnackMessage:h.Ih}),M=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.OR),p.qg),(0,p.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)"}}))}))(L((function(e){var t=e.classes,n=e.setErrorSnackMessage,i=(0,r.useState)(!1),o=(0,a.Z)(i,2),c=o[0],d=o[1],p=(0,r.useState)(""),h=(0,a.Z)(p,2),j=h[0],Z=h[1],y=(0,r.useState)([]),C=(0,a.Z)(y,2),S=C[0],E=C[1],w=(0,r.useState)(!1),R=(0,a.Z)(w,2),T=R[0],z=R[1],L=(0,r.useState)(null),M=(0,a.Z)(L,2),_=M[0],W=M[1],O=S.filter((function(e){return""===j||e.name.indexOf(j)>=0}));(0,r.useEffect)((function(){if(c){f.Z.invoke("GET","/api/v1/tenants").then((function(e){if(null!==e){var t=[];null!==e.tenants&&(t=e.tenants);for(var n=0;n.\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","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 IInformationItemProps {\n label: string;\n value: string;\n unit?: string;\n}\n\nconst InformationItem = ({ label, value, unit }: IInformationItemProps) => {\n return (\n
    \n
    \n \n {value}\n \n {unit && (\n \n {\" \"}\n \n {unit}\n \n \n )}\n
    \n \n {label}\n
    \n \n );\n};\n\nexport default InformationItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n}: ITenantCapacity) => {\n const colors = [\n \"#C4D4E9\",\n \"#DCD1EE\",\n \"#D1EEE7\",\n \"#EEDED1\",\n \"#AAF38F\",\n \"#F9E6C5\",\n \"#71ACCB\",\n \"#F4CECE\",\n \"#D6D6D6\",\n \"#2781B0\",\n ];\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n { value: emptySpace, color: \"#D6D6D6\", label: \"Empty Space\" },\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n ];\n\n return (\n
    \n \n \n
    \n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
    \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
    \n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { CapacityValues, ITenant, ValueUnit } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport Grid from \"@mui/material/Grid\";\nimport history from \"../../../../history\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport { tenantIsOnline } from \"./utils\";\nimport { Button } from \"@mui/material\";\nimport InformationItem from \"./InformationItem\";\nimport TenantCapacity from \"./TenantCapacity\";\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 #EAEDEE\",\n borderRadius: 3,\n marginBottom: 20,\n padding: \"15px 30px\",\n \"&:hover\": {\n backgroundColor: \"#FAFAFA\",\n cursor: \"pointer\",\n },\n },\n titleContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n },\n title: {\n fontSize: 18,\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 namespaceLabel: {\n display: \"inline-flex\",\n backgroundColor: \"#EAEDEF\",\n borderRadius: 2,\n padding: \"4px 8px\",\n fontSize: 10,\n marginRight: 20,\n },\n status: {\n fontSize: 12,\n color: \"#8F9090\",\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 let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let 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 b = niceBytesInt(tenant.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n }\n\n const openTenantDetails = () => {\n history.push(`/namespaces/${tenant.namespace}/tenants/${tenant.name}`);\n };\n\n return (\n \n \n \n \n
    \n {tenant.name}\n
    \n
    \n \n Namespace: {tenant.namespace}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n State: {tenant.currentState}\n \n \n \n \n {\n e.preventDefault();\n e.stopPropagation();\n\n history.push(\n `/namespaces/${tenant.namespace}/tenants/${tenant.name}/hop`\n );\n }}\n disableTouchRipple\n disableRipple\n focusRipple={false}\n sx={{\n color: \"#5E5E5E\",\n border: \"#5E5E5E 1px solid\",\n whiteSpace: \"nowrap\",\n paddingLeft: 4.5,\n paddingRight: 4.5,\n }}\n variant={\"outlined\"}\n >\n Manage\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 });\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 setFilterTenants(val);\n }}\n value={filterTenants}\n />\n }\n actions={\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"],"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","unit","whiteSpace","totalCapacity","usedSpaceVariants","statusClass","colors","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","filter","map","standardTierColor","usedPercentage","plotValues","right","top","zIndex","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","entry","Cell","setErrorSnackMessage","redState","error","float","yellowState","warning","greenState","success","greyState","tenantIcon","healthStatusIcon","tenantItem","titleContainer","titleSubKey","titleSubValue","boxyTitle","boxyValue","boxyUnit","manageButton","textTransform","namespaceLabel","status","tenant","raw","capacity","used","capacity_raw","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","name","history","namespace","Grid","health_status","healthStatusToClass","pool_count","toString","currentState","Button","tenantIsOnline","preventDefault","stopPropagation","disableTouchRipple","disableRipple","focusRipple","CredentialsPrompt","withSuspense","React","actionsTray","containerForHeader","spacing","addTenant","theaderSearchLabel","grey","theaderSearch","actionHeaderItems","mainActions","tenantsList","useState","isLoading","setIsLoading","filterTenants","setFilterTenants","records","setRecords","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","filteredRecords","b","indexOf","useEffect","api","then","res","resTenants","tenants","i","total_capacity","total_size","catch","err","newServiceAccount","open","closeModal","entity","PageHeader","SearchBox","val","RBIconButton","RefreshIcon","PageLayout","LinearProgress","VirtualizedList","alignContent","HelpBox","AButton"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3320.b01c2bc8.chunk.js b/portal-ui/build/static/js/3320.6e852bd3.chunk.js similarity index 74% rename from portal-ui/build/static/js/3320.b01c2bc8.chunk.js rename to portal-ui/build/static/js/3320.6e852bd3.chunk.js index da9ef9a39..1df5a0edb 100644 --- a/portal-ui/build/static/js/3320.b01c2bc8.chunk.js +++ b/portal-ui/build/static/js/3320.6e852bd3.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3320],{92217:function(e,o,n){var t=n(93433),a=n(29439),r=n(1413),i=n(72791),c=n(61889),l=(n(2574),n(69874)),s=n(9461),d=n(73975),u=n(80745),m=n(30829),f=n(20068),x=n(64554),p=n(11135),h=n(25787),g=n(84570),Z=n(23814),b=n(93656),j=n(40603),k=n(78029),C=n.n(k),v=n(64294),y=n(80184),S={json:d.AV,yaml:function(){return s.i.define(u.r)}},B=v.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=v.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,h.Z)((function(e){return(0,p.Z)((0,r.Z)({},Z.YI))}))((function(e){var o=e.value,n=e.label,r=void 0===n?"":n,s=e.tooltip,d=void 0===s?"":s,u=e.mode,p=void 0===u?"json":u,h=e.classes,Z=e.onBeforeChange,k=e.readOnly,v=void 0!==k&&k,N=e.editorHeight,P=void 0===N?"250px":N,F=(0,i.useState)(!1),E=(0,a.Z)(F,2),z=E[0],L=E[1],w=[];return S[p]&&(w=[].concat((0,t.Z)(w),[S[p]()])),(0,y.jsxs)(i.Fragment,{children:[(0,y.jsxs)(m.Z,{className:h.inputLabel,children:[(0,y.jsx)("span",{children:r}),""!==d&&(0,y.jsx)("div",{className:h.tooltipContainer,children:(0,y.jsx)(f.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:h.tooltip,children:(0,y.jsx)(g.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:o,theme:z?M:B,extensions:w,editable:!v,basicSetup:!0,height:P,onChange:function(e,o){Z(null,null,e)}})}),(0,y.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:z?"#282c34":"#f7f7f7"},children:(0,y.jsxs)(x.Z,{className:z?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,y.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){L(!z)},text:"",icon:(0,y.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(C(),{text:o,children:(0,y.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,o,n){var t=n(29439),a=n(1413),r=n(72791),i=n(60364),c=n(13400),l=n(55646),s=n(5574),d=n(65661),u=n(39157),m=n(11135),f=n(25787),x=n(23814),p=n(42649),h=n(29823),g=n(28057),Z=n(80184),b=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});o.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},x.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(b((function(e){var o=e.onClose,n=e.modalOpen,i=e.title,m=e.children,f=e.classes,x=e.wideLimit,p=void 0===x||x,b=e.modalSnackMessage,j=e.noContentPadding,k=e.setModalSnackMessage,C=e.titleIcon,v=void 0===C?null:C,y=(0,r.useState)(!1),S=(0,t.Z)(y,2),B=S[0],M=S[1];(0,r.useEffect)((function(){k("")}),[k]),(0,r.useEffect)((function(){if(b){if(""===b.message)return void M(!1);"error"!==b.type&&M(!0)}}),[b]);var N=p?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return b&&(P=b.detailedErrorMsg,(""===b.detailedErrorMsg||b.detailedErrorMsg.length<5)&&(P=b.message)),(0,Z.jsxs)(s.Z,(0,a.Z)((0,a.Z)({open:n,classes:f},N),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&o()},className:f.root,children:[(0,Z.jsxs)(d.Z,{className:f.title,children:[(0,Z.jsxs)("div",{className:f.titleText,children:[v," ",i]}),(0,Z.jsx)("div",{className:f.closeContainer,children:(0,Z.jsx)(c.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(l.Z,{open:B,className:f.snackBarModal,onClose:function(){M(!1),k("")},message:P,ContentProps:{className:"".concat(f.snackBar," ").concat(b&&"error"===b.type?f.errorSnackBar:"")},autoHideDuration:b&&"error"===b.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:j?"":f.content,children:m})]}))})))},31014:function(e,o,n){n.r(o);var t=n(29439),a=n(1413),r=n(72791),i=n(60364),c=n(61889),l=n(36151),s=n(40986),d=n(11135),u=n(25787),m=n(81207),f=n(42649),x=n(23814),p=n(56028),h=n(21435),g=n(92217),Z=n(80184),b={setModalErrorSnackMessage:f.zb},j=(0,i.$j)(null,b);o.default=(0,u.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},codeMirrorContainer:{marginBottom:20,marginTop:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},x.bK),x.ID),x.YI))}))(j((function(e){var o=e.classes,n=e.open,a=e.closeModalAndRefresh,i=e.policyEdit,d=e.setModalErrorSnackMessage,u=(0,r.useState)(!1),f=(0,t.Z)(u,2),x=f[0],b=f[1],j=(0,r.useState)(""),k=(0,t.Z)(j,2),C=k[0],v=k[1],y=(0,r.useState)(""),S=(0,t.Z)(y,2),B=S[0],M=S[1];(0,r.useEffect)((function(){i&&(v(i.name),M(i?JSON.stringify(JSON.parse(i.policy),null,4):""))}),[i]);var N=""!==C.trim();return(0,Z.jsx)(p.Z,{modalOpen:n,onClose:function(){a(!1)},title:"".concat(i?"Info":"Create"," Policy"),children:(0,Z.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),x||(b(!0),m.Z.invoke("POST","/api/v1/policies",{name:C,policy:B}).then((function(e){b(!1),a(!0)})).catch((function(e){b(!1),d(e)})))},children:(0,Z.jsxs)(c.ZP,{container:!0,children:[(0,Z.jsxs)(c.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,Z.jsx)(h.Z,{id:"policy-name",name:"policy-name",label:"Policy Name",placeholder:"Enter Policy Name",autoFocus:!0,onChange:function(e){v(e.target.value)},value:C,disabled:!!i})}),(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:o.codeMirrorContainer,children:(0,Z.jsx)(g.Z,{label:"".concat(i?"Edit":"Write"," Policy"),value:B,onBeforeChange:function(e,o,n){M(n)},editorHeight:"350px"})})]}),(0,Z.jsxs)(c.ZP,{item:!0,xs:12,className:o.modalButtonBar,children:[!i&&(0,Z.jsx)(l.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){v(""),M("")},children:"Clear"}),(0,Z.jsx)(l.Z,{type:"submit",variant:"contained",color:"primary",disabled:x||!N,children:"Save"})]}),x&&(0,Z.jsx)(c.ZP,{item:!0,xs:12,children:(0,Z.jsx)(s.Z,{})})]})})})})))},29823:function(e,o,n){var t=n(95318);o.Z=void 0;var a=t(n(45649)),r=n(80184),i=(0,a.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");o.Z=i}}]); -//# sourceMappingURL=3320.b01c2bc8.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3320],{92217:function(e,o,n){var t=n(93433),a=n(29439),r=n(1413),i=n(72791),c=n(61889),l=(n(2574),n(69874)),s=n(9461),d=n(73975),u=n(80745),m=n(30829),f=n(20068),x=n(64554),p=n(11135),g=n(25787),h=n(84570),Z=n(23814),b=n(93656),j=n(40603),k=n(78029),C=n.n(k),v=n(64294),y=n(80184),S={json:d.AV,yaml:function(){return s.i.define(u.r)}},B=v.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=v.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,g.Z)((function(e){return(0,p.Z)((0,r.Z)({},Z.YI))}))((function(e){var o=e.value,n=e.label,r=void 0===n?"":n,s=e.tooltip,d=void 0===s?"":s,u=e.mode,p=void 0===u?"json":u,g=e.classes,Z=e.onBeforeChange,k=e.readOnly,v=void 0!==k&&k,M=e.editorHeight,P=void 0===M?"250px":M,F=(0,i.useState)(!1),E=(0,a.Z)(F,2),z=E[0],L=E[1],w=[];return S[p]&&(w=[].concat((0,t.Z)(w),[S[p]()])),(0,y.jsxs)(i.Fragment,{children:[(0,y.jsxs)(m.Z,{className:g.inputLabel,children:[(0,y.jsx)("span",{children:r}),""!==d&&(0,y.jsx)("div",{className:g.tooltipContainer,children:(0,y.jsx)(f.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:g.tooltip,children:(0,y.jsx)(h.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:o,theme:z?N:B,extensions:w,editable:!v,basicSetup:!0,height:P,onChange:function(e,o){Z(null,null,e)}})}),(0,y.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:z?"#282c34":"#f7f7f7"},children:(0,y.jsxs)(x.Z,{className:z?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,y.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){L(!z)},text:"",icon:(0,y.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(C(),{text:o,children:(0,y.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,o,n){var t=n(29439),a=n(1413),r=n(72791),i=n(60364),c=n(13400),l=n(55646),s=n(5574),d=n(65661),u=n(39157),m=n(11135),f=n(25787),x=n(23814),p=n(42649),g=n(29823),h=n(28057),Z=n(80184),b=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});o.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},x.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(b((function(e){var o=e.onClose,n=e.modalOpen,i=e.title,m=e.children,f=e.classes,x=e.wideLimit,p=void 0===x||x,b=e.modalSnackMessage,j=e.noContentPadding,k=e.setModalSnackMessage,C=e.titleIcon,v=void 0===C?null:C,y=(0,r.useState)(!1),S=(0,t.Z)(y,2),B=S[0],N=S[1];(0,r.useEffect)((function(){k("")}),[k]),(0,r.useEffect)((function(){if(b){if(""===b.message)return void N(!1);"error"!==b.type&&N(!0)}}),[b]);var M=p?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return b&&(P=b.detailedErrorMsg,(""===b.detailedErrorMsg||b.detailedErrorMsg.length<5)&&(P=b.message)),(0,Z.jsxs)(s.Z,(0,a.Z)((0,a.Z)({open:n,classes:f},M),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&o()},className:f.root,children:[(0,Z.jsxs)(d.Z,{className:f.title,children:[(0,Z.jsxs)("div",{className:f.titleText,children:[v," ",i]}),(0,Z.jsx)("div",{className:f.closeContainer,children:(0,Z.jsx)(c.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,Z.jsx)(g.Z,{})})})]}),(0,Z.jsx)(h.Z,{isModal:!0}),(0,Z.jsx)(l.Z,{open:B,className:f.snackBarModal,onClose:function(){N(!1),k("")},message:P,ContentProps:{className:"".concat(f.snackBar," ").concat(b&&"error"===b.type?f.errorSnackBar:"")},autoHideDuration:b&&"error"===b.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:j?"":f.content,children:m})]}))})))},31014:function(e,o,n){n.r(o);var t=n(29439),a=n(1413),r=n(72791),i=n(60364),c=n(61889),l=n(36151),s=n(40986),d=n(11135),u=n(25787),m=n(81207),f=n(42649),x=n(23814),p=n(56028),g=n(21435),h=n(92217),Z=n(80184),b={setModalErrorSnackMessage:f.zb},j=(0,i.$j)(null,b);o.default=(0,u.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},codeMirrorContainer:{marginBottom:20,marginTop:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},x.bK),x.ID),x.YI))}))(j((function(e){var o=e.classes,n=e.open,a=e.closeModalAndRefresh,i=e.policyEdit,d=e.setModalErrorSnackMessage,u=(0,r.useState)(!1),f=(0,t.Z)(u,2),x=f[0],b=f[1],j=(0,r.useState)(""),k=(0,t.Z)(j,2),C=k[0],v=k[1],y=(0,r.useState)(""),S=(0,t.Z)(y,2),B=S[0],N=S[1];(0,r.useEffect)((function(){i&&(v(i.name),N(i?JSON.stringify(JSON.parse(i.policy),null,4):""))}),[i]);var M=""!==C.trim();return(0,Z.jsx)(p.Z,{modalOpen:n,onClose:function(){a(!1)},title:"".concat(i?"Info":"Create"," Policy"),children:(0,Z.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),x||(b(!0),m.Z.invoke("POST","/api/v1/policies",{name:C,policy:B}).then((function(e){b(!1),a(!0)})).catch((function(e){b(!1),d(e)})))},children:(0,Z.jsxs)(c.ZP,{container:!0,children:[(0,Z.jsxs)(c.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,Z.jsx)(g.Z,{id:"policy-name",name:"policy-name",label:"Policy Name",placeholder:"Enter Policy Name",autoFocus:!0,onChange:function(e){v(e.target.value)},value:C,disabled:!!i})}),(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:o.codeMirrorContainer,children:(0,Z.jsx)(h.Z,{label:"".concat(i?"Edit":"Write"," Policy"),value:B,onBeforeChange:function(e,o,n){N(n)},editorHeight:"350px"})})]}),(0,Z.jsxs)(c.ZP,{item:!0,xs:12,className:o.modalButtonBar,children:[!i&&(0,Z.jsx)(l.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){v(""),N("")},children:"Clear"}),(0,Z.jsx)(l.Z,{type:"submit",variant:"contained",color:"primary",disabled:x||!M,children:"Save"})]}),x&&(0,Z.jsx)(c.ZP,{item:!0,xs:12,children:(0,Z.jsx)(s.Z,{})})]})})})})))}}]); +//# sourceMappingURL=3320.6e852bd3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3320.6e852bd3.chunk.js.map b/portal-ui/build/static/js/3320.6e852bd3.chunk.js.map new file mode 100644 index 000000000..9491791fd --- /dev/null +++ b/portal-ui/build/static/js/3320.6e852bd3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3320.6e852bd3.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/AddPolicy.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 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 });\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../common/api\";\nimport { Policy } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport {\n fieldBasic,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n marginTop: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface IAddPolicyProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => void;\n policyEdit: Policy;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst AddPolicy = ({\n classes,\n open,\n closeModalAndRefresh,\n policyEdit,\n setModalErrorSnackMessage,\n}: IAddPolicyProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [policyName, setPolicyName] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (policyEdit) {\n setPolicyName(policyEdit.name);\n setPolicyDefinition(\n policyEdit ? JSON.stringify(JSON.parse(policyEdit.policy), null, 4) : \"\"\n );\n }\n }, [policyEdit]);\n\n const resetForm = () => {\n setPolicyName(\"\");\n setPolicyDefinition(\"\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title={`${policyEdit ? \"Info\" : \"Create\"} Policy`}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n \n ) => {\n setPolicyName(e.target.value);\n }}\n value={policyName}\n disabled={!!policyEdit}\n />\n \n\n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n \n {!policyEdit && (\n \n Clear\n \n )}\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(AddPolicy));\n"],"names":["langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","color","border","borderRight","fontSize","fontWeight","dark","darkTheme","withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","className","inputLabel","tooltipContainer","title","placement","item","xs","sx","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","background","display","alignItems","padding","paddingRight","justifyContent","width","marginLeft","onClick","text","icon","variant","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","codeMirrorContainer","marginBottom","marginTop","spacingUtils","modalStyleUtils","closeModalAndRefresh","policyEdit","addLoading","setAddLoading","policyName","setPolicyName","policyDefinition","setPolicyDefinition","name","JSON","stringify","parse","policy","validSave","trim","noValidate","autoComplete","onSubmit","e","preventDefault","api","then","res","catch","err","container","modalFormScrollable","formFieldRow","placeholder","autoFocus","target","disabled","editor","data","modalButtonBar"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3320.b01c2bc8.chunk.js.map b/portal-ui/build/static/js/3320.b01c2bc8.chunk.js.map deleted file mode 100644 index ffd0c6601..000000000 --- a/portal-ui/build/static/js/3320.b01c2bc8.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3320.b01c2bc8.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/AddPolicy.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 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 });\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../common/api\";\nimport { Policy } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport {\n fieldBasic,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n marginTop: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface IAddPolicyProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => void;\n policyEdit: Policy;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst AddPolicy = ({\n classes,\n open,\n closeModalAndRefresh,\n policyEdit,\n setModalErrorSnackMessage,\n}: IAddPolicyProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [policyName, setPolicyName] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (policyEdit) {\n setPolicyName(policyEdit.name);\n setPolicyDefinition(\n policyEdit ? JSON.stringify(JSON.parse(policyEdit.policy), null, 4) : \"\"\n );\n }\n }, [policyEdit]);\n\n const resetForm = () => {\n setPolicyName(\"\");\n setPolicyDefinition(\"\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title={`${policyEdit ? \"Info\" : \"Create\"} Policy`}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n \n ) => {\n setPolicyName(e.target.value);\n }}\n value={policyName}\n disabled={!!policyEdit}\n />\n \n\n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n \n {!policyEdit && (\n \n Clear\n \n )}\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(AddPolicy));\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":["langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","color","border","borderRight","fontSize","fontWeight","dark","darkTheme","withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","className","inputLabel","tooltipContainer","title","placement","item","xs","sx","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","background","display","alignItems","padding","paddingRight","justifyContent","width","marginLeft","onClick","text","icon","variant","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","codeMirrorContainer","marginBottom","marginTop","spacingUtils","modalStyleUtils","closeModalAndRefresh","policyEdit","addLoading","setAddLoading","policyName","setPolicyName","policyDefinition","setPolicyDefinition","name","JSON","stringify","parse","policy","validSave","trim","noValidate","autoComplete","onSubmit","e","preventDefault","api","then","res","catch","err","container","modalFormScrollable","formFieldRow","placeholder","autoFocus","target","disabled","editor","data","modalButtonBar","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3328.04821285.chunk.js b/portal-ui/build/static/js/3328.04821285.chunk.js deleted file mode 100644 index 04eed5ce4..000000000 --- a/portal-ui/build/static/js/3328.04821285.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3328],{63328:function(e,n,t){t.r(n),t.d(n,{default:function(){return Y}});var s=t(29439),i=t(1413),o=t(72791),r=t(60364),a=t(11135),l=t(25787),c=t(64554),u=t(26181),d=t.n(u),f=t(61889),x=t(42649),p=t(23814),m=t(81207),h=t(42209),Z=t(56087),g=t(38442),v=t(75578),j=t(45902),b=t(80184),E=function(e){var n=e.icon,t=void 0===n?null:n,s=e.label,i=void 0===s?null:s;return(0,b.jsxs)(c.Z,{sx:{display:"flex"},children:[(0,b.jsx)("div",{style:{height:16,width:16,display:"flex",alignItems:"center",marginTop:5},children:t}),(0,b.jsx)("div",{style:{marginLeft:t?5:"none"},children:i})]})},T=t(93656),k=t(45987),S=t(36151),y=t(72401),C=["isLoading","onClick","label"],_=function(e){var n=e.isLoading,t=e.onClick,s=e.label,o=(0,k.Z)(e,C);return(0,b.jsx)(S.Z,(0,i.Z)((0,i.Z)({color:"primary",onClick:t,variant:"text",sx:{padding:0,margin:0,alignItems:"flex-start",justifyContent:"flex-start",display:"inline-flex",height:"auto",textDecoration:"underline",color:"#2781B0","&:hover":{background:"#ffffff",textDecoration:"underline"}},disableRipple:!0,disableFocusRipple:!0},o),{},{children:n?(0,b.jsx)(y.Z,{style:{width:16,height:16}}):s}))},N=t(13400),I=t(33548),P=["disabled","onClick"],B=(0,l.Z)((function(e){return(0,a.Z)({root:{"&:hover":{backgroundColor:"#E2E2E2"}}})}))((function(e){var n=e.disabled,t=e.onClick,s=(0,k.Z)(e,P);return(0,b.jsx)(N.Z,(0,i.Z)((0,i.Z)({size:"small",disabled:n,onClick:t},s),{},{children:(0,b.jsx)(I.Z,{})}))})),O=function(e){var n=e.resourceName,t=e.iamScopes,s=e.secureCmpProps,o=void 0===s?{}:s,r=e.children;return(0,b.jsx)(g.s,(0,i.Z)((0,i.Z)({scopes:t,resource:n,errorProps:{disabled:!0}},o),{},{children:r}))},R=function(e){var n=e.isLoading,t=void 0===n||n,s=e.resourceName,i=void 0===s?"":s,o=e.iamScopes,r=e.secureCmpProps,a=void 0===r?{}:r,l=e.property,u=void 0===l?null:l,d=e.value,f=void 0===d?null:d,x=e.onEdit;return(0,b.jsxs)(c.Z,{sx:{display:"flex",alignItems:"baseline",justifyContent:"flex-start"},children:[(0,b.jsx)(j.Z,{label:u,value:(0,b.jsx)(O,{resourceName:i,iamScopes:o,secureCmpProps:a,children:(0,b.jsx)(_,{isLoading:t,onClick:x,label:f})})}),(0,b.jsx)(O,{resourceName:i,iamScopes:o,secureCmpProps:a,children:(0,b.jsx)(B,{onClick:x,sx:{background:"#f8f8f8",marginLeft:"3px",top:3,"& .min-icon":{width:"16px",height:"16px"}}})})]})},F=t(45248),U=function(e){var n=e.bucketSize;return(0,b.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:37,width:37}},children:[(0,b.jsx)(T.Mh,{}),(0,b.jsxs)(c.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",marginLeft:"20px",fontSize:"19px"},children:[(0,b.jsx)("label",{style:{fontWeight:600},children:"Reported Usage:"}),(0,b.jsx)("label",{children:(0,F.ae)(n)})]})]})},G=function(e){var n=e.quota;return(0,b.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:37,width:37}},children:[(0,b.jsx)(T.sj,{}),(0,b.jsxs)(c.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",marginLeft:"20px",fontSize:"19px"},children:[(0,b.jsxs)("label",{style:{fontWeight:600,textTransform:"capitalize"},children:[null===n||void 0===n?void 0:n.type," Quota"]}),(0,b.jsxs)("label",{children:[" ",(0,F.ae)("".concat(null===n||void 0===n?void 0:n.quota))]})]})]})},A=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(5609),t.e(3631)]).then(t.bind(t,33690))}))),L=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(1520),t.e(1604)]).then(t.bind(t,1604))}))),w=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(8391)]).then(t.bind(t,18391))}))),M=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(402)]).then(t.bind(t,70402))}))),D=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(1918),t.e(1705)]).then(t.bind(t,71705))}))),K=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(1581)]).then(t.bind(t,1581))}))),z={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},V=(0,r.$j)((function(e){return{session:e.console.session,distributedSetup:e.system.distributedSetup,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:x.Ih,setBucketDetailsLoad:h.d5}),Y=(0,l.Z)((function(e){return(0,a.Z)((0,i.Z)((0,i.Z)({},p.bK),p.VI))}))(V((function(e){var n=e.classes,t=e.match,r=e.distributedSetup,a=e.setErrorSnackMessage,l=e.loadingBucket,u=e.bucketInfo,x=e.setBucketDetailsLoad,p=(0,o.useState)(null),h=(0,s.Z)(p,2),v=h[0],k=h[1],S=(0,o.useState)("0"),y=(0,s.Z)(S,2),C=y[0],_=y[1],N=(0,o.useState)(!1),I=(0,s.Z)(N,2),P=I[0],B=I[1],O=(0,o.useState)(!1),F=(0,s.Z)(O,2),V=F[0],Y=F[1],q=(0,o.useState)(!1),Q=(0,s.Z)(q,2),W=Q[0],$=Q[1],J=(0,o.useState)(!0),H=(0,s.Z)(J,2),X=H[0],ee=H[1],ne=(0,o.useState)(!0),te=(0,s.Z)(ne,2),se=te[0],ie=te[1],oe=(0,o.useState)(!0),re=(0,s.Z)(oe,2),ae=re[0],le=re[1],ce=(0,o.useState)(!0),ue=(0,s.Z)(ce,2),de=ue[0],fe=ue[1],xe=(0,o.useState)(!0),pe=(0,s.Z)(xe,2),me=pe[0],he=pe[1],Ze=(0,o.useState)(!0),ge=(0,s.Z)(Ze,2),ve=ge[0],je=ge[1],be=(0,o.useState)(!0),Ee=(0,s.Z)(be,2),Te=Ee[0],ke=Ee[1],Se=(0,o.useState)(!0),ye=(0,s.Z)(Se,2),Ce=ye[0],_e=ye[1],Ne=(0,o.useState)(!1),Ie=(0,s.Z)(Ne,2),Pe=Ie[0],Be=Ie[1],Oe=(0,o.useState)(!1),Re=(0,s.Z)(Oe,2),Fe=Re[0],Ue=Re[1],Ge=(0,o.useState)(null),Ae=(0,s.Z)(Ge,2),Le=Ae[0],we=Ae[1],Me=(0,o.useState)(!1),De=(0,s.Z)(Me,2),Ke=De[0],ze=De[1],Ve=(0,o.useState)(!1),Ye=(0,s.Z)(Ve,2),qe=Ye[0],Qe=Ye[1],We=(0,o.useState)(null),$e=(0,s.Z)(We,2),Je=$e[0],He=$e[1],Xe=(0,o.useState)(!1),en=(0,s.Z)(Xe,2),nn=en[0],tn=en[1],sn=(0,o.useState)(!1),on=(0,s.Z)(sn,2),rn=on[0],an=on[1],ln=(0,o.useState)(!1),cn=(0,s.Z)(ln,2),un=cn[0],dn=cn[1],fn=(0,o.useState)(!1),xn=(0,s.Z)(fn,2),pn=xn[0],mn=xn[1],hn=t.params.bucketName,Zn="n/a",gn="";null!==u&&(Zn=u.access,gn=u.definition);var vn=(0,g.F)(hn,[Z.Ft.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION]),jn=(0,g.F)(hn,[Z.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION]),bn=(0,g.F)(hn,[Z.Ft.ADMIN_GET_BUCKET_QUOTA]);(0,o.useEffect)((function(){le(!!l)}),[l,le]),(0,o.useEffect)((function(){de&&(jn?m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/encryption/info")).then((function(e){e.algorithm&&(ze(!0),k(e)),fe(!1)})).catch((function(e){"The server side encryption configuration was not found"===e.errorMessage&&(ze(!1),k(null)),fe(!1)})):(ze(!1),k(null),fe(!1)))}),[de,hn,jn]),(0,o.useEffect)((function(){me&&r&&m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/versioning")).then((function(e){Be(e.is_versioned),he(!1)})).catch((function(e){a(e),he(!1)}))}),[me,a,hn,r]),(0,o.useEffect)((function(){ve&&r&&(bn?m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/quota")).then((function(e){we(e),e.quota?Ue(!0):Ue(!1),je(!1)})).catch((function(e){a(e),Ue(!1),je(!1)})):(Ue(!1),je(!1)))}),[ve,he,a,hn,r,bn]),(0,o.useEffect)((function(){me&&r&&(vn?m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/object-locking")).then((function(e){B(e.object_locking_enabled),ee(!1)})).catch((function(e){a(e),ee(!1)})):ee(!1))}),[X,a,hn,me,r,vn]),(0,o.useEffect)((function(){se&&m.Z.invoke("GET","/api/v1/buckets").then((function(e){var n=d()(e,"buckets",[]).find((function(e){return e.name===hn})),t=d()(n,"size","0");ie(!1),_(t)})).catch((function(e){ie(!1),a(e)}))}),[se,a,hn]),(0,o.useEffect)((function(){Te&&r&&m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/replication")).then((function(e){var n=e.rules?e.rules:[];$(n.length>0),ke(!1)})).catch((function(e){a(e),ke(!1)}))}),[Te,a,hn,r]),(0,o.useEffect)((function(){Ce&&P&&m.Z.invoke("GET","/api/v1/buckets/".concat(hn,"/retention")).then((function(e){_e(!1),Qe(!0),He(e)})).catch((function(e){Qe(!1),_e(!1),He(null)}))}),[Ce,P,hn]);var En=function(){x(!0),le(!0),ie(!0),he(!0),fe(!0),_e(!0)};return(0,b.jsxs)(o.Fragment,{children:[rn&&(0,b.jsx)(w,{open:rn,selectedBucket:hn,encryptionEnabled:Ke,encryptionCfg:v,closeModalAndRefresh:function(){an(!1),fe(!0)}}),un&&(0,b.jsx)(K,{open:un,selectedBucket:hn,enabled:Fe,cfg:Le,closeModalAndRefresh:function(){dn(!1),je(!0)}}),V&&(0,b.jsx)(A,{bucketName:hn,open:V,actualPolicy:Zn,actualDefinition:gn,closeModalAndRefresh:function(){Y(!1),En()}}),nn&&(0,b.jsx)(L,{bucketName:hn,open:nn,closeModalAndRefresh:function(){tn(!1),En()}}),pn&&(0,b.jsx)(M,{closeVersioningModalAndRefresh:function(e){mn(!1),e&&En()},modalOpen:pn,selectedBucket:hn,versioningCurrentState:Pe}),(0,b.jsx)(f.ZP,{container:!0,children:(0,b.jsx)(f.ZP,{item:!0,xs:12,className:n.spacerBottom,children:(0,b.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Summary"})})}),(0,b.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:hn,children:(0,b.jsxs)(c.Z,{sx:(0,i.Z)({},z),children:[(0,b.jsxs)(c.Z,{sx:(0,i.Z)({},z),children:[(0,b.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:hn,children:(0,b.jsx)(R,{iamScopes:[Z.Ft.S3_PUT_BUCKET_POLICY],resourceName:hn,property:"Access Policy:",value:Zn.toLowerCase(),onEdit:function(){Y(!0)},isLoading:ae})}),(0,b.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION],resource:hn,children:(0,b.jsx)(R,{iamScopes:[Z.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION],resourceName:hn,property:"Encryption:",value:Ke?"Enabled":"Disabled",onEdit:function(){an(!0)},isLoading:de})}),(0,b.jsx)(g.s,{scopes:[Z.Ft.S3_GET_REPLICATION_CONFIGURATION],resource:hn,children:(0,b.jsx)(j.Z,{label:"Replication:",value:(0,b.jsx)(E,{icon:W?(0,b.jsx)(T.E3,{}):(0,b.jsx)(T.dR,{}),label:(0,b.jsx)("label",{className:n.textMuted,children:W?"Enabled":"Disabled"})})})}),(0,b.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION],resource:hn,children:(0,b.jsx)(j.Z,{label:"Object Locking:",value:(0,b.jsx)(E,{icon:P?(0,b.jsx)(T.E3,{}):(0,b.jsx)(T.dR,{}),label:(0,b.jsx)("label",{className:n.textMuted,children:P?"Enabled":"Disabled"})})})}),(0,b.jsx)(c.Z,{className:n.spacerTop,children:(0,b.jsx)(j.Z,{label:"Tags:",value:(0,b.jsx)(D,{setErrorSnackMessage:a,bucketName:hn})})})]}),(0,b.jsx)(c.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"},children:(0,b.jsx)(U,{bucketSize:C})})]})}),r&&(0,b.jsxs)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_VERSIONING],resource:hn,children:[(0,b.jsx)(f.ZP,{container:!0,children:(0,b.jsx)(f.ZP,{item:!0,xs:12,className:n.spacerBottom,children:(0,b.jsx)("h3",{style:{marginTop:"25px",marginBottom:"0"},children:"Versioning"})})}),(0,b.jsxs)(c.Z,{sx:(0,i.Z)({},z),children:[(0,b.jsxs)(c.Z,{sx:(0,i.Z)({},z),children:[(0,b.jsx)(R,{iamScopes:[Z.Ft.S3_PUT_BUCKET_VERSIONING],resourceName:hn,property:"Versioning:",value:Pe?"Enabled":"Disabled",onEdit:function(){mn(!0)},isLoading:me}),(0,b.jsx)(R,{iamScopes:[Z.Ft.ADMIN_SET_BUCKET_QUOTA],resourceName:hn,property:"Quota:",value:Fe?"Enabled":"Disabled",onEdit:function(){dn(!0)},isLoading:ve})]}),(0,b.jsx)(c.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"},children:Fe&&Le?(0,b.jsx)(G,{quota:Le}):null})]})]}),P&&(0,b.jsxs)(g.s,{scopes:[Z.Ft.S3_GET_OBJECT_RETENTION],resource:hn,children:[(0,b.jsx)(f.ZP,{container:!0,children:(0,b.jsx)(f.ZP,{item:!0,xs:12,className:n.spacerBottom,children:(0,b.jsx)("h3",{style:{marginTop:"25px",marginBottom:"0"},children:"Retention"})})}),(0,b.jsxs)(c.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},children:[(0,b.jsxs)(c.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},children:[(0,b.jsx)(R,{iamScopes:[Z.Ft.ADMIN_SET_BUCKET_QUOTA],resourceName:hn,property:"Retention:",value:qe?"Enabled":"Disabled",onEdit:function(){tn(!0)},isLoading:Ce}),(0,b.jsx)(j.Z,{label:"Mode:",value:(0,b.jsx)("label",{className:n.textMuted,style:{textTransform:"capitalize"},children:Je&&Je.mode?Je.mode:"-"})}),(0,b.jsx)(j.Z,{label:"Validity:",value:(0,b.jsxs)("label",{className:n.textMuted,style:{textTransform:"capitalize"},children:[Je&&Je.validity," ",Je&&(1===Je.validity?Je.unit.slice(0,-1):Je.unit)]})})]}),(0,b.jsx)(c.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"}})]})]})]})})))},45902:function(e,n,t){var s=t(1413),i=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,r=e.value,a=void 0===r?"-":r,l=e.orientation,c=void 0===l?"column":l,u=e.stkProps,d=void 0===u?{}:u,f=e.lblProps,x=void 0===f?{}:f,p=e.valProps,m=void 0===p?{}:p;return(0,o.jsxs)(i.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,o.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:600}},x),{},{children:t})),(0,o.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:500}},m),{},{children:a}))]}))}},53767:function(e,n,t){var s=t(4942),i=t(63366),o=t(87462),r=t(72791),a=t(51184),l=t(45682),c=t(78519),u=t(82466),d=t(47630),f=t(93736),x=t(80184),p=["component","direction","spacing","divider","children"];function m(e,n){var t=r.Children.toArray(e).filter(Boolean);return t.reduce((function(e,s,i){return e.push(s),i :not(style) + :not(style)":(0,s.Z)({margin:0},"margin".concat((i=t?d[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[i])),(0,l.NA)(r,e))};var i})))}return i})),Z=r.forwardRef((function(e,n){var t=(0,f.Z)({props:e,name:"MuiStack"}),s=(0,c.Z)(t),r=s.component,a=void 0===r?"div":r,l=s.direction,u=void 0===l?"column":l,d=s.spacing,Z=void 0===d?0:d,g=s.divider,v=s.children,j=(0,i.Z)(s,p),b={direction:u,spacing:Z};return(0,x.jsx)(h,(0,o.Z)({as:a,ownerState:b,ref:n},j,{children:g?m(v,g):v}))}));n.Z=Z}}]); -//# sourceMappingURL=3328.04821285.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3328.04821285.chunk.js.map b/portal-ui/build/static/js/3328.04821285.chunk.js.map deleted file mode 100644 index 188763a6f..000000000 --- a/portal-ui/build/static/js/3328.04821285.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3328.04821285.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/LabelWithIcon.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/ActionLink.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/EditActionButton.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/EditablePropertyItem.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/ReportedUsage.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/BucketQuotaSize.tsx","screens/Console/Buckets/BucketDetails/BucketSummaryPanel.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","../node_modules/@mui/material/Stack/Stack.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 { Box } from \"@mui/material\";\n\ntype LabelWithIconProps = {\n icon: React.ReactNode | null;\n label: React.ReactNode | null;\n};\n\nconst LabelWithIcon = ({ icon = null, label = null }: LabelWithIconProps) => {\n return (\n \n \n {icon}\n \n
    {label}
    \n \n );\n};\n\nexport default LabelWithIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 Loader from \"../../../Common/Loader/Loader\";\n\ntype ActionLinkProps = {\n isLoading: boolean;\n onClick: () => void;\n classes?: any;\n label: any;\n [x: string]: any;\n};\nconst ActionLink = ({\n isLoading,\n onClick,\n label,\n ...restProps\n}: ActionLinkProps) => {\n return (\n \n {isLoading ? : label}\n \n );\n};\n\nexport default ActionLink;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IconButton } from \"@mui/material\";\nimport EditIcon from \"../../../../../icons/EditIcon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ntype EditActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"#E2E2E2\",\n },\n },\n });\n\nconst EditActionButton = ({\n disabled,\n onClick,\n ...restProps\n}: EditActionButtonProps) => {\n return (\n \n \n \n );\n};\n\nexport default withStyles(styles)(EditActionButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport LabelValuePair from \"../../../Common/UsageBarWrapper/LabelValuePair\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport ActionLink from \"./ActionLink\";\nimport { Box } from \"@mui/material\";\nimport EditActionButton from \"./EditActionButton\";\n\ntype EditablePropertyItemProps = {\n isLoading: boolean;\n resourceName: string;\n iamScopes: string[];\n property: any;\n value: any;\n onEdit: () => void;\n secureCmpProps?: Record;\n};\n\nconst SecureAction = ({\n resourceName,\n iamScopes,\n secureCmpProps = {},\n children,\n}: {\n resourceName: string;\n iamScopes: string[];\n children: any;\n secureCmpProps?: Record;\n}) => {\n return (\n \n {children}\n \n );\n};\n\nconst EditablePropertyItem = ({\n isLoading = true,\n resourceName = \"\",\n iamScopes,\n secureCmpProps = {},\n property = null,\n value = null,\n onEdit,\n}: EditablePropertyItemProps) => {\n return (\n \n \n \n \n }\n />\n \n \n \n \n );\n};\n\nexport default EditablePropertyItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { niceBytes } from \"../../../../../common/utils\";\nimport { ReportedUsageFullIcon } from \"../../../../../icons\";\n\nconst ReportedUsage = ({ bucketSize }: { bucketSize: string }) => {\n return (\n \n \n\n \n \n Reported Usage:\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 from \"react\";\nimport { Box } from \"@mui/material\";\nimport { niceBytes } from \"../../../../../common/utils\";\nimport { HardBucketQuotaIcon } from \"../../../../../icons\";\n\nconst BucketQuotaSize = ({ quota }: { quota: any }) => {\n return (\n \n \n\n \n \n {quota?.type} Quota\n \n \n \n \n );\n};\n\nexport default BucketQuotaSize;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Box } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { AppState } from \"../../../../store\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n BucketEncryptionInfo,\n BucketInfo,\n BucketObjectLocking,\n BucketQuota,\n BucketReplication,\n BucketVersioning,\n} from \"../types\";\nimport { BucketList } from \"../../Watch/types\";\nimport {\n spacingUtils,\n textStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IRetentionConfig,\n} from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport { setBucketDetailsLoad } from \"../actions\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport LabelWithIcon from \"./SummaryItems/LabelWithIcon\";\nimport { EnabledIcon, DisabledIcon } from \"../../../../icons\";\nimport EditablePropertyItem from \"./SummaryItems/EditablePropertyItem\";\nimport ReportedUsage from \"./SummaryItems/ReportedUsage\";\nimport BucketQuotaSize from \"./SummaryItems/BucketQuotaSize\";\n\nconst SetAccessPolicy = withSuspense(\n React.lazy(() => import(\"./SetAccessPolicy\"))\n);\nconst SetRetentionConfig = withSuspense(\n React.lazy(() => import(\"./SetRetentionConfig\"))\n);\nconst EnableBucketEncryption = withSuspense(\n React.lazy(() => import(\"./EnableBucketEncryption\"))\n);\nconst EnableVersioningModal = withSuspense(\n React.lazy(() => import(\"./EnableVersioningModal\"))\n);\nconst BucketTags = withSuspense(\n React.lazy(() => import(\"./SummaryItems/BucketTags\"))\n);\n\nconst EnableQuota = withSuspense(React.lazy(() => import(\"./EnableQuota\")));\n\ninterface IBucketSummaryProps {\n classes: any;\n match: any;\n distributedSetup: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...textStyleUtils,\n });\n\nconst twoColCssGridLayoutConfig = {\n display: \"grid\",\n gridTemplateColumns: { xs: \"1fr\", sm: \"2fr 1fr\" },\n gridAutoFlow: { xs: \"dense\", sm: \"row\" },\n gap: 2,\n};\n\nconst BucketSummary = ({\n classes,\n match,\n distributedSetup,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n setBucketDetailsLoad,\n}: IBucketSummaryProps) => {\n const [encryptionCfg, setEncryptionCfg] =\n useState(null);\n const [bucketSize, setBucketSize] = useState(\"0\");\n const [hasObjectLocking, setHasObjectLocking] = useState(false);\n const [accessPolicyScreenOpen, setAccessPolicyScreenOpen] =\n useState(false);\n const [replicationRules, setReplicationRules] = useState(false);\n const [loadingObjectLocking, setLoadingLocking] = useState(true);\n const [loadingSize, setLoadingSize] = useState(true);\n const [bucketLoading, setBucketLoading] = useState(true);\n const [loadingEncryption, setLoadingEncryption] = useState(true);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\n const [loadingQuota, setLoadingQuota] = useState(true);\n const [loadingReplication, setLoadingReplication] = useState(true);\n const [loadingRetention, setLoadingRetention] = useState(true);\n const [isVersioned, setIsVersioned] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quota, setQuota] = useState(null);\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [retentionEnabled, setRetentionEnabled] = useState(false);\n const [retentionConfig, setRetentionConfig] =\n useState(null);\n const [retentionConfigOpen, setRetentionConfigOpen] =\n useState(false);\n const [enableEncryptionScreenOpen, setEnableEncryptionScreenOpen] =\n useState(false);\n const [enableQuotaScreenOpen, setEnableQuotaScreenOpen] =\n useState(false);\n const [enableVersioningOpen, setEnableVersioningOpen] =\n useState(false);\n\n const bucketName = match.params[\"bucketName\"];\n\n let accessPolicy = \"n/a\";\n let policyDefinition = \"\";\n\n if (bucketInfo !== null) {\n accessPolicy = bucketInfo.access;\n policyDefinition = bucketInfo.definition;\n }\n\n const displayGetBucketObjectLockConfiguration = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION,\n ]);\n\n const displayGetBucketEncryptionConfiguration = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,\n ]);\n\n const displayGetBucketQuota = hasPermission(bucketName, [\n IAM_SCOPES.ADMIN_GET_BUCKET_QUOTA,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setBucketLoading(true);\n } else {\n setBucketLoading(false);\n }\n }, [loadingBucket, setBucketLoading]);\n\n useEffect(() => {\n if (loadingEncryption) {\n if (displayGetBucketEncryptionConfiguration) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/encryption/info`)\n .then((res: BucketEncryptionInfo) => {\n if (res.algorithm) {\n setEncryptionEnabled(true);\n setEncryptionCfg(res);\n }\n setLoadingEncryption(false);\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.errorMessage ===\n \"The server side encryption configuration was not found\"\n ) {\n setEncryptionEnabled(false);\n setEncryptionCfg(null);\n }\n setLoadingEncryption(false);\n });\n } else {\n setEncryptionEnabled(false);\n setEncryptionCfg(null);\n setLoadingEncryption(false);\n }\n }\n }, [loadingEncryption, bucketName, displayGetBucketEncryptionConfiguration]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\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 }\n }, [loadingVersioning, setErrorSnackMessage, bucketName, distributedSetup]);\n\n useEffect(() => {\n if (loadingQuota && distributedSetup) {\n if (displayGetBucketQuota) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/quota`)\n .then((res: BucketQuota) => {\n setQuota(res);\n if (res.quota) {\n setQuotaEnabled(true);\n } else {\n setQuotaEnabled(false);\n }\n setLoadingQuota(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setQuotaEnabled(false);\n setLoadingQuota(false);\n });\n } else {\n setQuotaEnabled(false);\n setLoadingQuota(false);\n }\n }\n }, [\n loadingQuota,\n setLoadingVersioning,\n setErrorSnackMessage,\n bucketName,\n distributedSetup,\n displayGetBucketQuota,\n ]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\n if (displayGetBucketObjectLockConfiguration) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/object-locking`)\n .then((res: BucketObjectLocking) => {\n setHasObjectLocking(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 }, [\n loadingObjectLocking,\n setErrorSnackMessage,\n bucketName,\n loadingVersioning,\n distributedSetup,\n displayGetBucketObjectLockConfiguration,\n ]);\n\n useEffect(() => {\n if (loadingSize) {\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n const resBuckets = get(res, \"buckets\", []);\n\n const bucketInfo = resBuckets.find(\n (bucket) => bucket.name === bucketName\n );\n\n const size = get(bucketInfo, \"size\", \"0\");\n\n setLoadingSize(false);\n setBucketSize(size);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingSize(false);\n setErrorSnackMessage(err);\n });\n }\n }, [loadingSize, setErrorSnackMessage, bucketName]);\n\n useEffect(() => {\n if (loadingReplication && distributedSetup) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication`)\n .then((res: BucketReplication) => {\n const r = res.rules ? res.rules : [];\n setReplicationRules(r.length > 0);\n setLoadingReplication(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingReplication(false);\n });\n }\n }, [loadingReplication, setErrorSnackMessage, bucketName, distributedSetup]);\n\n useEffect(() => {\n if (loadingRetention && hasObjectLocking) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/retention`)\n .then((res: IRetentionConfig) => {\n setLoadingRetention(false);\n setRetentionEnabled(true);\n setRetentionConfig(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setRetentionEnabled(false);\n setLoadingRetention(false);\n setRetentionConfig(null);\n });\n }\n }, [loadingRetention, hasObjectLocking, bucketName]);\n\n const loadAllBucketData = () => {\n setBucketDetailsLoad(true);\n setBucketLoading(true);\n setLoadingSize(true);\n setLoadingVersioning(true);\n setLoadingEncryption(true);\n setLoadingRetention(true);\n };\n\n const setBucketVersioning = () => {\n setEnableVersioningOpen(true);\n };\n const setBucketQuota = () => {\n setEnableQuotaScreenOpen(true);\n };\n\n const closeEnableBucketEncryption = () => {\n setEnableEncryptionScreenOpen(false);\n setLoadingEncryption(true);\n };\n const closeEnableBucketQuota = () => {\n setEnableQuotaScreenOpen(false);\n setLoadingQuota(true);\n };\n\n const closeSetAccessPolicy = () => {\n setAccessPolicyScreenOpen(false);\n loadAllBucketData();\n };\n\n const closeRetentionConfig = () => {\n setRetentionConfigOpen(false);\n loadAllBucketData();\n };\n\n const closeEnableVersioning = (refresh: boolean) => {\n setEnableVersioningOpen(false);\n if (refresh) {\n loadAllBucketData();\n }\n };\n // @ts-ignore\n return (\n \n {enableEncryptionScreenOpen && (\n \n )}\n {enableQuotaScreenOpen && (\n \n )}\n {accessPolicyScreenOpen && (\n \n )}\n {retentionConfigOpen && (\n \n )}\n {enableVersioningOpen && (\n \n )}\n\n \n \n \n Summary\n \n \n \n \n \n \n \n {\n setAccessPolicyScreenOpen(true);\n }}\n isLoading={bucketLoading}\n />\n \n\n \n {\n setEnableEncryptionScreenOpen(true);\n }}\n isLoading={loadingEncryption}\n />\n \n\n \n : }\n label={\n \n }\n />\n }\n />\n \n\n \n : }\n label={\n \n }\n />\n }\n />\n \n \n \n }\n />\n \n \n\n \n \n \n \n \n\n {distributedSetup && (\n \n \n \n \n Versioning\n \n \n \n\n \n \n \n\n \n \n \n {quotaEnabled && quota ? : null}\n \n \n \n )}\n\n {hasObjectLocking && (\n \n \n \n \n Retention\n \n \n \n\n \n \n {\n setRetentionConfigOpen(true);\n }}\n isLoading={loadingRetention}\n />\n\n \n {retentionConfig && retentionConfig.mode\n ? retentionConfig.mode\n : \"-\"}\n \n }\n />\n \n {retentionConfig && retentionConfig.validity}{\" \"}\n {retentionConfig &&\n (retentionConfig.validity === 1\n ? retentionConfig.unit.slice(0, -1)\n : retentionConfig.unit)}\n \n }\n />\n \n\n \n {/*Spacer*/}\n \n \n \n )}\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\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});\n\nexport default withStyles(styles)(connector(BucketSummary));\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;"],"names":["icon","label","Box","sx","display","style","height","width","alignItems","marginTop","marginLeft","isLoading","onClick","restProps","Button","color","variant","padding","margin","justifyContent","textDecoration","background","disableRipple","disableFocusRipple","Loader","withStyles","theme","createStyles","root","backgroundColor","disabled","IconButton","size","EditIcon","SecureAction","resourceName","iamScopes","secureCmpProps","children","SecureComponent","scopes","resource","errorProps","property","value","onEdit","LabelValuePair","top","bucketSize","flexFlow","fontSize","fontWeight","niceBytes","quota","textTransform","type","SetAccessPolicy","withSuspense","React","SetRetentionConfig","EnableBucketEncryption","EnableVersioningModal","BucketTags","EnableQuota","twoColCssGridLayoutConfig","gridTemplateColumns","xs","sm","gridAutoFlow","gap","connector","connect","state","session","console","distributedSetup","system","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","setBucketDetailsLoad","spacingUtils","textStyleUtils","classes","match","useState","encryptionCfg","setEncryptionCfg","setBucketSize","hasObjectLocking","setHasObjectLocking","accessPolicyScreenOpen","setAccessPolicyScreenOpen","replicationRules","setReplicationRules","loadingObjectLocking","setLoadingLocking","loadingSize","setLoadingSize","bucketLoading","setBucketLoading","loadingEncryption","setLoadingEncryption","loadingVersioning","setLoadingVersioning","loadingQuota","setLoadingQuota","loadingReplication","setLoadingReplication","loadingRetention","setLoadingRetention","isVersioned","setIsVersioned","quotaEnabled","setQuotaEnabled","setQuota","encryptionEnabled","setEncryptionEnabled","retentionEnabled","setRetentionEnabled","retentionConfig","setRetentionConfig","retentionConfigOpen","setRetentionConfigOpen","enableEncryptionScreenOpen","setEnableEncryptionScreenOpen","enableQuotaScreenOpen","setEnableQuotaScreenOpen","enableVersioningOpen","setEnableVersioningOpen","bucketName","params","accessPolicy","policyDefinition","access","definition","displayGetBucketObjectLockConfiguration","hasPermission","IAM_SCOPES","displayGetBucketEncryptionConfiguration","displayGetBucketQuota","useEffect","api","then","res","algorithm","catch","err","errorMessage","is_versioned","object_locking_enabled","get","find","bucket","name","r","rules","length","loadAllBucketData","Fragment","open","selectedBucket","closeModalAndRefresh","enabled","cfg","actualPolicy","actualDefinition","closeVersioningModalAndRefresh","refresh","modalOpen","versioningCurrentState","Grid","container","item","className","spacerBottom","marginBottom","toLowerCase","textMuted","spacerTop","mode","validity","unit","slice","orientation","stkProps","lblProps","valProps","direction","marginRight","_excluded","joinChildren","separator","childrenArray","filter","Boolean","reduce","output","child","index","push","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","spacing","transformer","createUnarySpacing","base","Object","keys","acc","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","Stack","inProps","ref","themeProps","useThemeProps","extendSxProp","component","divider","other","_objectWithoutPropertiesLoose","_jsx","as"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3328.c99fe6b3.chunk.js b/portal-ui/build/static/js/3328.c99fe6b3.chunk.js new file mode 100644 index 000000000..123635116 --- /dev/null +++ b/portal-ui/build/static/js/3328.c99fe6b3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3328],{63328:function(e,n,t){t.r(n),t.d(n,{default:function(){return q}});var s=t(29439),i=t(1413),o=t(72791),r=t(60364),l=t(11135),a=t(25787),c=t(61889),u=t(64554),d=t(26181),f=t.n(d),x=t(42649),p=t(23814),h=t(81207),m=t(42209),Z=t(56087),g=t(38442),v=t(75578),b=t(45902),j=t(80184),E=function(e){var n=e.icon,t=void 0===n?null:n,s=e.label,i=void 0===s?null:s;return(0,j.jsxs)(u.Z,{sx:{display:"flex"},children:[(0,j.jsx)("div",{style:{height:16,width:16,display:"flex",alignItems:"center",marginTop:5},children:t}),(0,j.jsx)("div",{style:{marginLeft:t?5:"none"},children:i})]})},k=t(93656),T=t(45987),S=t(36151),C=t(72401),y=["isLoading","onClick","label"],_=function(e){var n=e.isLoading,t=e.onClick,s=e.label,o=(0,T.Z)(e,y);return(0,j.jsx)(S.Z,(0,i.Z)((0,i.Z)({color:"primary",onClick:t,variant:"text",sx:{padding:0,margin:0,alignItems:"flex-start",justifyContent:"flex-start",display:"inline-flex",height:"auto",textDecoration:"underline",color:"#2781B0","&:hover":{background:"#ffffff",textDecoration:"underline"}},disableRipple:!0,disableFocusRipple:!0},o),{},{children:n?(0,j.jsx)(C.Z,{style:{width:16,height:16}}):s}))},N=t(13400),I=t(33548),O=["disabled","onClick"],R=(0,a.Z)((function(e){return(0,l.Z)({root:{"&:hover":{backgroundColor:"#E2E2E2"}}})}))((function(e){var n=e.disabled,t=e.onClick,s=(0,T.Z)(e,O);return(0,j.jsx)(N.Z,(0,i.Z)((0,i.Z)({size:"small",disabled:n,onClick:t},s),{},{children:(0,j.jsx)(I.Z,{})}))})),F=function(e){var n=e.resourceName,t=e.iamScopes,s=e.secureCmpProps,o=void 0===s?{}:s,r=e.children;return(0,j.jsx)(g.s,(0,i.Z)((0,i.Z)({scopes:t,resource:n,errorProps:{disabled:!0}},o),{},{children:r}))},P=function(e){var n=e.isLoading,t=void 0===n||n,s=e.resourceName,i=void 0===s?"":s,o=e.iamScopes,r=e.secureCmpProps,l=void 0===r?{}:r,a=e.property,c=void 0===a?null:a,d=e.value,f=void 0===d?null:d,x=e.onEdit;return(0,j.jsxs)(u.Z,{sx:{display:"flex",alignItems:"baseline",justifyContent:"flex-start"},children:[(0,j.jsx)(b.Z,{label:c,value:(0,j.jsx)(F,{resourceName:i,iamScopes:o,secureCmpProps:l,children:(0,j.jsx)(_,{isLoading:t,onClick:x,label:f})})}),(0,j.jsx)(F,{resourceName:i,iamScopes:o,secureCmpProps:l,children:(0,j.jsx)(R,{onClick:x,sx:{background:"#f8f8f8",marginLeft:"3px",top:3,"& .min-icon":{width:"16px",height:"16px"}}})})]})},B=t(45248),U=function(e){var n=e.bucketSize;return(0,j.jsxs)(u.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:37,width:37}},children:[(0,j.jsx)(k.Mh,{}),(0,j.jsxs)(u.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",marginLeft:"20px",fontSize:"19px"},children:[(0,j.jsx)("label",{style:{fontWeight:600},children:"Reported Usage:"}),(0,j.jsx)("label",{children:(0,B.ae)(n)})]})]})},G=function(e){var n=e.quota;return(0,j.jsxs)(u.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:37,width:37}},children:[(0,j.jsx)(k.sj,{}),(0,j.jsxs)(u.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",marginLeft:"20px",fontSize:"19px"},children:[(0,j.jsxs)("label",{style:{fontWeight:600,textTransform:"capitalize"},children:[null===n||void 0===n?void 0:n.type," Quota"]}),(0,j.jsxs)("label",{children:[" ",(0,B.ae)("".concat(null===n||void 0===n?void 0:n.quota))]})]})]})},A=t(50896),L=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(5609),t.e(3631)]).then(t.bind(t,33690))}))),w=(0,v.Z)(o.lazy((function(){return t.e(1604).then(t.bind(t,1604))}))),M=(0,v.Z)(o.lazy((function(){return t.e(8391).then(t.bind(t,18391))}))),D=(0,v.Z)(o.lazy((function(){return t.e(402).then(t.bind(t,70402))}))),K=(0,v.Z)(o.lazy((function(){return Promise.all([t.e(1918),t.e(1705)]).then(t.bind(t,71705))}))),z=(0,v.Z)(o.lazy((function(){return t.e(1581).then(t.bind(t,1581))}))),V={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},Y=(0,r.$j)((function(e){return{session:e.console.session,distributedSetup:e.system.distributedSetup,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:x.Ih,setBucketDetailsLoad:m.d5}),q=(0,a.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)({},p.bK),p.VI))}))(Y((function(e){var n=e.classes,t=e.match,r=e.distributedSetup,l=e.setErrorSnackMessage,a=e.loadingBucket,d=e.bucketInfo,x=e.setBucketDetailsLoad,p=(0,o.useState)(null),m=(0,s.Z)(p,2),v=m[0],T=m[1],S=(0,o.useState)("0"),C=(0,s.Z)(S,2),y=C[0],_=C[1],N=(0,o.useState)(!1),I=(0,s.Z)(N,2),O=I[0],R=I[1],F=(0,o.useState)(!1),B=(0,s.Z)(F,2),Y=B[0],q=B[1],Q=(0,o.useState)(!1),W=(0,s.Z)(Q,2),$=W[0],J=W[1],H=(0,o.useState)(!0),X=(0,s.Z)(H,2),ee=X[0],ne=X[1],te=(0,o.useState)(!0),se=(0,s.Z)(te,2),ie=se[0],oe=se[1],re=(0,o.useState)(!0),le=(0,s.Z)(re,2),ae=le[0],ce=le[1],ue=(0,o.useState)(!0),de=(0,s.Z)(ue,2),fe=de[0],xe=de[1],pe=(0,o.useState)(!0),he=(0,s.Z)(pe,2),me=he[0],Ze=he[1],ge=(0,o.useState)(!0),ve=(0,s.Z)(ge,2),be=ve[0],je=ve[1],Ee=(0,o.useState)(!0),ke=(0,s.Z)(Ee,2),Te=ke[0],Se=ke[1],Ce=(0,o.useState)(!0),ye=(0,s.Z)(Ce,2),_e=ye[0],Ne=ye[1],Ie=(0,o.useState)(!1),Oe=(0,s.Z)(Ie,2),Re=Oe[0],Fe=Oe[1],Pe=(0,o.useState)(!1),Be=(0,s.Z)(Pe,2),Ue=Be[0],Ge=Be[1],Ae=(0,o.useState)(null),Le=(0,s.Z)(Ae,2),we=Le[0],Me=Le[1],De=(0,o.useState)(!1),Ke=(0,s.Z)(De,2),ze=Ke[0],Ve=Ke[1],Ye=(0,o.useState)(!1),qe=(0,s.Z)(Ye,2),Qe=qe[0],We=qe[1],$e=(0,o.useState)(null),Je=(0,s.Z)($e,2),He=Je[0],Xe=Je[1],en=(0,o.useState)(!1),nn=(0,s.Z)(en,2),tn=nn[0],sn=nn[1],on=(0,o.useState)(!1),rn=(0,s.Z)(on,2),ln=rn[0],an=rn[1],cn=(0,o.useState)(!1),un=(0,s.Z)(cn,2),dn=un[0],fn=un[1],xn=(0,o.useState)(!1),pn=(0,s.Z)(xn,2),hn=pn[0],mn=pn[1],Zn=t.params.bucketName,gn="n/a",vn="";null!==d&&(gn=d.access,vn=d.definition);var bn=(0,g.F)(Zn,[Z.Ft.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION]),jn=(0,g.F)(Zn,[Z.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION]),En=(0,g.F)(Zn,[Z.Ft.ADMIN_GET_BUCKET_QUOTA]);(0,o.useEffect)((function(){ce(!!a)}),[a,ce]),(0,o.useEffect)((function(){fe&&(jn?h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/encryption/info")).then((function(e){e.algorithm&&(Ve(!0),T(e)),xe(!1)})).catch((function(e){"The server side encryption configuration was not found"===e.errorMessage&&(Ve(!1),T(null)),xe(!1)})):(Ve(!1),T(null),xe(!1)))}),[fe,Zn,jn]),(0,o.useEffect)((function(){me&&r&&h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/versioning")).then((function(e){Fe(e.is_versioned),Ze(!1)})).catch((function(e){l(e),Ze(!1)}))}),[me,l,Zn,r]),(0,o.useEffect)((function(){be&&r&&(En?h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/quota")).then((function(e){Me(e),e.quota?Ge(!0):Ge(!1),je(!1)})).catch((function(e){l(e),Ge(!1),je(!1)})):(Ge(!1),je(!1)))}),[be,Ze,l,Zn,r,En]),(0,o.useEffect)((function(){me&&r&&(bn?h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/object-locking")).then((function(e){R(e.object_locking_enabled),ne(!1)})).catch((function(e){l(e),ne(!1)})):ne(!1))}),[ee,l,Zn,me,r,bn]),(0,o.useEffect)((function(){ie&&h.Z.invoke("GET","/api/v1/buckets").then((function(e){var n=f()(e,"buckets",[]).find((function(e){return e.name===Zn})),t=f()(n,"size","0");oe(!1),_(t)})).catch((function(e){oe(!1),l(e)}))}),[ie,l,Zn]),(0,o.useEffect)((function(){Te&&r&&h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/replication")).then((function(e){var n=e.rules?e.rules:[];J(n.length>0),Se(!1)})).catch((function(e){l(e),Se(!1)}))}),[Te,l,Zn,r]),(0,o.useEffect)((function(){_e&&O&&h.Z.invoke("GET","/api/v1/buckets/".concat(Zn,"/retention")).then((function(e){Ne(!1),We(!0),Xe(e)})).catch((function(e){We(!1),Ne(!1),Xe(null)}))}),[_e,O,Zn]);var kn=function(){x(!0),ce(!0),oe(!0),Ze(!0),xe(!0),Ne(!0)};return(0,j.jsxs)(o.Fragment,{children:[ln&&(0,j.jsx)(M,{open:ln,selectedBucket:Zn,encryptionEnabled:ze,encryptionCfg:v,closeModalAndRefresh:function(){an(!1),xe(!0)}}),dn&&(0,j.jsx)(z,{open:dn,selectedBucket:Zn,enabled:Ue,cfg:we,closeModalAndRefresh:function(){fn(!1),je(!0)}}),Y&&(0,j.jsx)(L,{bucketName:Zn,open:Y,actualPolicy:gn,actualDefinition:vn,closeModalAndRefresh:function(){q(!1),kn()}}),tn&&(0,j.jsx)(w,{bucketName:Zn,open:tn,closeModalAndRefresh:function(){sn(!1),kn()}}),hn&&(0,j.jsx)(D,{closeVersioningModalAndRefresh:function(e){mn(!1),e&&kn()},modalOpen:hn,selectedBucket:Zn,versioningCurrentState:Re}),(0,j.jsx)(A.Z,{children:"Summary"}),(0,j.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:Zn,children:(0,j.jsx)(c.ZP,{item:!0,xs:12,children:(0,j.jsxs)(u.Z,{sx:(0,i.Z)({},V),children:[(0,j.jsxs)(u.Z,{sx:(0,i.Z)({},V),children:[(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_POLICY],resource:Zn,children:(0,j.jsx)(P,{iamScopes:[Z.Ft.S3_PUT_BUCKET_POLICY],resourceName:Zn,property:"Access Policy:",value:gn.toLowerCase(),onEdit:function(){q(!0)},isLoading:ae})}),(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION],resource:Zn,children:(0,j.jsx)(P,{iamScopes:[Z.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION],resourceName:Zn,property:"Encryption:",value:ze?"Enabled":"Disabled",onEdit:function(){an(!0)},isLoading:fe})}),(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_REPLICATION_CONFIGURATION],resource:Zn,children:(0,j.jsx)(b.Z,{label:"Replication:",value:(0,j.jsx)(E,{icon:$?(0,j.jsx)(k.E3,{}):(0,j.jsx)(k.dR,{}),label:(0,j.jsx)("label",{className:n.textMuted,children:$?"Enabled":"Disabled"})})})}),(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION],resource:Zn,children:(0,j.jsx)(b.Z,{label:"Object Locking:",value:(0,j.jsx)(E,{icon:O?(0,j.jsx)(k.E3,{}):(0,j.jsx)(k.dR,{}),label:(0,j.jsx)("label",{className:n.textMuted,children:O?"Enabled":"Disabled"})})})}),(0,j.jsx)(u.Z,{className:n.spacerTop,children:(0,j.jsx)(b.Z,{label:"Tags:",value:(0,j.jsx)(K,{setErrorSnackMessage:l,bucketName:Zn})})})]}),(0,j.jsx)(u.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"},children:(0,j.jsx)(U,{bucketSize:y})})]})})}),r&&(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_BUCKET_VERSIONING],resource:Zn,children:(0,j.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,j.jsx)(A.Z,{children:"Versioning"}),(0,j.jsxs)(u.Z,{sx:(0,i.Z)({},V),children:[(0,j.jsxs)(u.Z,{sx:(0,i.Z)({},V),children:[(0,j.jsx)(P,{iamScopes:[Z.Ft.S3_PUT_BUCKET_VERSIONING],resourceName:Zn,property:"Versioning:",value:Re?"Enabled":"Disabled",onEdit:function(){mn(!0)},isLoading:me}),(0,j.jsx)(P,{iamScopes:[Z.Ft.ADMIN_SET_BUCKET_QUOTA],resourceName:Zn,property:"Quota:",value:Ue?"Enabled":"Disabled",onEdit:function(){fn(!0)},isLoading:be})]}),(0,j.jsx)(u.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"},children:Ue&&we?(0,j.jsx)(G,{quota:we}):null})]})]})}),O&&(0,j.jsx)(g.s,{scopes:[Z.Ft.S3_GET_OBJECT_RETENTION],resource:Zn,children:(0,j.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,j.jsx)(A.Z,{children:"Retention"}),(0,j.jsxs)(u.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},children:[(0,j.jsxs)(u.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},children:[(0,j.jsx)(P,{iamScopes:[Z.Ft.ADMIN_SET_BUCKET_QUOTA],resourceName:Zn,property:"Retention:",value:Qe?"Enabled":"Disabled",onEdit:function(){sn(!0)},isLoading:_e}),(0,j.jsx)(b.Z,{label:"Mode:",value:(0,j.jsx)("label",{className:n.textMuted,style:{textTransform:"capitalize"},children:He&&He.mode?He.mode:"-"})}),(0,j.jsx)(b.Z,{label:"Validity:",value:(0,j.jsxs)("label",{className:n.textMuted,style:{textTransform:"capitalize"},children:[He&&He.validity," ",He&&(1===He.validity?He.unit.slice(0,-1):He.unit)]})})]}),(0,j.jsx)(u.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",alignItems:"flex-start"}})]})]})})]})]})})))},45902:function(e,n,t){var s=t(1413),i=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,r=e.value,l=void 0===r?"-":r,a=e.orientation,c=void 0===a?"column":a,u=e.stkProps,d=void 0===u?{}:u,f=e.lblProps,x=void 0===f?{}:f,p=e.valProps,h=void 0===p?{}:p;return(0,o.jsxs)(i.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,o.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:600}},x),{},{children:t})),(0,o.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:l}))]}))}},53767:function(e,n,t){var s=t(4942),i=t(63366),o=t(87462),r=t(72791),l=t(51184),a=t(45682),c=t(78519),u=t(82466),d=t(47630),f=t(93736),x=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=r.Children.toArray(e).filter(Boolean);return t.reduce((function(e,s,i){return e.push(s),i :not(style) + :not(style)":(0,s.Z)({margin:0},"margin".concat((i=t?d[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[i])),(0,a.NA)(r,e))};var i})))}return i})),Z=r.forwardRef((function(e,n){var t=(0,f.Z)({props:e,name:"MuiStack"}),s=(0,c.Z)(t),r=s.component,l=void 0===r?"div":r,a=s.direction,u=void 0===a?"column":a,d=s.spacing,Z=void 0===d?0:d,g=s.divider,v=s.children,b=(0,i.Z)(s,p),j={direction:u,spacing:Z};return(0,x.jsx)(m,(0,o.Z)({as:l,ownerState:j,ref:n},b,{children:g?h(v,g):v}))}));n.Z=Z}}]); +//# sourceMappingURL=3328.c99fe6b3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3328.c99fe6b3.chunk.js.map b/portal-ui/build/static/js/3328.c99fe6b3.chunk.js.map new file mode 100644 index 000000000..b7885ede1 --- /dev/null +++ b/portal-ui/build/static/js/3328.c99fe6b3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3328.c99fe6b3.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/LabelWithIcon.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/ActionLink.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/EditActionButton.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/EditablePropertyItem.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/ReportedUsage.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/BucketQuotaSize.tsx","screens/Console/Buckets/BucketDetails/BucketSummaryPanel.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","../node_modules/@mui/material/Stack/Stack.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 { Box } from \"@mui/material\";\n\ntype LabelWithIconProps = {\n icon: React.ReactNode | null;\n label: React.ReactNode | null;\n};\n\nconst LabelWithIcon = ({ icon = null, label = null }: LabelWithIconProps) => {\n return (\n \n \n {icon}\n \n
    {label}
    \n \n );\n};\n\nexport default LabelWithIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 Loader from \"../../../Common/Loader/Loader\";\n\ntype ActionLinkProps = {\n isLoading: boolean;\n onClick: () => void;\n classes?: any;\n label: any;\n [x: string]: any;\n};\nconst ActionLink = ({\n isLoading,\n onClick,\n label,\n ...restProps\n}: ActionLinkProps) => {\n return (\n \n {isLoading ? : label}\n \n );\n};\n\nexport default ActionLink;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IconButton } from \"@mui/material\";\nimport EditIcon from \"../../../../../icons/EditIcon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ntype EditActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"#E2E2E2\",\n },\n },\n });\n\nconst EditActionButton = ({\n disabled,\n onClick,\n ...restProps\n}: EditActionButtonProps) => {\n return (\n \n \n \n );\n};\n\nexport default withStyles(styles)(EditActionButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport LabelValuePair from \"../../../Common/UsageBarWrapper/LabelValuePair\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport ActionLink from \"./ActionLink\";\nimport { Box } from \"@mui/material\";\nimport EditActionButton from \"./EditActionButton\";\n\ntype EditablePropertyItemProps = {\n isLoading: boolean;\n resourceName: string;\n iamScopes: string[];\n property: any;\n value: any;\n onEdit: () => void;\n secureCmpProps?: Record;\n};\n\nconst SecureAction = ({\n resourceName,\n iamScopes,\n secureCmpProps = {},\n children,\n}: {\n resourceName: string;\n iamScopes: string[];\n children: any;\n secureCmpProps?: Record;\n}) => {\n return (\n \n {children}\n \n );\n};\n\nconst EditablePropertyItem = ({\n isLoading = true,\n resourceName = \"\",\n iamScopes,\n secureCmpProps = {},\n property = null,\n value = null,\n onEdit,\n}: EditablePropertyItemProps) => {\n return (\n \n \n \n \n }\n />\n \n \n \n \n );\n};\n\nexport default EditablePropertyItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { niceBytes } from \"../../../../../common/utils\";\nimport { ReportedUsageFullIcon } from \"../../../../../icons\";\n\nconst ReportedUsage = ({ bucketSize }: { bucketSize: string }) => {\n return (\n \n \n\n \n \n Reported Usage:\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 from \"react\";\nimport { Box } from \"@mui/material\";\nimport { niceBytes } from \"../../../../../common/utils\";\nimport { HardBucketQuotaIcon } from \"../../../../../icons\";\n\nconst BucketQuotaSize = ({ quota }: { quota: any }) => {\n return (\n \n \n\n \n \n {quota?.type} Quota\n \n \n \n \n );\n};\n\nexport default BucketQuotaSize;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Box, Grid } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport { AppState } from \"../../../../store\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n BucketEncryptionInfo,\n BucketInfo,\n BucketObjectLocking,\n BucketQuota,\n BucketReplication,\n BucketVersioning,\n} from \"../types\";\nimport { BucketList } from \"../../Watch/types\";\nimport {\n spacingUtils,\n textStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IRetentionConfig,\n} from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport { setBucketDetailsLoad } from \"../actions\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport LabelWithIcon from \"./SummaryItems/LabelWithIcon\";\nimport { DisabledIcon, EnabledIcon } from \"../../../../icons\";\nimport EditablePropertyItem from \"./SummaryItems/EditablePropertyItem\";\nimport ReportedUsage from \"./SummaryItems/ReportedUsage\";\nimport BucketQuotaSize from \"./SummaryItems/BucketQuotaSize\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\nconst SetAccessPolicy = withSuspense(\n React.lazy(() => import(\"./SetAccessPolicy\"))\n);\nconst SetRetentionConfig = withSuspense(\n React.lazy(() => import(\"./SetRetentionConfig\"))\n);\nconst EnableBucketEncryption = withSuspense(\n React.lazy(() => import(\"./EnableBucketEncryption\"))\n);\nconst EnableVersioningModal = withSuspense(\n React.lazy(() => import(\"./EnableVersioningModal\"))\n);\nconst BucketTags = withSuspense(\n React.lazy(() => import(\"./SummaryItems/BucketTags\"))\n);\n\nconst EnableQuota = withSuspense(React.lazy(() => import(\"./EnableQuota\")));\n\ninterface IBucketSummaryProps {\n classes: any;\n match: any;\n distributedSetup: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...textStyleUtils,\n });\n\nconst twoColCssGridLayoutConfig = {\n display: \"grid\",\n gridTemplateColumns: { xs: \"1fr\", sm: \"2fr 1fr\" },\n gridAutoFlow: { xs: \"dense\", sm: \"row\" },\n gap: 2,\n};\n\nconst BucketSummary = ({\n classes,\n match,\n distributedSetup,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n setBucketDetailsLoad,\n}: IBucketSummaryProps) => {\n const [encryptionCfg, setEncryptionCfg] =\n useState(null);\n const [bucketSize, setBucketSize] = useState(\"0\");\n const [hasObjectLocking, setHasObjectLocking] = useState(false);\n const [accessPolicyScreenOpen, setAccessPolicyScreenOpen] =\n useState(false);\n const [replicationRules, setReplicationRules] = useState(false);\n const [loadingObjectLocking, setLoadingLocking] = useState(true);\n const [loadingSize, setLoadingSize] = useState(true);\n const [bucketLoading, setBucketLoading] = useState(true);\n const [loadingEncryption, setLoadingEncryption] = useState(true);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\n const [loadingQuota, setLoadingQuota] = useState(true);\n const [loadingReplication, setLoadingReplication] = useState(true);\n const [loadingRetention, setLoadingRetention] = useState(true);\n const [isVersioned, setIsVersioned] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quota, setQuota] = useState(null);\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [retentionEnabled, setRetentionEnabled] = useState(false);\n const [retentionConfig, setRetentionConfig] =\n useState(null);\n const [retentionConfigOpen, setRetentionConfigOpen] =\n useState(false);\n const [enableEncryptionScreenOpen, setEnableEncryptionScreenOpen] =\n useState(false);\n const [enableQuotaScreenOpen, setEnableQuotaScreenOpen] =\n useState(false);\n const [enableVersioningOpen, setEnableVersioningOpen] =\n useState(false);\n\n const bucketName = match.params[\"bucketName\"];\n\n let accessPolicy = \"n/a\";\n let policyDefinition = \"\";\n\n if (bucketInfo !== null) {\n accessPolicy = bucketInfo.access;\n policyDefinition = bucketInfo.definition;\n }\n\n const displayGetBucketObjectLockConfiguration = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION,\n ]);\n\n const displayGetBucketEncryptionConfiguration = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,\n ]);\n\n const displayGetBucketQuota = hasPermission(bucketName, [\n IAM_SCOPES.ADMIN_GET_BUCKET_QUOTA,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setBucketLoading(true);\n } else {\n setBucketLoading(false);\n }\n }, [loadingBucket, setBucketLoading]);\n\n useEffect(() => {\n if (loadingEncryption) {\n if (displayGetBucketEncryptionConfiguration) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/encryption/info`)\n .then((res: BucketEncryptionInfo) => {\n if (res.algorithm) {\n setEncryptionEnabled(true);\n setEncryptionCfg(res);\n }\n setLoadingEncryption(false);\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.errorMessage ===\n \"The server side encryption configuration was not found\"\n ) {\n setEncryptionEnabled(false);\n setEncryptionCfg(null);\n }\n setLoadingEncryption(false);\n });\n } else {\n setEncryptionEnabled(false);\n setEncryptionCfg(null);\n setLoadingEncryption(false);\n }\n }\n }, [loadingEncryption, bucketName, displayGetBucketEncryptionConfiguration]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\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 }\n }, [loadingVersioning, setErrorSnackMessage, bucketName, distributedSetup]);\n\n useEffect(() => {\n if (loadingQuota && distributedSetup) {\n if (displayGetBucketQuota) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/quota`)\n .then((res: BucketQuota) => {\n setQuota(res);\n if (res.quota) {\n setQuotaEnabled(true);\n } else {\n setQuotaEnabled(false);\n }\n setLoadingQuota(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setQuotaEnabled(false);\n setLoadingQuota(false);\n });\n } else {\n setQuotaEnabled(false);\n setLoadingQuota(false);\n }\n }\n }, [\n loadingQuota,\n setLoadingVersioning,\n setErrorSnackMessage,\n bucketName,\n distributedSetup,\n displayGetBucketQuota,\n ]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\n if (displayGetBucketObjectLockConfiguration) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/object-locking`)\n .then((res: BucketObjectLocking) => {\n setHasObjectLocking(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 }, [\n loadingObjectLocking,\n setErrorSnackMessage,\n bucketName,\n loadingVersioning,\n distributedSetup,\n displayGetBucketObjectLockConfiguration,\n ]);\n\n useEffect(() => {\n if (loadingSize) {\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n const resBuckets = get(res, \"buckets\", []);\n\n const bucketInfo = resBuckets.find(\n (bucket) => bucket.name === bucketName\n );\n\n const size = get(bucketInfo, \"size\", \"0\");\n\n setLoadingSize(false);\n setBucketSize(size);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingSize(false);\n setErrorSnackMessage(err);\n });\n }\n }, [loadingSize, setErrorSnackMessage, bucketName]);\n\n useEffect(() => {\n if (loadingReplication && distributedSetup) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication`)\n .then((res: BucketReplication) => {\n const r = res.rules ? res.rules : [];\n setReplicationRules(r.length > 0);\n setLoadingReplication(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingReplication(false);\n });\n }\n }, [loadingReplication, setErrorSnackMessage, bucketName, distributedSetup]);\n\n useEffect(() => {\n if (loadingRetention && hasObjectLocking) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/retention`)\n .then((res: IRetentionConfig) => {\n setLoadingRetention(false);\n setRetentionEnabled(true);\n setRetentionConfig(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setRetentionEnabled(false);\n setLoadingRetention(false);\n setRetentionConfig(null);\n });\n }\n }, [loadingRetention, hasObjectLocking, bucketName]);\n\n const loadAllBucketData = () => {\n setBucketDetailsLoad(true);\n setBucketLoading(true);\n setLoadingSize(true);\n setLoadingVersioning(true);\n setLoadingEncryption(true);\n setLoadingRetention(true);\n };\n\n const setBucketVersioning = () => {\n setEnableVersioningOpen(true);\n };\n const setBucketQuota = () => {\n setEnableQuotaScreenOpen(true);\n };\n\n const closeEnableBucketEncryption = () => {\n setEnableEncryptionScreenOpen(false);\n setLoadingEncryption(true);\n };\n const closeEnableBucketQuota = () => {\n setEnableQuotaScreenOpen(false);\n setLoadingQuota(true);\n };\n\n const closeSetAccessPolicy = () => {\n setAccessPolicyScreenOpen(false);\n loadAllBucketData();\n };\n\n const closeRetentionConfig = () => {\n setRetentionConfigOpen(false);\n loadAllBucketData();\n };\n\n const closeEnableVersioning = (refresh: boolean) => {\n setEnableVersioningOpen(false);\n if (refresh) {\n loadAllBucketData();\n }\n };\n // @ts-ignore\n return (\n \n {enableEncryptionScreenOpen && (\n \n )}\n {enableQuotaScreenOpen && (\n \n )}\n {accessPolicyScreenOpen && (\n \n )}\n {retentionConfigOpen && (\n \n )}\n {enableVersioningOpen && (\n \n )}\n\n Summary\n \n \n \n \n \n \n {\n setAccessPolicyScreenOpen(true);\n }}\n isLoading={bucketLoading}\n />\n \n\n \n {\n setEnableEncryptionScreenOpen(true);\n }}\n isLoading={loadingEncryption}\n />\n \n\n \n : \n }\n label={\n \n }\n />\n }\n />\n \n\n \n : \n }\n label={\n \n }\n />\n }\n />\n \n \n \n }\n />\n \n \n\n \n \n \n \n \n \n\n {distributedSetup && (\n \n \n Versioning\n\n \n \n \n\n \n \n \n {quotaEnabled && quota ? (\n \n ) : null}\n \n \n \n \n )}\n\n {hasObjectLocking && (\n \n \n Retention\n\n \n \n {\n setRetentionConfigOpen(true);\n }}\n isLoading={loadingRetention}\n />\n\n \n {retentionConfig && retentionConfig.mode\n ? retentionConfig.mode\n : \"-\"}\n \n }\n />\n \n {retentionConfig && retentionConfig.validity}{\" \"}\n {retentionConfig &&\n (retentionConfig.validity === 1\n ? retentionConfig.unit.slice(0, -1)\n : retentionConfig.unit)}\n \n }\n />\n \n\n \n {/*Spacer*/}\n \n \n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\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});\n\nexport default withStyles(styles)(connector(BucketSummary));\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;"],"names":["icon","label","Box","sx","display","style","height","width","alignItems","marginTop","marginLeft","isLoading","onClick","restProps","Button","color","variant","padding","margin","justifyContent","textDecoration","background","disableRipple","disableFocusRipple","Loader","withStyles","theme","createStyles","root","backgroundColor","disabled","IconButton","size","EditIcon","SecureAction","resourceName","iamScopes","secureCmpProps","children","SecureComponent","scopes","resource","errorProps","property","value","onEdit","LabelValuePair","top","bucketSize","flexFlow","fontSize","fontWeight","niceBytes","quota","textTransform","type","SetAccessPolicy","withSuspense","React","SetRetentionConfig","EnableBucketEncryption","EnableVersioningModal","BucketTags","EnableQuota","twoColCssGridLayoutConfig","gridTemplateColumns","xs","sm","gridAutoFlow","gap","connector","connect","state","session","console","distributedSetup","system","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","setBucketDetailsLoad","spacingUtils","textStyleUtils","classes","match","useState","encryptionCfg","setEncryptionCfg","setBucketSize","hasObjectLocking","setHasObjectLocking","accessPolicyScreenOpen","setAccessPolicyScreenOpen","replicationRules","setReplicationRules","loadingObjectLocking","setLoadingLocking","loadingSize","setLoadingSize","bucketLoading","setBucketLoading","loadingEncryption","setLoadingEncryption","loadingVersioning","setLoadingVersioning","loadingQuota","setLoadingQuota","loadingReplication","setLoadingReplication","loadingRetention","setLoadingRetention","isVersioned","setIsVersioned","quotaEnabled","setQuotaEnabled","setQuota","encryptionEnabled","setEncryptionEnabled","retentionEnabled","setRetentionEnabled","retentionConfig","setRetentionConfig","retentionConfigOpen","setRetentionConfigOpen","enableEncryptionScreenOpen","setEnableEncryptionScreenOpen","enableQuotaScreenOpen","setEnableQuotaScreenOpen","enableVersioningOpen","setEnableVersioningOpen","bucketName","params","accessPolicy","policyDefinition","access","definition","displayGetBucketObjectLockConfiguration","hasPermission","IAM_SCOPES","displayGetBucketEncryptionConfiguration","displayGetBucketQuota","useEffect","api","then","res","algorithm","catch","err","errorMessage","is_versioned","object_locking_enabled","get","find","bucket","name","r","rules","length","loadAllBucketData","Fragment","open","selectedBucket","closeModalAndRefresh","enabled","cfg","actualPolicy","actualDefinition","closeVersioningModalAndRefresh","refresh","modalOpen","versioningCurrentState","SectionTitle","Grid","container","spacing","item","toLowerCase","className","textMuted","spacerTop","mode","validity","unit","slice","orientation","stkProps","lblProps","valProps","direction","marginRight","_excluded","joinChildren","separator","childrenArray","filter","Boolean","reduce","output","child","index","push","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","acc","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","Stack","inProps","ref","themeProps","useThemeProps","extendSxProp","component","divider","other","_objectWithoutPropertiesLoose","_jsx","as"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3461.f7b91f8d.chunk.js b/portal-ui/build/static/js/3461.f7b91f8d.chunk.js new file mode 100644 index 000000000..5fe50ec36 --- /dev/null +++ b/portal-ui/build/static/js/3461.f7b91f8d.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3461],{42419:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");e.Z=a},99663:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.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");e.Z=a},86711:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.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");e.Z=a},22918:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.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-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z"}),"Casino");e.Z=a},27247:function(t,e,n){"use strict";var r=n(95318);e.Z=void 0;var o=r(n(45649)),i=n(80184),a=(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");e.Z=a},94721:function(t,e,n){"use strict";var r=n(63366),o=n(87462),i=n(72791),a=n(28182),l=n(90767),c=n(12065),s=n(47630),u=n(93736),p=n(90133),d=n(80184),f=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],v=(0,s.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,n.absolute&&e.absolute,e[n.variant],n.light&&e.light,"vertical"===n.orientation&&e.vertical,n.flexItem&&e.flexItem,n.children&&e.withChildren,n.children&&"vertical"===n.orientation&&e.withChildrenVertical,"right"===n.textAlign&&"vertical"!==n.orientation&&e.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&e.textAlignLeft]}})((function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:e.palette.divider,borderBottomWidth:"thin"},n.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},n.light&&{borderColor:(0,c.Fq)(e.palette.divider,.08)},"inset"===n.variant&&{marginLeft:72},"middle"===n.variant&&"horizontal"===n.orientation&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},"middle"===n.variant&&"vertical"===n.orientation&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},"vertical"===n.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},n.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({},n.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,n=t.ownerState;return(0,o.Z)({},n.children&&"vertical"===n.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,o.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%"}})})),h=(0,s.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(t,e){var n=t.ownerState;return[e.wrapper,"vertical"===n.orientation&&e.wrapperVertical]}})((function(t){var e=t.theme,n=t.ownerState;return(0,o.Z)({display:"inline-block",paddingLeft:"calc(".concat(e.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(e.spacing(1)," * 1.2)")},"vertical"===n.orientation&&{paddingTop:"calc(".concat(e.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(e.spacing(1)," * 1.2)")})})),m=i.forwardRef((function(t,e){var n=(0,u.Z)({props:t,name:"MuiDivider"}),i=n.absolute,c=void 0!==i&&i,s=n.children,m=n.className,b=n.component,g=void 0===b?s?"div":"hr":b,y=n.flexItem,w=void 0!==y&&y,x=n.light,C=void 0!==x&&x,S=n.orientation,Z=void 0===S?"horizontal":S,O=n.role,j=void 0===O?"hr"!==g?"separator":void 0:O,P=n.textAlign,E=void 0===P?"center":P,A=n.variant,D=void 0===A?"fullWidth":A,T=(0,r.Z)(n,f),R=(0,o.Z)({},n,{absolute:c,component:g,flexItem:w,light:C,orientation:Z,role:j,textAlign:E,variant:D}),k=function(t){var e=t.absolute,n=t.children,r=t.classes,o=t.flexItem,i=t.light,a=t.orientation,c=t.textAlign,s={root:["root",e&&"absolute",t.variant,i&&"light","vertical"===a&&"vertical",o&&"flexItem",n&&"withChildren",n&&"vertical"===a&&"withChildrenVertical","right"===c&&"vertical"!==a&&"textAlignRight","left"===c&&"vertical"!==a&&"textAlignLeft"],wrapper:["wrapper","vertical"===a&&"wrapperVertical"]};return(0,l.Z)(s,p.V,r)}(R);return(0,d.jsx)(v,(0,o.Z)({as:g,className:(0,a.Z)(k.root,m),role:j,ref:e,ownerState:R},T,{children:s?(0,d.jsx)(h,{className:k.wrapper,ownerState:R,children:s}):null}))}));e.Z=m},63466:function(t,e,n){"use strict";n.d(e,{Z:function(){return C}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),l=n(28182),c=n(90767),s=n(14036),u=n(20890),p=n(93840),d=n(52930),f=n(47630),v=n(95159);function h(t){return(0,v.Z)("MuiInputAdornment",t)}var m,b=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),g=n(93736),y=n(80184),w=["children","className","component","disablePointerEvents","disableTypography","position","variant"],x=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,e["position".concat((0,s.Z)(n.position))],!0===n.disablePointerEvents&&e.disablePointerEvents,e[n.variant]]}})((function(t){var e=t.theme,n=t.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:e.palette.action.active},"filled"===n.variant&&(0,r.Z)({},"&.".concat(b.positionStart,"&:not(.").concat(b.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),C=a.forwardRef((function(t,e){var n=(0,g.Z)({props:t,name:"MuiInputAdornment"}),r=n.children,f=n.className,v=n.component,b=void 0===v?"div":v,C=n.disablePointerEvents,S=void 0!==C&&C,Z=n.disableTypography,O=void 0!==Z&&Z,j=n.position,P=n.variant,E=(0,o.Z)(n,w),A=(0,d.Z)()||{},D=P;P&&A.variant,A&&!D&&(D=A.variant);var T=(0,i.Z)({},n,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:S,position:j,variant:D}),R=function(t){var e=t.classes,n=t.disablePointerEvents,r=t.hiddenLabel,o=t.position,i=t.size,a=t.variant,l={root:["root",n&&"disablePointerEvents",o&&"position".concat((0,s.Z)(o)),a,r&&"hiddenLabel",i&&"size".concat((0,s.Z)(i))]};return(0,c.Z)(l,h,e)}(T);return(0,y.jsx)(p.Z.Provider,{value:null,children:(0,y.jsx)(x,(0,i.Z)({as:b,ownerState:T,className:(0,l.Z)(R.root,f),ref:e},E,{children:"string"!==typeof r||O?(0,y.jsxs)(a.Fragment,{children:["start"===j?m||(m=(0,y.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,y.jsx)(u.Z,{color:"text.secondary",children:r})}))})}))},76998:function(t,e,n){"use strict";var r=n(42458),o={"text/plain":"Text","text/html":"Url",default:"Text"};t.exports=function(t,e){var n,i,a,l,c,s,u=!1;e||(e={}),n=e.debug||!1;try{if(a=r(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=t,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(r){if(r.stopPropagation(),e.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[e.format]||o.default;window.clipboardData.setData(i,t)}else r.clipboardData.clearData(),r.clipboardData.setData(e.format,t);e.onCopy&&(r.preventDefault(),e.onCopy(r.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(p){n&&console.error("unable to copy using execCommand: ",p),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",t),e.onCopy&&e.onCopy(window.clipboardData),u=!0}catch(p){n&&console.error("unable to copy using clipboardData: ",p),n&&console.error("falling back to prompt"),i=function(t){var e=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return t.replace(/#{\s*key\s*}/g,e)}("message"in e?e.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,t)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),a()}return u}},20821:function(t,e,n){var r=n(26050),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},26050:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},48573:function(t,e,n){var r=n(8092),o=n(50072),i=n(42582),a=Math.max,l=Math.min;t.exports=function(t,e,n){var c,s,u,p,d,f,v=0,h=!1,m=!1,b=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function g(e){var n=c,r=s;return c=s=void 0,v=e,p=t.apply(r,n)}function y(t){return v=t,d=setTimeout(x,e),h?g(t):p}function w(t){var n=t-f;return void 0===f||n>=e||n<0||m&&t-v>=u}function x(){var t=o();if(w(t))return C(t);d=setTimeout(x,function(t){var n=e-(t-f);return m?l(n,u-(t-v)):n}(t))}function C(t){return d=void 0,b&&c?g(t):(c=s=void 0,p)}function S(){var t=o(),n=w(t);if(c=arguments,s=this,f=t,n){if(void 0===d)return y(f);if(m)return clearTimeout(d),d=setTimeout(x,e),g(f)}return void 0===d&&(d=setTimeout(x,e)),p}return e=i(e)||0,r(n)&&(h=!!n.leading,u=(m="maxWait"in n)?a(i(n.maxWait)||0,e):u,b="trailing"in n?!!n.trailing:b),S.cancel=function(){void 0!==d&&clearTimeout(d),v=0,c=f=s=d=void 0},S.flush=function(){return void 0===d?p:C(o())},S}},50072:function(t,e,n){var r=n(97009);t.exports=function(){return r.Date.now()}},42582:function(t,e,n){var r=n(20821),o=n(8092),i=n(70152),a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=l.test(t);return n||c.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}},568:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CopyToClipboard=void 0;var r=i(n(72791)),o=i(n(76998));function i(t){return t&&t.__esModule?t:{default:t}}function a(t){return a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){for(var n=0;n {\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 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;","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","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","_excluded","DividerRoot","styled","name","slot","overridesResolver","props","styles","ownerState","root","absolute","variant","light","orientation","vertical","flexItem","children","withChildren","withChildrenVertical","textAlign","textAlignRight","textAlignLeft","theme","_extends","margin","flexShrink","borderWidth","borderStyle","borderColor","palette","divider","borderBottomWidth","position","bottom","left","width","alpha","marginLeft","spacing","marginRight","marginTop","marginBottom","height","borderRightWidth","alignSelf","display","whiteSpace","border","borderTop","top","content","transform","flexDirection","borderLeft","DividerWrapper","wrapper","wrapperVertical","paddingLeft","paddingRight","paddingTop","paddingBottom","Divider","React","inProps","ref","useThemeProps","className","component","role","undefined","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","getDividerUtilityClass","useUtilityClasses","_jsx","as","clsx","getInputAdornmentUtilityClass","generateUtilityClass","_span","generateUtilityClasses","InputAdornmentRoot","capitalize","disablePointerEvents","maxHeight","alignItems","color","action","active","inputAdornmentClasses","pointerEvents","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","size","FormControlContext","value","_jsxs","Typography","deselectCurrent","clipboardToIE11Formatting","module","text","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","style","all","clip","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","trimmedEndIndex","reTrimStart","string","slice","reWhitespace","index","length","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","valueOf","isBinary","Object","defineProperty","CopyToClipboard","_react","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","indexOf","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","_len","Array","_key","concat","event","_this$props","elem","Children","only","onClick","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","type","focus"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3461.f7b91f8d.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Casino.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/copy-to-clipboard/index.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js","../node_modules/react-copy-to-clipboard/lib/Component.js","../node_modules/react-copy-to-clipboard/lib/index.js","../node_modules/toggle-selection/index.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: \"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: \"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 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-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z\"\n}), 'Casino');\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;","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 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;","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","DividerRoot","styled","name","slot","overridesResolver","props","styles","ownerState","root","absolute","variant","light","orientation","vertical","flexItem","children","withChildren","withChildrenVertical","textAlign","textAlignRight","textAlignLeft","theme","_extends","margin","flexShrink","borderWidth","borderStyle","borderColor","palette","divider","borderBottomWidth","position","bottom","left","width","alpha","marginLeft","spacing","marginRight","marginTop","marginBottom","height","borderRightWidth","alignSelf","display","whiteSpace","border","borderTop","top","content","transform","flexDirection","borderLeft","DividerWrapper","wrapper","wrapperVertical","paddingLeft","paddingRight","paddingTop","paddingBottom","Divider","React","inProps","ref","useThemeProps","className","component","role","undefined","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","getDividerUtilityClass","useUtilityClasses","_jsx","as","clsx","getInputAdornmentUtilityClass","generateUtilityClass","_span","generateUtilityClasses","InputAdornmentRoot","capitalize","disablePointerEvents","maxHeight","alignItems","color","action","active","inputAdornmentClasses","pointerEvents","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","size","FormControlContext","value","_jsxs","Typography","deselectCurrent","clipboardToIE11Formatting","module","text","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","style","all","clip","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","trimmedEndIndex","reTrimStart","string","slice","reWhitespace","index","length","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","valueOf","isBinary","Object","defineProperty","CopyToClipboard","_react","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","indexOf","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","_len","Array","_key","concat","event","_this$props","elem","Children","only","onClick","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","type","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3518.0178dcf1.chunk.js b/portal-ui/build/static/js/3518.0178dcf1.chunk.js deleted file mode 100644 index 076a22a64..000000000 --- a/portal-ui/build/static/js/3518.0178dcf1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3518],{5450:function(e,n,r){var t=r(29439),o=r(72791),a=r(11135),s=r(25787),c=r(40986),i=r(79836),l=r(53382),u=r(53994),d=r(56890),Z=r(35855),f=r(64554),p=r(56125),v=r(20890),h=r(85172),m=r(95678),x=r(39281),j=r(10703),g=r(80184),b=function(e){var n=e.event,r=o.useState(!1),a=(0,t.Z)(r,2),s=a[0],c=a[1];return(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(Z.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer"},children:[(0,g.jsx)(u.Z,{component:"th",scope:"row",onClick:function(){return c(!s)},children:n.event_type}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.reason}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.seen}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.message.length>=30?"".concat(n.message.substr(0,30),"..."):n.message}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:s?(0,g.jsx)(m.Z,{}):(0,g.jsx)(h.Z,{})})]}),(0,g.jsx)(Z.Z,{children:(0,g.jsx)(u.Z,{style:{paddingBottom:0,paddingTop:0},colSpan:5,children:(0,g.jsx)(p.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,g.jsx)(f.Z,{sx:{margin:1},children:(0,g.jsx)(v.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:n.message})})})})})]})};n.Z=(0,s.Z)((function(e){return(0,a.Z)({events:{"& .MuiTypography-root":{fontSize:14},"& .Mui-expanded":{"& .eventMessage":{display:"none"}}}})}))((function(e){e.classes;var n=e.events;return e.loading?(0,g.jsx)(c.Z,{}):(0,g.jsx)(x.Z,{component:j.Z,children:(0,g.jsxs)(i.Z,{"aria-label":"collapsible table",children:[(0,g.jsx)(d.Z,{children:(0,g.jsxs)(Z.Z,{children:[(0,g.jsx)(u.Z,{children:"Type"}),(0,g.jsx)(u.Z,{children:"Reason"}),(0,g.jsx)(u.Z,{children:"Age"}),(0,g.jsx)(u.Z,{children:"Message"}),(0,g.jsx)(u.Z,{})]})}),(0,g.jsx)(l.Z,{children:n.map((function(e){return(0,g.jsx)(b,{event:e},"".concat(e.event_type,"-").concat(e.seen))}))})]})})}))},83518:function(e,n,r){r.r(n);var t=r(29439),o=r(1413),a=r(72791),s=r(11135),c=r(25787),i=r(23814),l=r(61889),u=r(91523),d=r(81207),Z=r(45248),f=r(5450),p=r(80184);n.default=(0,c.Z)((function(e){return(0,s.Z)((0,o.Z)({breadcrumLink:{textDecoration:"none",color:"black"}},(0,i.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,r=e.match,o=e.setErrorSnackMessage,s=(0,a.useState)(!0),c=(0,t.Z)(s,2),i=c[0],v=c[1],h=r.params.tenantNamespace,m=r.params.tenantName,x=r.params.PVCName,j=(0,a.useState)([]),g=(0,t.Z)(j,2),b=g[0],k=g[1];return(0,a.useEffect)((function(){i&&d.Z.invoke("GET","/api/v1/namespaces/".concat(h,"/tenants/").concat(m,"/pvcs/").concat(x,"/events")).then((function(e){for(var n=0;n ",x]})}),(0,p.jsxs)(l.ZP,{container:!0,children:[(0,p.jsx)("h1",{className:n.sectionTitle,children:"Events"}),(0,p.jsx)(f.Z,{events:b,loading:i})]})]})}))},85172:function(e,n,r){var t=r(95318);n.Z=void 0;var o=t(r(45649)),a=r(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"}),"KeyboardArrowDown");n.Z=s},95678:function(e,n,r){var t=r(95318);n.Z=void 0;var o=t(r(45649)),a=r(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"}),"KeyboardArrowUp");n.Z=s},39281:function(e,n,r){r.d(n,{Z:function(){return v}});var t=r(87462),o=r(63366),a=r(72791),s=r(28182),c=r(90767),i=r(93736),l=r(47630),u=r(95159);function d(e){return(0,u.Z)("MuiTableContainer",e)}(0,r(30208).Z)("MuiTableContainer",["root"]);var Z=r(80184),f=["className","component"],p=(0,l.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),v=a.forwardRef((function(e,n){var r=(0,i.Z)({props:e,name:"MuiTableContainer"}),a=r.className,l=r.component,u=void 0===l?"div":l,v=(0,o.Z)(r,f),h=(0,t.Z)({},r,{component:u}),m=function(e){var n=e.classes;return(0,c.Z)({root:["root"]},d,n)}(h);return(0,Z.jsx)(p,(0,t.Z)({ref:n,as:u,className:(0,s.Z)(m.root,a),ownerState:h},v))}))},56890:function(e,n,r){r.d(n,{Z:function(){return x}});var t=r(87462),o=r(63366),a=r(72791),s=r(28182),c=r(90767),i=r(829),l=r(93736),u=r(47630),d=r(95159);function Z(e){return(0,d.Z)("MuiTableHead",e)}(0,r(30208).Z)("MuiTableHead",["root"]);var f=r(80184),p=["className","component"],v=(0,u.ZP)("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:function(e,n){return n.root}})({display:"table-header-group"}),h={variant:"head"},m="thead",x=a.forwardRef((function(e,n){var r=(0,l.Z)({props:e,name:"MuiTableHead"}),a=r.className,u=r.component,d=void 0===u?m:u,x=(0,o.Z)(r,p),j=(0,t.Z)({},r,{component:d}),g=function(e){var n=e.classes;return(0,c.Z)({root:["root"]},Z,n)}(j);return(0,f.jsx)(i.Z.Provider,{value:h,children:(0,f.jsx)(v,(0,t.Z)({as:d,className:(0,s.Z)(g.root,a),ref:n,role:d===m?null:"rowgroup",ownerState:j},x))})}))}}]); -//# sourceMappingURL=3518.0178dcf1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3518.0178dcf1.chunk.js.map b/portal-ui/build/static/js/3518.0178dcf1.chunk.js.map deleted file mode 100644 index ca02180f6..000000000 --- a/portal-ui/build/static/js/3518.0178dcf1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3518.0178dcf1.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/events/EventsList.tsx","screens/Console/Tenants/TenantDetails/pvcs/TenantVolumes.tsx","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Typography from \"@mui/material/Typography\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport Paper from \"@mui/material/Paper\";\n\ninterface IEventsListProps {\n classes: any;\n events: IEvent[];\n loading: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n events: {\n \"& .MuiTypography-root\": {\n fontSize: 14,\n },\n \"& .Mui-expanded\": {\n \"& .eventMessage\": {\n display: \"none\",\n },\n },\n },\n });\n\nconst Event = (props: { event: IEvent }) => {\n const { event } = props;\n const [open, setOpen] = React.useState(false);\n\n return (\n \n *\": { borderBottom: \"unset\" }, cursor: \"pointer\" }}>\n setOpen(!open)}>\n {event.event_type}\n \n setOpen(!open)}>{event.reason}\n setOpen(!open)}>{event.seen}\n setOpen(!open)}>\n {event.message.length >= 30\n ? `${event.message.substr(0, 30)}...`\n : event.message}\n \n setOpen(!open)}>\n {open ? : }\n \n \n \n \n \n \n \n {event.message}\n \n \n \n \n \n \n );\n};\n\nconst EventsList = ({ classes, events, loading }: IEventsListProps) => {\n if (loading) {\n return ;\n }\n return (\n \n \n \n \n Type\n Reason\n Age\n Message\n \n \n \n \n {events.map((event) => (\n \n ))}\n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(EventsList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { containerForHeader } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Link } from \"react-router-dom\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport api from \"../../../../../common/api\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport { niceDays } from \"../../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport EventsList from \"../events/EventsList\";\n\ninterface IPVCDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantVolumes = ({\n classes,\n match,\n setErrorSnackMessage,\n}: IPVCDetailsProps) => {\n const [loading, setLoading] = useState(true);\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const tenantName = match.params[\"tenantName\"];\n const PVCName = match.params[\"PVCName\"];\n const [events, setEvents] = useState([]);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs/${PVCName}/events`\n )\n .then((res: IEvent[]) => {\n for (let i = 0; i < res.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n\n res[i].seen = niceDays((currentTime - res[i].last_seen).toString());\n }\n setEvents(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, PVCName, tenantNamespace, tenantName, setErrorSnackMessage]);\n\n return (\n \n \n

    \n \n PVCs\n {\" \"}\n > {PVCName}\n

    \n
    \n \n

    Events

    \n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(TenantVolumes);\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.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\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.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\n\nexports.default = _default;","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;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","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 Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\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, getTableHeadUtilityClass, classes);\n};\n\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n\n const {\n className,\n component = defaultComponent\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(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.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 `TableRow`.\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 TableHead;"],"names":["Event","props","event","React","open","setOpen","sx","borderBottom","cursor","component","scope","onClick","event_type","reason","seen","message","length","substr","style","paddingBottom","paddingTop","colSpan","in","timeout","unmountOnExit","margin","background","border","padding","fontSize","color","withStyles","theme","createStyles","events","display","classes","loading","Paper","map","breadcrumLink","textDecoration","containerForHeader","spacing","match","setErrorSnackMessage","useState","setLoading","tenantNamespace","params","tenantName","PVCName","setEvents","useEffect","api","then","res","i","currentTime","Date","now","niceDays","last_seen","toString","catch","err","Fragment","item","xs","className","sectionTitle","to","container","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getTableContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","TableContainerRoot","styled","name","overridesResolver","styles","root","width","overflowX","inProps","ref","useThemeProps","other","_objectWithoutPropertiesLoose","ownerState","_extends","composeClasses","useUtilityClasses","_jsx","as","clsx","getTableHeadUtilityClass","TableHeadRoot","tablelvl2","variant","defaultComponent","Tablelvl2Context","value","children","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3518.e1923a22.chunk.js b/portal-ui/build/static/js/3518.e1923a22.chunk.js new file mode 100644 index 000000000..8a8053114 --- /dev/null +++ b/portal-ui/build/static/js/3518.e1923a22.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3518],{5450:function(e,n,r){var t=r(29439),o=r(72791),a=r(11135),s=r(25787),c=r(40986),i=r(79836),l=r(53382),u=r(53994),d=r(56890),Z=r(35855),f=r(64554),p=r(56125),v=r(20890),h=r(85172),m=r(95678),x=r(39281),j=r(10703),g=r(80184),b=function(e){var n=e.event,r=o.useState(!1),a=(0,t.Z)(r,2),s=a[0],c=a[1];return(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(Z.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer"},children:[(0,g.jsx)(u.Z,{component:"th",scope:"row",onClick:function(){return c(!s)},children:n.event_type}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.reason}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.seen}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:n.message.length>=30?"".concat(n.message.slice(0,30),"..."):n.message}),(0,g.jsx)(u.Z,{onClick:function(){return c(!s)},children:s?(0,g.jsx)(m.Z,{}):(0,g.jsx)(h.Z,{})})]}),(0,g.jsx)(Z.Z,{children:(0,g.jsx)(u.Z,{style:{paddingBottom:0,paddingTop:0},colSpan:5,children:(0,g.jsx)(p.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,g.jsx)(f.Z,{sx:{margin:1},children:(0,g.jsx)(v.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:n.message})})})})})]})};n.Z=(0,s.Z)((function(e){return(0,a.Z)({events:{"& .MuiTypography-root":{fontSize:14},"& .Mui-expanded":{"& .eventMessage":{display:"none"}}}})}))((function(e){e.classes;var n=e.events;return e.loading?(0,g.jsx)(c.Z,{}):(0,g.jsx)(x.Z,{component:j.Z,children:(0,g.jsxs)(i.Z,{"aria-label":"collapsible table",children:[(0,g.jsx)(d.Z,{children:(0,g.jsxs)(Z.Z,{children:[(0,g.jsx)(u.Z,{children:"Type"}),(0,g.jsx)(u.Z,{children:"Reason"}),(0,g.jsx)(u.Z,{children:"Age"}),(0,g.jsx)(u.Z,{children:"Message"}),(0,g.jsx)(u.Z,{})]})}),(0,g.jsx)(l.Z,{children:n.map((function(e){return(0,g.jsx)(b,{event:e},"".concat(e.event_type,"-").concat(e.seen))}))})]})})}))},83518:function(e,n,r){r.r(n);var t=r(29439),o=r(1413),a=r(72791),s=r(11135),c=r(25787),i=r(23814),l=r(61889),u=r(91523),d=r(81207),Z=r(45248),f=r(5450),p=r(80184);n.default=(0,c.Z)((function(e){return(0,s.Z)((0,o.Z)({breadcrumLink:{textDecoration:"none",color:"black"}},(0,i.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,r=e.match,o=e.setErrorSnackMessage,s=(0,a.useState)(!0),c=(0,t.Z)(s,2),i=c[0],v=c[1],h=r.params.tenantNamespace,m=r.params.tenantName,x=r.params.PVCName,j=(0,a.useState)([]),g=(0,t.Z)(j,2),b=g[0],k=g[1];return(0,a.useEffect)((function(){i&&d.Z.invoke("GET","/api/v1/namespaces/".concat(h,"/tenants/").concat(m,"/pvcs/").concat(x,"/events")).then((function(e){for(var n=0;n ",x]})}),(0,p.jsxs)(l.ZP,{container:!0,children:[(0,p.jsx)("h1",{className:n.sectionTitle,children:"Events"}),(0,p.jsx)(f.Z,{events:b,loading:i})]})]})}))},85172:function(e,n,r){var t=r(95318);n.Z=void 0;var o=t(r(45649)),a=r(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"}),"KeyboardArrowDown");n.Z=s},95678:function(e,n,r){var t=r(95318);n.Z=void 0;var o=t(r(45649)),a=r(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"}),"KeyboardArrowUp");n.Z=s},39281:function(e,n,r){r.d(n,{Z:function(){return v}});var t=r(87462),o=r(63366),a=r(72791),s=r(28182),c=r(90767),i=r(93736),l=r(47630),u=r(95159);function d(e){return(0,u.Z)("MuiTableContainer",e)}(0,r(30208).Z)("MuiTableContainer",["root"]);var Z=r(80184),f=["className","component"],p=(0,l.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),v=a.forwardRef((function(e,n){var r=(0,i.Z)({props:e,name:"MuiTableContainer"}),a=r.className,l=r.component,u=void 0===l?"div":l,v=(0,o.Z)(r,f),h=(0,t.Z)({},r,{component:u}),m=function(e){var n=e.classes;return(0,c.Z)({root:["root"]},d,n)}(h);return(0,Z.jsx)(p,(0,t.Z)({ref:n,as:u,className:(0,s.Z)(m.root,a),ownerState:h},v))}))},56890:function(e,n,r){r.d(n,{Z:function(){return x}});var t=r(87462),o=r(63366),a=r(72791),s=r(28182),c=r(90767),i=r(829),l=r(93736),u=r(47630),d=r(95159);function Z(e){return(0,d.Z)("MuiTableHead",e)}(0,r(30208).Z)("MuiTableHead",["root"]);var f=r(80184),p=["className","component"],v=(0,u.ZP)("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:function(e,n){return n.root}})({display:"table-header-group"}),h={variant:"head"},m="thead",x=a.forwardRef((function(e,n){var r=(0,l.Z)({props:e,name:"MuiTableHead"}),a=r.className,u=r.component,d=void 0===u?m:u,x=(0,o.Z)(r,p),j=(0,t.Z)({},r,{component:d}),g=function(e){var n=e.classes;return(0,c.Z)({root:["root"]},Z,n)}(j);return(0,f.jsx)(i.Z.Provider,{value:h,children:(0,f.jsx)(v,(0,t.Z)({as:d,className:(0,s.Z)(g.root,a),ref:n,role:d===m?null:"rowgroup",ownerState:j},x))})}))}}]); +//# sourceMappingURL=3518.e1923a22.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3518.e1923a22.chunk.js.map b/portal-ui/build/static/js/3518.e1923a22.chunk.js.map new file mode 100644 index 000000000..f68d16527 --- /dev/null +++ b/portal-ui/build/static/js/3518.e1923a22.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3518.e1923a22.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/events/EventsList.tsx","screens/Console/Tenants/TenantDetails/pvcs/TenantVolumes.tsx","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Typography from \"@mui/material/Typography\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport Paper from \"@mui/material/Paper\";\n\ninterface IEventsListProps {\n classes: any;\n events: IEvent[];\n loading: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n events: {\n \"& .MuiTypography-root\": {\n fontSize: 14,\n },\n \"& .Mui-expanded\": {\n \"& .eventMessage\": {\n display: \"none\",\n },\n },\n },\n });\n\nconst Event = (props: { event: IEvent }) => {\n const { event } = props;\n const [open, setOpen] = React.useState(false);\n\n return (\n \n *\": { borderBottom: \"unset\" }, cursor: \"pointer\" }}>\n setOpen(!open)}>\n {event.event_type}\n \n setOpen(!open)}>{event.reason}\n setOpen(!open)}>{event.seen}\n setOpen(!open)}>\n {event.message.length >= 30\n ? `${event.message.slice(0, 30)}...`\n : event.message}\n \n setOpen(!open)}>\n {open ? : }\n \n \n \n \n \n \n \n {event.message}\n \n \n \n \n \n \n );\n};\n\nconst EventsList = ({ classes, events, loading }: IEventsListProps) => {\n if (loading) {\n return ;\n }\n return (\n \n \n \n \n Type\n Reason\n Age\n Message\n \n \n \n \n {events.map((event) => (\n \n ))}\n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(EventsList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { containerForHeader } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Link } from \"react-router-dom\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport api from \"../../../../../common/api\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport { niceDays } from \"../../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport EventsList from \"../events/EventsList\";\n\ninterface IPVCDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantVolumes = ({\n classes,\n match,\n setErrorSnackMessage,\n}: IPVCDetailsProps) => {\n const [loading, setLoading] = useState(true);\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const tenantName = match.params[\"tenantName\"];\n const PVCName = match.params[\"PVCName\"];\n const [events, setEvents] = useState([]);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pvcs/${PVCName}/events`\n )\n .then((res: IEvent[]) => {\n for (let i = 0; i < res.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n\n res[i].seen = niceDays((currentTime - res[i].last_seen).toString());\n }\n setEvents(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, PVCName, tenantNamespace, tenantName, setErrorSnackMessage]);\n\n return (\n \n \n

    \n \n PVCs\n {\" \"}\n > {PVCName}\n

    \n
    \n \n

    Events

    \n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(TenantVolumes);\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.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\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.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\n\nexports.default = _default;","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;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","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 Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\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, getTableHeadUtilityClass, classes);\n};\n\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n\n const {\n className,\n component = defaultComponent\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(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.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 `TableRow`.\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 TableHead;"],"names":["Event","props","event","React","open","setOpen","sx","borderBottom","cursor","component","scope","onClick","event_type","reason","seen","message","length","slice","style","paddingBottom","paddingTop","colSpan","in","timeout","unmountOnExit","margin","background","border","padding","fontSize","color","withStyles","theme","createStyles","events","display","classes","loading","Paper","map","breadcrumLink","textDecoration","containerForHeader","spacing","match","setErrorSnackMessage","useState","setLoading","tenantNamespace","params","tenantName","PVCName","setEvents","useEffect","api","then","res","i","currentTime","Date","now","niceDays","last_seen","toString","catch","err","Fragment","item","xs","className","sectionTitle","to","container","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getTableContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","TableContainerRoot","styled","name","overridesResolver","styles","root","width","overflowX","inProps","ref","useThemeProps","other","_objectWithoutPropertiesLoose","ownerState","_extends","composeClasses","useUtilityClasses","_jsx","as","clsx","getTableHeadUtilityClass","TableHeadRoot","tablelvl2","variant","defaultComponent","Tablelvl2Context","value","children","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3543.24923c9d.chunk.js b/portal-ui/build/static/js/3543.24923c9d.chunk.js deleted file mode 100644 index d0901977e..000000000 --- a/portal-ui/build/static/js/3543.24923c9d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3543],{74794:function(e,t,n){var s=n(1413),a=(n(72791),n(61889)),o=n(11135),i=n(25787),c=n(23814),r=n(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)((0,s.Z)({},c.Bw))}))((function(e){var t=e.classes,n=e.className,s=void 0===n?"":n,o=e.children;return(0,r.jsx)("div",{className:t.contentSpacer,children:(0,r.jsx)(a.ZP,{container:!0,children:(0,r.jsx)(a.ZP,{item:!0,xs:12,className:s,children:o})})})}))},33543:function(e,t,n){n.r(t),n.d(t,{default:function(){return I}});var s=n(93433),a=n(29439),o=n(1413),i=n(72791),c=n(60364),r=n(26181),l=n.n(r),u=n(11135),d=n(25787),m=n(61889),h=n(36151),p=n(23814),g=n(45248),f=n(42649),x=n(81207),b=n(92983),j=n(27391),_=n(80184),C=(0,d.Z)((function(e){return(0,u.Z)({searchField:(0,o.Z)((0,o.Z)({},p.qg.searchField),{},{height:30,padding:0,"& input":{padding:"0 12px",height:28,fontSize:12,fontWeight:600,color:"#393939"},"&.isDisabled":{"&:hover":{borderColor:"#EAEDEE"}},"& input.Mui-disabled":{backgroundColor:"#EAEAEA"}}),labelStyle:{color:"#393939",fontSize:12,marginBottom:4},buttonKit:{display:"flex",alignItems:"center"},fieldContainer:{flexGrow:1,margin:"0 15px"}})}))((function(e){var t=e.classes,n=e.label,s=e.onChange,a=e.value,o=e.placeholder,c=void 0===o?"":o,r=e.id,l=e.name;return(0,_.jsx)(i.Fragment,{children:(0,_.jsxs)("div",{className:t.fieldContainer,children:[(0,_.jsx)("div",{className:t.labelStyle,children:n}),(0,_.jsx)("div",{className:t.buttonKit,children:(0,_.jsx)(j.Z,{placeholder:c,id:r,name:l,label:"",onChange:function(e){s(e.target.value)},InputProps:{disableUnderline:!0},className:t.searchField,value:a})})]})})})),Z=n(56028),S={time:"Timestamp",api_name:"API Name",access_key:"Access Key",bucket:"Bucket",object:"Object",remote_host:"Remote Host",request_id:"Request ID",user_agent:"User Agent",response_status:"Response Status",response_status_code:"Response Status Code",request_content_length:"Request Content Length",response_content_length:"Response Content Length",time_to_response_ns:"Time to Response NS"},y=(0,d.Z)((function(e){return(0,u.Z)((0,o.Z)({buttonContainer:{textAlign:"right"},objectKeyCol:{fontWeight:700,paddingRight:"10px",textAlign:"left"}},p.oO))}))((function(e){var t=e.modalOpen,n=e.logSearchElement,s=e.onClose,a=e.classes,o=Object.keys(n);return(0,_.jsx)(i.Fragment,{children:(0,_.jsx)(Z.Z,{modalOpen:t,title:"Full Log Information",onClose:function(){s()},children:(0,_.jsxs)(m.ZP,{container:!0,children:[(0,_.jsx)(m.ZP,{item:!0,xs:12,children:(0,_.jsx)("table",{children:(0,_.jsx)("tbody",{children:o.map((function(e,t){return(0,_.jsxs)("tr",{children:[(0,_.jsx)("th",{className:a.objectKeyCol,children:l()(S,e,"".concat(e))}),(0,_.jsx)("td",{children:l()(n,e,"")})]},"logSearch-".concat(t.toString()))}))})})}),(0,_.jsx)(m.ZP,{item:!0,xs:12,className:a.buttonContainer,children:(0,_.jsx)(h.Z,{type:"button",variant:"contained",color:"primary",onClick:s,children:"Close"})})]})})})})),v=n(63856),k=n(32291),N=n(74794),E=n(93385),A=n(56087),F=n(38442),P=n(93656),K=n(23804),O=function(e){var t=e.iconComponent,n=e.entity,s=e.documentationLink;return(0,_.jsx)(m.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,_.jsx)(m.ZP,{item:!0,xs:8,children:(0,_.jsx)(K.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,_.jsxs)(i.Fragment,{children:["This feature is not available.",(0,_.jsx)("br",{}),"Please configure"," ",(0,_.jsx)("a",{href:s,target:"_blank",rel:"noreferrer",children:n})," ","first to use this feature."]})})})})},q={setErrorSnackMessage:f.Ih},B=(0,c.$j)((function(e){return{features:e.console.session.features}}),q),I=(0,d.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({blockCollapsed:{display:"none",overflowY:"hidden"},filterOpen:{display:"block",marginBottom:12},endLineAction:{marginBottom:15,padding:"0 15px 0 15px",display:"flex",alignItems:"center",justifyContent:"flex-end"},filtersContainer:{display:"flex",justifyContent:"space-between",marginBottom:12},innerContainer:{backgroundColor:"#fff"},noticeLabel:{marginLeft:15,marginBottom:15,fontSize:12,color:"#9C9C9C"},tableFOpen:{height:"calc(100vh - 520px)"},tableFClosed:{height:"calc(100vh - 320px)"}},p.VX),p.S),{},{searchOptions:{display:"flex",padding:15,"@media (max-width: 900px)":{flexFlow:"column"}},formBox:{border:"1px solid #EAEAEA",marginBottom:15},dateRangePicker:{"& div":{marginBottom:0}},advancedButton:{display:"flex",alignItems:"center",justifyContent:"flex-start"}},p.o$),(0,p.Bz)(e.spacing(4))))}))(B((function(e){var t=e.classes,n=e.features,o=e.setErrorSnackMessage,c=(0,i.useState)(!0),r=(0,a.Z)(c,2),u=r[0],d=r[1],p=(0,i.useState)(null),f=(0,a.Z)(p,2),j=f[0],Z=f[1],K=(0,i.useState)(null),q=(0,a.Z)(K,2),B=q[0],I=q[1],L=(0,i.useState)(!1),w=(0,a.Z)(L,2),R=w[0],D=w[1],T=(0,i.useState)([]),M=(0,a.Z)(T,2),z=M[0],H=M[1],W=(0,i.useState)(""),G=(0,a.Z)(W,2),U=G[0],Y=G[1],$=(0,i.useState)(""),V=(0,a.Z)($,2),X=V[0],J=V[1],Q=(0,i.useState)(""),ee=(0,a.Z)(Q,2),te=ee[0],ne=ee[1],se=(0,i.useState)(""),ae=(0,a.Z)(se,2),oe=ae[0],ie=ae[1],ce=(0,i.useState)(""),re=(0,a.Z)(ce,2),le=re[0],ue=re[1],de=(0,i.useState)(""),me=(0,a.Z)(de,2),he=me[0],pe=me[1],ge=(0,i.useState)(""),fe=(0,a.Z)(ge,2),xe=fe[0],be=fe[1],je=(0,i.useState)("DESC"),_e=(0,a.Z)(je,2),Ce=_e[0],Ze=_e[1],Se=(0,i.useState)(["time","api_name","access_key","bucket","object","remote_host","request_id","user_agent","response_status"]),ye=(0,a.Z)(Se,2),ve=ye[0],ke=ye[1],Ne=(0,i.useState)(0),Ee=(0,a.Z)(Ne,2),Ae=Ee[0],Fe=Ee[1],Pe=(0,i.useState)(!1),Ke=(0,a.Z)(Pe,2),Oe=Ke[0],qe=Ke[1],Be=(0,i.useState)(!1),Ie=(0,a.Z)(Be,2),Le=Ie[0],we=Ie[1],Re=(0,i.useState)(null),De=(0,a.Z)(Re,2),Te=De[0],Me=De[1],ze=null,He=n&&n.includes("log-search"),We=(0,i.useCallback)((function(){if(!Oe&&He){qe(!0);var e="".concat(""!==U?"&fp=bucket:".concat(U):"").concat(""!==le?"&fp=object:".concat(le):"").concat(""!==X?"&fp=api_name:".concat(X):"").concat(""!==te?"&fp=access_key:".concat(te):"").concat(""!==he?"&fp=request_id:".concat(he):"").concat(""!==oe?"&fp=user_agent:".concat(oe):"").concat(""!==xe?"&fp=response_status:".concat(xe):"");(e=e.trim()).endsWith(",")&&(e=e.slice(0,-1)),x.Z.invoke("GET","/api/v1/logs/search?q=reqinfo".concat(""!==e?"".concat(e):"","&pageSize=100&pageNo=").concat(Ae,"&order=").concat("DESC"===Ce?"timeDesc":"timeAsc").concat(null!==j?"&timeStart=".concat(j.toISOString()):"").concat(null!==B?"&timeEnd=".concat(B.toISOString()):"")).then((function(e){var t=e.results||[];d(!1),qe(!1),H(t),Fe(Ae+1),null!==ze&&ze()})).catch((function(e){d(!1),qe(!1),o(e)}))}else d(!1),qe(!1)}),[Oe,He,U,le,X,te,he,oe,xe,Ae,Ce,j,B,ze,o]);(0,i.useEffect)((function(){u&&(H([]),We())}),[u,Ce,We]);return(0,_.jsxs)(i.Fragment,{children:[Le&&null!==Te&&(0,_.jsx)(y,{logSearchElement:Te,modalOpen:Le,onClose:function(){Me(null),we(!1)}}),(0,_.jsx)(k.Z,{label:"Audit Logs"}),(0,_.jsx)(N.Z,{children:He?(0,_.jsxs)(i.Fragment,{children:[" ",(0,_.jsxs)(m.ZP,{xs:12,className:t.formBox,children:[(0,_.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(t.searchOptions),children:[(0,_.jsx)("div",{className:t.dateRangePicker,children:(0,_.jsx)(v.Z,{setTimeEnd:I,setTimeStart:Z,timeEnd:B,timeStart:j})}),(0,_.jsx)(m.ZP,{item:!0,className:t.advancedButton,children:(0,_.jsxs)("button",{onClick:function(){D(!R)},className:t.advancedConfiguration,children:[R?"Hide":"Show"," advanced Filters"," ",(0,_.jsx)("span",{className:R?t.advancedOpen:t.advancedClosed,children:(0,_.jsx)(E.Z,{})})]})})]}),(0,_.jsx)(m.ZP,{item:!0,xs:12,className:"".concat(t.blockCollapsed," ").concat(R?t.filterOpen:""),children:(0,_.jsxs)("div",{className:t.innerContainer,children:[(0,_.jsxs)("div",{className:t.noticeLabel,children:["Enable your preferred options to get filtered records.",(0,_.jsx)("br",{}),"You can use '*' to match any character, '.' to signify a single character or '\\' to scape an special character (E.g. mybucket-*)"]}),(0,_.jsxs)("div",{className:t.filtersContainer,children:[(0,_.jsx)(C,{onChange:Y,value:U,label:"Bucket",id:"bucket",name:"bucket"}),(0,_.jsx)(C,{onChange:J,value:X,label:"API Name",id:"api_name",name:"api_name"}),(0,_.jsx)(C,{onChange:ne,value:te,label:"Access Key",id:"access_key",name:"access_key"}),(0,_.jsx)(C,{onChange:ie,value:oe,label:"User Agent",id:"user_agent",name:"user_agent"})]}),(0,_.jsxs)("div",{className:t.filtersContainer,children:[(0,_.jsx)(C,{onChange:ue,value:le,label:"Object",id:"object",name:"object"}),(0,_.jsx)(C,{onChange:pe,value:he,label:"Request ID",id:"request_id",name:"request_id"}),(0,_.jsx)(C,{onChange:be,value:xe,label:"Response Status",id:"response_status",name:"response_status"})]})]})}),(0,_.jsx)(m.ZP,{item:!0,xs:12,className:t.endLineAction,children:(0,_.jsx)(h.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){Fe(0),d(!0)},children:"Get Information"})})]}),(0,_.jsx)(m.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,_.jsx)(F.s,{scopes:[A.Ft.ADMIN_HEALTH_INFO],resource:A.C3,errorProps:{disabled:!0},children:(0,_.jsx)(b.Z,{columns:[{label:S.time,elementKey:"time",enableSort:!0},{label:S.api_name,elementKey:"api_name"},{label:S.access_key,elementKey:"access_key"},{label:S.bucket,elementKey:"bucket"},{label:S.object,elementKey:"object"},{label:S.remote_host,elementKey:"remote_host"},{label:S.request_id,elementKey:"request_id"},{label:S.user_agent,elementKey:"user_agent"},{label:S.response_status,elementKey:"response_status",renderFunction:function(e){return(0,_.jsx)(i.Fragment,{children:(0,_.jsxs)("span",{children:[e.response_status_code," (",e.response_status,")"]})})},renderFullObject:!0},{label:S.request_content_length,elementKey:"request_content_length",renderFunction:g.ae},{label:S.response_content_length,elementKey:"response_content_length",renderFunction:g.ae},{label:S.time_to_response_ns,elementKey:"time_to_response_ns",renderFunction:g.Yj,contentTextAlign:"right"}],isLoading:u,records:z,entityName:"Logs",customEmptyMessage:"There is no information with this criteria",idField:"request_id",columnsSelector:!0,columnsShown:ve,onColumnChange:function(e,t){var n=(0,s.Z)(ve);t?n.includes(e)||n.push(e):n=ve.filter((function(t){return t!==e})),ke(n)},customPaperHeight:R?t.tableFOpen:t.tableFClosed,sortConfig:{currentSort:"time",currentDirection:Ce,triggerSort:function(e){var t=l()(e,"sortDirection","DESC");Ze(t),Fe(0),d(!0)}},infiniteScrollConfig:{recordsCount:1e6,loadMoreRecords:function(e){return We(),new Promise((function(e){ze=e}))}},itemActions:[{type:"view",onClick:function(e){Me(e),we(!0)}}],textSelectable:!0})})})]}):(0,_.jsx)(O,{entity:"Audit Logs",iconComponent:(0,_.jsx)(P.W1,{}),documentationLink:"https://github.com/minio/operator/tree/master/logsearchapi"})})]})})))}}]); -//# sourceMappingURL=3543.24923c9d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3543.24923c9d.chunk.js.map b/portal-ui/build/static/js/3543.24923c9d.chunk.js.map deleted file mode 100644 index 0e38b877f..000000000 --- a/portal-ui/build/static/js/3543.24923c9d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3543.24923c9d.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/3543.46c5055f.chunk.js b/portal-ui/build/static/js/3543.46c5055f.chunk.js new file mode 100644 index 000000000..4b5be5130 --- /dev/null +++ b/portal-ui/build/static/js/3543.46c5055f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3543],{23804:function(e,t,n){n(72791);var o=n(11135),a=n(25787),r=n(61889),i=n(80184);t.Z=(0,a.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,n=e.iconComponent,o=e.title,a=e.help;return(0,i.jsx)("div",{className:t.root,children:(0,i.jsxs)(r.ZP,{container:!0,children:[(0,i.jsxs)(r.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,o]}),(0,i.jsx)(r.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,n){var o=n(1413),a=n(72791),r=n(11135),i=n(25787),s=n(61889),l=n(36151),c=n(27197),d=n(32686),u=n(23814),m=n(80705),h=n(85090),p=n(80184);t.Z=(0,i.Z)((function(e){return(0,r.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.OR),u.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,n=e.timeStart,o=e.setTimeStart,r=e.timeEnd,i=e.setTimeEnd,u=e.triggerSync;return(0,p.jsx)(a.Fragment,{children:(0,p.jsxs)(s.ZP,{item:!0,xs:12,className:t.timeContainers,children:[(0,p.jsx)("span",{className:t.filterTitle,children:"Filter:"}),(0,p.jsxs)("div",{className:t.filterContainer,children:[(0,p.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,p.jsx)(c.Z,{})}),(0,p.jsx)("span",{className:t.selectorLabel,children:"Start Time:"}),(0,p.jsx)(m.Z,{value:n,onChange:o,forFilterContained:!0,id:"stTime",noInputIcon:!0}),(0,p.jsx)("span",{className:t.divisorLine,children:"\xa0"}),(0,p.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,p.jsx)(d.Z,{})}),(0,p.jsx)("span",{className:t.selectorLabel,children:"End Time:"}),(0,p.jsx)(m.Z,{value:r,onChange:i,forFilterContained:!0,id:"endTime",noInputIcon:!0})]}),u&&(0,p.jsx)(l.Z,{type:"button",variant:"contained",color:"primary",onClick:u,endIcon:(0,p.jsx)(h.Z,{}),className:t.syncButton,children:"Sync"})]})})}))},80705:function(e,t,n){var o=n(1413),a=n(72791),r=n(27391),i=n(61889),s=n(30829),l=n(20068),c=n(42261),d=n(55498),u=n(33915),m=n(63466),h=n(27197),p=n(11135),f=n(25787),g=n(84570),x=n(23814),b=n(33976),j=n(80184);t.Z=(0,f.Z)((function(e){return(0,p.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,n=e.onChange,p=e.classes,f=e.forSearchBlock,x=void 0!==f&&f,v=e.forFilterContained,C=void 0!==v&&v,Z=e.label,S=e.tooltip,y=void 0===S?"":S,_=e.required,k=e.id,N=e.disabled,B=void 0!==N&&N,F=e.noInputIcon,E={};void 0!==F&&F||(E={startAdornment:(0,j.jsx)(m.Z,{position:"start",children:(0,j.jsx)(h.Z,{})})}),C&&(E={endAdornment:(0,j.jsx)(m.Z,{position:"end",children:(0,j.jsx)(b.Z,{className:p.openListIcon})})});var P="";x?P=p.dateSelectorOverride:C&&(P=p.dateSelectorFilterOverride);var w=(0,j.jsx)(u.Z,{dateAdapter:d.Z,children:(0,j.jsx)(c.Z,{value:t,onChange:n,InputProps:(0,o.Z)((0,o.Z)({},E),{},{className:P}),label:"",className:x?p.parentDateOverride:p.dateSelectorFormOverride,disabled:B,renderInput:function(e){return(0,j.jsx)(r.Z,(0,o.Z)((0,o.Z)({id:k,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:p.paperOverride}})});return x?w:(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(i.ZP,{item:!0,xs:12,className:C?"":p.fieldContainer,children:[""!==Z&&(0,j.jsxs)(s.Z,{htmlFor:k,className:p.inputLabel,children:[(0,j.jsxs)("span",{children:[Z,_?"*":""]}),""!==y&&(0,j.jsx)("div",{className:p.tooltipContainer,children:(0,j.jsx)(l.Z,{title:y,placement:"top-start",children:(0,j.jsx)("div",{className:p.tooltip,children:(0,j.jsx)(g.Z,{})})})})]}),(0,j.jsx)("div",{className:p.textBoxContainer,children:w})]})})}))},56028:function(e,t,n){var o=n(29439),a=n(1413),r=n(72791),i=n(60364),s=n(13400),l=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),h=n(25787),p=n(23814),f=n(42649),g=n(29823),x=n(28057),b=n(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,h.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(j((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,m=e.children,h=e.classes,p=e.wideLimit,f=void 0===p||p,j=e.modalSnackMessage,v=e.noContentPadding,C=e.setModalSnackMessage,Z=e.titleIcon,S=void 0===Z?null:Z,y=(0,r.useState)(!1),_=(0,o.Z)(y,2),k=_[0],N=_[1];(0,r.useEffect)((function(){C("")}),[C]),(0,r.useEffect)((function(){if(j){if(""===j.message)return void N(!1);"error"!==j.type&&N(!0)}}),[j]);var B=f?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},F="";return j&&(F=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(F=j.message)),(0,b.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:n,classes:h},B),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,b.jsxs)(d.Z,{className:h.title,children:[(0,b.jsxs)("div",{className:h.titleText,children:[S," ",i]}),(0,b.jsx)("div",{className:h.closeContainer,children:(0,b.jsx)(s.Z,{"aria-label":"close",id:"close",className:h.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:k,className:h.snackBarModal,onClose:function(){N(!1),C("")},message:F,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,b.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},33543:function(e,t,n){n.r(t),n.d(t,{default:function(){return T}});var o=n(93433),a=n(29439),r=n(1413),i=n(72791),s=n(60364),l=n(26181),c=n.n(l),d=n(11135),u=n(25787),m=n(61889),h=n(36151),p=n(23814),f=n(45248),g=n(42649),x=n(81207),b=n(92983),j=n(27391),v=n(80184),C=(0,u.Z)((function(e){return(0,d.Z)({searchField:(0,r.Z)((0,r.Z)({},p.qg.searchField),{},{height:30,padding:0,"& input":{padding:"0 12px",height:28,fontSize:12,fontWeight:600,color:"#393939"},"&.isDisabled":{"&:hover":{borderColor:"#EAEDEE"}},"& input.Mui-disabled":{backgroundColor:"#EAEAEA"}}),labelStyle:{color:"#393939",fontSize:12,marginBottom:4},buttonKit:{display:"flex",alignItems:"center"},fieldContainer:{flexGrow:1,margin:"0 15px"}})}))((function(e){var t=e.classes,n=e.label,o=e.onChange,a=e.value,r=e.placeholder,s=void 0===r?"":r,l=e.id,c=e.name;return(0,v.jsx)(i.Fragment,{children:(0,v.jsxs)("div",{className:t.fieldContainer,children:[(0,v.jsx)("div",{className:t.labelStyle,children:n}),(0,v.jsx)("div",{className:t.buttonKit,children:(0,v.jsx)(j.Z,{placeholder:s,id:l,name:c,label:"",onChange:function(e){o(e.target.value)},InputProps:{disableUnderline:!0},className:t.searchField,value:a})})]})})})),Z=n(56028),S={time:"Timestamp",api_name:"API Name",access_key:"Access Key",bucket:"Bucket",object:"Object",remote_host:"Remote Host",request_id:"Request ID",user_agent:"User Agent",response_status:"Response Status",response_status_code:"Response Status Code",request_content_length:"Request Content Length",response_content_length:"Response Content Length",time_to_response_ns:"Time to Response NS"},y=(0,u.Z)((function(e){return(0,d.Z)((0,r.Z)({buttonContainer:{textAlign:"right"},objectKeyCol:{fontWeight:700,paddingRight:"10px",textAlign:"left"}},p.oO))}))((function(e){var t=e.modalOpen,n=e.logSearchElement,o=e.onClose,a=e.classes,r=Object.keys(n);return(0,v.jsx)(i.Fragment,{children:(0,v.jsx)(Z.Z,{modalOpen:t,title:"Full Log Information",onClose:function(){o()},children:(0,v.jsxs)(m.ZP,{container:!0,children:[(0,v.jsx)(m.ZP,{item:!0,xs:12,children:(0,v.jsx)("table",{children:(0,v.jsx)("tbody",{children:r.map((function(e,t){return(0,v.jsxs)("tr",{children:[(0,v.jsx)("th",{className:a.objectKeyCol,children:c()(S,e,"".concat(e))}),(0,v.jsx)("td",{children:c()(n,e,"")})]},"logSearch-".concat(t.toString()))}))})})}),(0,v.jsx)(m.ZP,{item:!0,xs:12,className:a.buttonContainer,children:(0,v.jsx)(h.Z,{type:"button",variant:"contained",color:"primary",onClick:o,children:"Close"})})]})})})})),_=n(63856),k=n(32291),N=n(74794),B=n(93385),F=n(56087),E=n(38442),P=n(93656),w=n(23804),I=function(e){var t=e.iconComponent,n=e.entity,o=e.documentationLink;return(0,v.jsx)(m.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,v.jsx)(m.ZP,{item:!0,xs:8,children:(0,v.jsx)(w.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,v.jsxs)(i.Fragment,{children:["This feature is not available.",(0,v.jsx)("br",{}),"Please configure"," ",(0,v.jsx)("a",{href:o,target:"_blank",rel:"noreferrer",children:n})," ","first to use this feature."]})})})})},M={setErrorSnackMessage:g.Ih},A=(0,s.$j)((function(e){return{features:e.console.session.features}}),M),T=(0,u.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({blockCollapsed:{display:"none",overflowY:"hidden"},filterOpen:{display:"block",marginBottom:12},endLineAction:{marginBottom:15,padding:"0 15px 0 15px",display:"flex",alignItems:"center",justifyContent:"flex-end"},filtersContainer:{display:"flex",justifyContent:"space-between",marginBottom:12},innerContainer:{backgroundColor:"#fff"},noticeLabel:{marginLeft:15,marginBottom:15,fontSize:12,color:"#9C9C9C"},tableFOpen:{height:"calc(100vh - 520px)"},tableFClosed:{height:"calc(100vh - 320px)"}},p.VX),p.S),{},{searchOptions:{display:"flex",padding:15,"@media (max-width: 900px)":{flexFlow:"column"}},formBox:{border:"1px solid #EAEAEA",marginBottom:15},dateRangePicker:{"& div":{marginBottom:0}},advancedButton:{display:"flex",alignItems:"center",justifyContent:"flex-start"}},p.o$),(0,p.Bz)(e.spacing(4))))}))(A((function(e){var t=e.classes,n=e.features,r=e.setErrorSnackMessage,s=(0,i.useState)(!0),l=(0,a.Z)(s,2),d=l[0],u=l[1],p=(0,i.useState)(null),g=(0,a.Z)(p,2),j=g[0],Z=g[1],w=(0,i.useState)(null),M=(0,a.Z)(w,2),A=M[0],T=M[1],O=(0,i.useState)(!1),D=(0,a.Z)(O,2),L=D[0],R=D[1],K=(0,i.useState)([]),q=(0,a.Z)(K,2),z=q[0],W=q[1],H=(0,i.useState)(""),G=(0,a.Z)(H,2),Y=G[0],U=G[1],$=(0,i.useState)(""),Q=(0,a.Z)($,2),V=Q[0],X=Q[1],J=(0,i.useState)(""),ee=(0,a.Z)(J,2),te=ee[0],ne=ee[1],oe=(0,i.useState)(""),ae=(0,a.Z)(oe,2),re=ae[0],ie=ae[1],se=(0,i.useState)(""),le=(0,a.Z)(se,2),ce=le[0],de=le[1],ue=(0,i.useState)(""),me=(0,a.Z)(ue,2),he=me[0],pe=me[1],fe=(0,i.useState)(""),ge=(0,a.Z)(fe,2),xe=ge[0],be=ge[1],je=(0,i.useState)("DESC"),ve=(0,a.Z)(je,2),Ce=ve[0],Ze=ve[1],Se=(0,i.useState)(["time","api_name","access_key","bucket","object","remote_host","request_id","user_agent","response_status"]),ye=(0,a.Z)(Se,2),_e=ye[0],ke=ye[1],Ne=(0,i.useState)(0),Be=(0,a.Z)(Ne,2),Fe=Be[0],Ee=Be[1],Pe=(0,i.useState)(!1),we=(0,a.Z)(Pe,2),Ie=we[0],Me=we[1],Ae=(0,i.useState)(!1),Te=(0,a.Z)(Ae,2),Oe=Te[0],De=Te[1],Le=(0,i.useState)(null),Re=(0,a.Z)(Le,2),Ke=Re[0],qe=Re[1],ze=null,We=n&&n.includes("log-search"),He=(0,i.useCallback)((function(){if(!Ie&&We){Me(!0);var e="".concat(""!==Y?"&fp=bucket:".concat(Y):"").concat(""!==ce?"&fp=object:".concat(ce):"").concat(""!==V?"&fp=api_name:".concat(V):"").concat(""!==te?"&fp=access_key:".concat(te):"").concat(""!==he?"&fp=request_id:".concat(he):"").concat(""!==re?"&fp=user_agent:".concat(re):"").concat(""!==xe?"&fp=response_status:".concat(xe):"");(e=e.trim()).endsWith(",")&&(e=e.slice(0,-1)),x.Z.invoke("GET","/api/v1/logs/search?q=reqinfo".concat(""!==e?"".concat(e):"","&pageSize=100&pageNo=").concat(Fe,"&order=").concat("DESC"===Ce?"timeDesc":"timeAsc").concat(null!==j?"&timeStart=".concat(j.toISOString()):"").concat(null!==A?"&timeEnd=".concat(A.toISOString()):"")).then((function(e){var t=e.results||[];u(!1),Me(!1),W(t),Ee(Fe+1),null!==ze&&ze()})).catch((function(e){u(!1),Me(!1),r(e)}))}else u(!1),Me(!1)}),[Ie,We,Y,ce,V,te,he,re,xe,Fe,Ce,j,A,ze,r]);(0,i.useEffect)((function(){d&&(W([]),He())}),[d,Ce,He]);return(0,v.jsxs)(i.Fragment,{children:[Oe&&null!==Ke&&(0,v.jsx)(y,{logSearchElement:Ke,modalOpen:Oe,onClose:function(){qe(null),De(!1)}}),(0,v.jsx)(k.Z,{label:"Audit Logs"}),(0,v.jsx)(N.Z,{children:We?(0,v.jsxs)(i.Fragment,{children:[" ",(0,v.jsxs)(m.ZP,{xs:12,className:t.formBox,children:[(0,v.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(t.searchOptions),children:[(0,v.jsx)("div",{className:t.dateRangePicker,children:(0,v.jsx)(_.Z,{setTimeEnd:T,setTimeStart:Z,timeEnd:A,timeStart:j})}),(0,v.jsx)(m.ZP,{item:!0,className:t.advancedButton,children:(0,v.jsxs)("button",{onClick:function(){R(!L)},className:t.advancedConfiguration,children:[L?"Hide":"Show"," advanced Filters"," ",(0,v.jsx)("span",{className:L?t.advancedOpen:t.advancedClosed,children:(0,v.jsx)(B.Z,{})})]})})]}),(0,v.jsx)(m.ZP,{item:!0,xs:12,className:"".concat(t.blockCollapsed," ").concat(L?t.filterOpen:""),children:(0,v.jsxs)("div",{className:t.innerContainer,children:[(0,v.jsxs)("div",{className:t.noticeLabel,children:["Enable your preferred options to get filtered records.",(0,v.jsx)("br",{}),"You can use '*' to match any character, '.' to signify a single character or '\\' to scape an special character (E.g. mybucket-*)"]}),(0,v.jsxs)("div",{className:t.filtersContainer,children:[(0,v.jsx)(C,{onChange:U,value:Y,label:"Bucket",id:"bucket",name:"bucket"}),(0,v.jsx)(C,{onChange:X,value:V,label:"API Name",id:"api_name",name:"api_name"}),(0,v.jsx)(C,{onChange:ne,value:te,label:"Access Key",id:"access_key",name:"access_key"}),(0,v.jsx)(C,{onChange:ie,value:re,label:"User Agent",id:"user_agent",name:"user_agent"})]}),(0,v.jsxs)("div",{className:t.filtersContainer,children:[(0,v.jsx)(C,{onChange:de,value:ce,label:"Object",id:"object",name:"object"}),(0,v.jsx)(C,{onChange:pe,value:he,label:"Request ID",id:"request_id",name:"request_id"}),(0,v.jsx)(C,{onChange:be,value:xe,label:"Response Status",id:"response_status",name:"response_status"})]})]})}),(0,v.jsx)(m.ZP,{item:!0,xs:12,className:t.endLineAction,children:(0,v.jsx)(h.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){Ee(0),u(!0)},children:"Get Information"})})]}),(0,v.jsx)(m.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,v.jsx)(E.s,{scopes:[F.Ft.ADMIN_HEALTH_INFO],resource:F.C3,errorProps:{disabled:!0},children:(0,v.jsx)(b.Z,{columns:[{label:S.time,elementKey:"time",enableSort:!0},{label:S.api_name,elementKey:"api_name"},{label:S.access_key,elementKey:"access_key"},{label:S.bucket,elementKey:"bucket"},{label:S.object,elementKey:"object"},{label:S.remote_host,elementKey:"remote_host"},{label:S.request_id,elementKey:"request_id"},{label:S.user_agent,elementKey:"user_agent"},{label:S.response_status,elementKey:"response_status",renderFunction:function(e){return(0,v.jsx)(i.Fragment,{children:(0,v.jsxs)("span",{children:[e.response_status_code," (",e.response_status,")"]})})},renderFullObject:!0},{label:S.request_content_length,elementKey:"request_content_length",renderFunction:f.ae},{label:S.response_content_length,elementKey:"response_content_length",renderFunction:f.ae},{label:S.time_to_response_ns,elementKey:"time_to_response_ns",renderFunction:f.Yj,contentTextAlign:"right"}],isLoading:d,records:z,entityName:"Logs",customEmptyMessage:"There is no information with this criteria",idField:"request_id",columnsSelector:!0,columnsShown:_e,onColumnChange:function(e,t){var n=(0,o.Z)(_e);t?n.includes(e)||n.push(e):n=_e.filter((function(t){return t!==e})),ke(n)},customPaperHeight:L?t.tableFOpen:t.tableFClosed,sortConfig:{currentSort:"time",currentDirection:Ce,triggerSort:function(e){var t=c()(e,"sortDirection","DESC");Ze(t),Ee(0),u(!0)}},infiniteScrollConfig:{recordsCount:1e6,loadMoreRecords:function(e){return He(),new Promise((function(e){ze=e}))}},itemActions:[{type:"view",onClick:function(e){qe(e),De(!0)}}],textSelectable:!0})})})]}):(0,v.jsx)(I,{entity:"Audit Logs",iconComponent:(0,v.jsx)(P.W1,{}),documentationLink:"https://github.com/minio/operator/tree/master/logsearchapi"})})]})})))}}]); +//# sourceMappingURL=3543.46c5055f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3543.46c5055f.chunk.js.map b/portal-ui/build/static/js/3543.46c5055f.chunk.js.map new file mode 100644 index 000000000..8e5958dd1 --- /dev/null +++ b/portal-ui/build/static/js/3543.46c5055f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3543.46c5055f.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/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":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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","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","searchField","labelStyle","buttonKit","placeholder","name","TextField","val","target","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","objectKeyCol","modalBasic","logSearchElement","jsonItems","Object","keys","ModalWrapper","Grid","map","objectKey","index","get","toString","Button","entity","documentationLink","justifyContent","alignContent","HelpBox","href","rel","mapDispatchToProps","setErrorSnackMessage","features","console","session","blockCollapsed","overflowY","filterOpen","endLineAction","filtersContainer","innerContainer","noticeLabel","tableFOpen","tableFClosed","tableStyles","advancedFilterToggleStyles","searchOptions","flexFlow","formBox","dateRangePicker","advancedButton","logsCommon","containerForHeader","spacing","loading","setLoading","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","PageHeader","PageLayout","DateRangeSelector","advancedConfiguration","advancedOpen","advancedClosed","ArrowForwardIos","tableBlock","SecureComponent","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","errorProps","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.45996dad.chunk.js b/portal-ui/build/static/js/3631.45996dad.chunk.js new file mode 100644 index 000000000..7c01d7c1b --- /dev/null +++ b/portal-ui/build/static/js/3631.45996dad.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3631],{33690:function(e,o,t){t.r(o);var n=t(29439),r=t(1413),c=t(72791),i=t(60364),a=t(36151),l=t(11135),s=t(25787),d=t(61889),u=t(23814),f=t(42649),m=t(81207),p=t(56028),x=t(90673),b=t(93656),g=t(92217),h=t(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},u.ID),u.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"}}},u.DF),u.ID),u.bK))}))(Z((function(e){var o=e.classes,t=e.open,r=e.bucketName,i=e.actualPolicy,l=e.actualDefinition,s=e.closeModalAndRefresh,u=e.setModalErrorSnackMessage,f=(0,c.useState)(!1),Z=(0,n.Z)(f,2),j=Z[0],y=Z[1],C=(0,c.useState)(""),k=(0,n.Z)(C,2),v=k[0],S=k[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:v,definition:M}).then((function(e){y(!1),s()})).catch((function(e){y(!1),u(e)})))},children:(0,h.jsxs)(d.ZP,{container:!0,children:[(0,h.jsxs)(d.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,h.jsx)(d.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,h.jsx)(x.Z,{value:v,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"===v&&(0,h.jsx)(d.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)(d.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"===v&&!M,children:"Set"})]})]})})})})))},92217:function(e,o,t){var n=t(93433),r=t(29439),c=t(1413),i=t(72791),a=t(61889),l=(t(2574),t(69874)),s=t(9461),d=t(73975),u=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(93656),j=t(40603),y=t(78029),C=t.n(y),k=t(64294),v=t(80184),S={json:d.AV,yaml:function(){return s.i.define(u.r)}},B=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}),P=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});o.Z=(0,b.Z)((function(e){return(0,x.Z)((0,c.Z)({},h.YI))}))((function(e){var o=e.value,t=e.label,c=void 0===t?"":t,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,b=e.classes,h=e.onBeforeChange,y=e.readOnly,k=void 0!==y&&y,M=e.editorHeight,N=void 0===M?"250px":M,O=(0,i.useState)(!1),F=(0,r.Z)(O,2),E=F[0],w=F[1],T=[];return S[x]&&(T=[].concat((0,n.Z)(T),[S[x]()])),(0,v.jsxs)(i.Fragment,{children:[(0,v.jsxs)(f.Z,{className:b.inputLabel,children:[(0,v.jsx)("span",{children:c}),""!==d&&(0,v.jsx)("div",{className:b.tooltipContainer,children:(0,v.jsx)(m.Z,{title:d,placement:"top-start",children:(0,v.jsx)("div",{className:b.tooltip,children:(0,v.jsx)(g.Z,{})})})})]}),(0,v.jsx)(a.ZP,{item:!0,xs:12,children:(0,v.jsx)("br",{})}),(0,v.jsxs)(a.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,v.jsx)(a.ZP,{item:!0,xs:12,children:(0,v.jsx)(l.ZP,{value:o,theme:E?P:B,extensions:T,editable:!k,basicSetup:!0,height:N,onChange:function(e,o){h(null,null,e)}})}),(0,v.jsx)(a.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:E?"#282c34":"#f7f7f7"},children:(0,v.jsxs)(p.Z,{className:E?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,v.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){w(!E)},text:"",icon:(0,v.jsx)(Z.EO,{}),color:"primary",variant:"outlined"}),(0,v.jsx)(C(),{text:o,children:(0,v.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,v.jsx)(Z.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,o,t){var n=t(29439),r=t(1413),c=t(72791),i=t(60364),a=t(13400),l=t(55646),s=t(5574),d=t(65661),u=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,C=e.titleIcon,k=void 0===C?null:C,v=(0,c.useState)(!1),S=(0,n.Z)(v,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)(d.Z,{className:m.title,children:[(0,h.jsxs)("div",{className:m.titleText,children:[k," ",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)(u.Z,{className:j?"":m.content,children:f})]}))})))},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.45996dad.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3631.45996dad.chunk.js.map b/portal-ui/build/static/js/3631.45996dad.chunk.js.map new file mode 100644 index 000000000..9a91544dc --- /dev/null +++ b/portal-ui/build/static/js/3631.45996dad.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3631.45996dad.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/@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 });\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","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","tooltip","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","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","_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/3631.a3bc3d9b.chunk.js b/portal-ui/build/static/js/3631.a3bc3d9b.chunk.js deleted file mode 100644 index 1a38822d0..000000000 --- a/portal-ui/build/static/js/3631.a3bc3d9b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3631],{33690:function(e,o,t){t.r(o);var n=t(29439),r=t(1413),c=t(72791),a=t(60364),i=t(36151),l=t(11135),s=t(25787),d=t(61889),u=t(23814),f=t(42649),m=t(81207),p=t(56028),x=t(90673),b=t(93656),h=t(92217),g=t(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},u.ID),u.bK));var Z=(0,a.$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"}}},u.DF),u.ID),u.bK))}))(Z((function(e){var o=e.classes,t=e.open,r=e.bucketName,a=e.actualPolicy,l=e.actualDefinition,s=e.closeModalAndRefresh,u=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(a),N(l?JSON.stringify(JSON.parse(l),null,4):"")}),[S,a,N,l]),(0,g.jsx)(p.Z,{title:"Change Access Policy",modalOpen:t,onClose:function(){s()},titleIcon:(0,g.jsx)(b.QX,{}),children:(0,g.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),u(e)})))},children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,g.jsx)(d.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,g.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,g.jsx)(d.ZP,{item:!0,xs:12,className:o.codeMirrorContainer,children:(0,g.jsx)(h.Z,{label:"Write Policy",value:M,onBeforeChange:function(e,o,t){N(t)},editorHeight:"350px"})})]}),(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:o.modalButtonBar,children:[(0,g.jsx)(i.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){s()},disabled:j,children:"Cancel"}),(0,g.jsx)(i.Z,{type:"submit",variant:"contained",color:"primary",disabled:j||"CUSTOM"===k&&!M,children:"Set"})]})]})})})})))},92217:function(e,o,t){var n=t(93433),r=t(29439),c=t(1413),a=t(72791),i=t(61889),l=(t(2574),t(69874)),s=t(9461),d=t(73975),u=t(80745),f=t(30829),m=t(20068),p=t(64554),x=t(11135),b=t(25787),h=t(84570),g=t(23814),Z=t(93656),j=t(40603),y=t(78029),v=t.n(y),C=t(64294),k=t(80184),S={json:d.AV,yaml:function(){return s.i.define(u.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)({},g.YI))}))((function(e){var o=e.value,t=e.label,c=void 0===t?"":t,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,b=e.classes,g=e.onBeforeChange,y=e.readOnly,C=void 0!==y&&y,M=e.editorHeight,N=void 0===M?"250px":M,O=(0,a.useState)(!1),F=(0,r.Z)(O,2),E=F[0],w=F[1],T=[];return S[x]&&(T=[].concat((0,n.Z)(T),[S[x]()])),(0,k.jsxs)(a.Fragment,{children:[(0,k.jsxs)(f.Z,{className:b.inputLabel,children:[(0,k.jsx)("span",{children:c}),""!==d&&(0,k.jsx)("div",{className:b.tooltipContainer,children:(0,k.jsx)(m.Z,{title:d,placement:"top-start",children:(0,k.jsx)("div",{className:b.tooltip,children:(0,k.jsx)(h.Z,{})})})})]}),(0,k.jsx)(i.ZP,{item:!0,xs:12,children:(0,k.jsx)("br",{})}),(0,k.jsxs)(i.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,k.jsx)(i.ZP,{item:!0,xs:12,children:(0,k.jsx)(l.ZP,{value:o,theme:E?P:B,extensions:T,editable:!C,basicSetup:!0,height:N,onChange:function(e,o){g(null,null,e)}})}),(0,k.jsx)(i.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:E?"#282c34":"#f7f7f7"},children:(0,k.jsxs)(p.Z,{className:E?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,k.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){w(!E)},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(29439),r=t(1413),c=t(72791),a=t(60364),i=t(13400),l=t(55646),s=t(5574),d=t(65661),u=t(39157),f=t(11135),m=t(25787),p=t(23814),x=t(42649),b=t(29823),h=t(28057),g=t(80184),Z=(0,a.$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,a=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,g.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,g.jsxs)(d.Z,{className:m.title,children:[(0,g.jsxs)("div",{className:m.titleText,children:[C," ",a]}),(0,g.jsx)("div",{className:m.closeContainer,children:(0,g.jsx)(i.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,g.jsx)(b.Z,{})})})]}),(0,g.jsx)(h.Z,{isModal:!0}),(0,g.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,g.jsx)(u.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),a=(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=a},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.a3bc3d9b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3631.a3bc3d9b.chunk.js.map b/portal-ui/build/static/js/3631.a3bc3d9b.chunk.js.map deleted file mode 100644 index 24063b099..000000000 --- a/portal-ui/build/static/js/3631.a3bc3d9b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3631.a3bc3d9b.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 });\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","tooltip","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","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/3772.8f7b248e.chunk.js b/portal-ui/build/static/js/3772.8f7b248e.chunk.js deleted file mode 100644 index 737f3d933..000000000 --- a/portal-ui/build/static/js/3772.8f7b248e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3772],{5574:function(e,o,r){var t=r(4942),a=r(63366),n=r(87462),i=r(72791),l=r(28182),c=r(90767),s=r(96248),d=r(14036),p=r(20792),u=r(60627),v=r(10703),f=r(93736),Z=r(47630),m=r(17780),h=r(66589),x=r(81489),g=r(13967),b=r(80184),W=["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"],w=(0,Z.ZP)(x.Z,{name:"MuiDialog",slot:"Backdrop",overrides:function(e,o){return o.backdrop}})({zIndex:-1}),S=(0,Z.ZP)(p.Z,{name:"MuiDialog",slot:"Root",overridesResolver:function(e,o){return o.root}})({"@media print":{position:"absolute !important"}}),k=(0,Z.ZP)("div",{name:"MuiDialog",slot:"Container",overridesResolver:function(e,o){var r=e.ownerState;return[o.container,o["scroll".concat((0,d.Z)(r.scroll))]]}})((function(e){var o=e.ownerState;return(0,n.Z)({height:"100%","@media print":{height:"auto"},outline:0},"paper"===o.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===o.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&:after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})})),D=(0,Z.ZP)(v.Z,{name:"MuiDialog",slot:"Paper",overridesResolver:function(e,o){var r=e.ownerState;return[o.paper,o["scrollPaper".concat((0,d.Z)(r.scroll))],o["paperWidth".concat((0,d.Z)(String(r.maxWidth)))],r.fullWidth&&o.paperFullWidth,r.fullScreen&&o.paperFullScreen]}})((function(e){var o=e.theme,r=e.ownerState;return(0,n.Z)({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===r.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===r.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!r.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===r.maxWidth&&(0,t.Z)({maxWidth:"px"===o.breakpoints.unit?Math.max(o.breakpoints.values.xs,444):"".concat(o.breakpoints.values.xs).concat(o.breakpoints.unit)},"&.".concat(m.Z.paperScrollBody),(0,t.Z)({},o.breakpoints.down(Math.max(o.breakpoints.values.xs,444)+64),{maxWidth:"calc(100% - 64px)"})),"xs"!==r.maxWidth&&(0,t.Z)({maxWidth:"".concat(o.breakpoints.values[r.maxWidth]).concat(o.breakpoints.unit)},"&.".concat(m.Z.paperScrollBody),(0,t.Z)({},o.breakpoints.down(o.breakpoints.values[r.maxWidth]+64),{maxWidth:"calc(100% - 64px)"})),r.fullWidth&&{width:"calc(100% - 64px)"},r.fullScreen&&(0,t.Z)({margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0},"&.".concat(m.Z.paperScrollBody),{margin:0,maxWidth:"100%"}))})),C=i.forwardRef((function(e,o){var r=(0,f.Z)({props:e,name:"MuiDialog"}),t=(0,g.Z)(),p={enter:t.transitions.duration.enteringScreen,exit:t.transitions.duration.leavingScreen},Z=r["aria-describedby"],x=r["aria-labelledby"],C=r.BackdropComponent,y=r.BackdropProps,P=r.children,M=r.className,B=r.disableEscapeKeyDown,R=void 0!==B&&B,N=r.fullScreen,T=void 0!==N&&N,j=r.fullWidth,F=void 0!==j&&j,A=r.maxWidth,E=void 0===A?"sm":A,I=r.onBackdropClick,K=r.onClose,Y=r.open,X=r.PaperComponent,H=void 0===X?v.Z:X,_=r.PaperProps,z=void 0===_?{}:_,L=r.scroll,O=void 0===L?"paper":L,q=r.TransitionComponent,G=void 0===q?u.Z:q,J=r.transitionDuration,Q=void 0===J?p:J,U=r.TransitionProps,V=(0,a.Z)(r,W),$=(0,n.Z)({},r,{disableEscapeKeyDown:R,fullScreen:T,fullWidth:F,maxWidth:E,scroll:O}),ee=function(e){var o=e.classes,r=e.scroll,t=e.maxWidth,a=e.fullWidth,n=e.fullScreen,i={root:["root"],container:["container","scroll".concat((0,d.Z)(r))],paper:["paper","paperScroll".concat((0,d.Z)(r)),"paperWidth".concat((0,d.Z)(String(t))),a&&"paperFullWidth",n&&"paperFullScreen"]};return(0,c.Z)(i,m.D,o)}($),oe=i.useRef(),re=(0,s.Z)(x),te=i.useMemo((function(){return{titleId:re}}),[re]);return(0,b.jsx)(S,(0,n.Z)({className:(0,l.Z)(ee.root,M),BackdropProps:(0,n.Z)({transitionDuration:Q,as:C},y),closeAfterTransition:!0,BackdropComponent:w,disableEscapeKeyDown:R,onClose:K,open:Y,ref:o,onClick:function(e){oe.current&&(oe.current=null,I&&I(e),K&&K(e,"backdropClick"))},ownerState:$},V,{children:(0,b.jsx)(G,(0,n.Z)({appear:!0,in:Y,timeout:Q,role:"presentation"},U,{children:(0,b.jsx)(k,{className:(0,l.Z)(ee.container),onMouseDown:function(e){oe.current=e.target===e.currentTarget},ownerState:$,children:(0,b.jsx)(D,(0,n.Z)({as:H,elevation:24,role:"dialog","aria-describedby":Z,"aria-labelledby":re},z,{className:(0,l.Z)(ee.paper,z.className),ownerState:$,children:(0,b.jsx)(h.Z.Provider,{value:te,children:P})}))})}))}))}));o.Z=C},66589:function(e,o,r){var t=(0,r(72791).createContext)({});o.Z=t},17780:function(e,o,r){r.d(o,{D:function(){return a}});var t=r(95159);function a(e){return(0,t.Z)("MuiDialog",e)}var n=(0,r(30208).Z)("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]);o.Z=n},39157:function(e,o,r){r.d(o,{Z:function(){return h}});var t=r(4942),a=r(63366),n=r(87462),i=r(72791),l=r(28182),c=r(90767),s=r(47630),d=r(93736),p=r(95159);function u(e){return(0,p.Z)("MuiDialogContent",e)}(0,r(30208).Z)("MuiDialogContent",["root","dividers"]);var v=r(17673),f=r(80184),Z=["className","dividers"],m=(0,s.ZP)("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:function(e,o){var r=e.ownerState;return[o.root,r.dividers&&o.dividers]}})((function(e){var o=e.theme,r=e.ownerState;return(0,n.Z)({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},r.dividers?{padding:"16px 24px",borderTop:"1px solid ".concat(o.palette.divider),borderBottom:"1px solid ".concat(o.palette.divider)}:(0,t.Z)({},".".concat(v.Z.root," + &"),{paddingTop:0}))})),h=i.forwardRef((function(e,o){var r=(0,d.Z)({props:e,name:"MuiDialogContent"}),t=r.className,i=r.dividers,s=void 0!==i&&i,p=(0,a.Z)(r,Z),v=(0,n.Z)({},r,{dividers:s}),h=function(e){var o=e.classes,r={root:["root",e.dividers&&"dividers"]};return(0,c.Z)(r,u,o)}(v);return(0,f.jsx)(m,(0,n.Z)({className:(0,l.Z)(h.root,t),ownerState:v,ref:o},p))}))},65661:function(e,o,r){var t=r(87462),a=r(63366),n=r(72791),i=r(28182),l=r(90767),c=r(20890),s=r(47630),d=r(93736),p=r(17673),u=r(66589),v=r(80184),f=["className","id"],Z=(0,s.ZP)(c.Z,{name:"MuiDialogTitle",slot:"Root",overridesResolver:function(e,o){return o.root}})({padding:"16px 24px",flex:"0 0 auto"}),m=n.forwardRef((function(e,o){var r=(0,d.Z)({props:e,name:"MuiDialogTitle"}),c=r.className,s=r.id,m=(0,a.Z)(r,f),h=r,x=function(e){var o=e.classes;return(0,l.Z)({root:["root"]},p.a,o)}(h),g=n.useContext(u.Z).titleId,b=void 0===g?s:g;return(0,v.jsx)(Z,(0,t.Z)({component:"h2",className:(0,i.Z)(x.root,c),ownerState:h,ref:o,variant:"h6",id:b},m))}));o.Z=m},17673:function(e,o,r){r.d(o,{a:function(){return a}});var t=r(95159);function a(e){return(0,t.Z)("MuiDialogTitle",e)}var n=(0,r(30208).Z)("MuiDialogTitle",["root"]);o.Z=n}}]); -//# sourceMappingURL=3772.8f7b248e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3772.8f7b248e.chunk.js.map b/portal-ui/build/static/js/3772.8f7b248e.chunk.js.map deleted file mode 100644 index 92d7e18d1..000000000 --- a/portal-ui/build/static/js/3772.8f7b248e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/3772.8f7b248e.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { unstable_useId as useId } from '@mui/utils';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\n\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `${theme.breakpoints.values.xs}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n\n const handleBackdropClick = event => {\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n\n backdropClick.current = null;\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n BackdropProps: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps),\n closeAfterTransition: true,\n BackdropComponent: DialogBackdrop,\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.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 id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n\n /**\n * Dialog children, usually the included sub-components.\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`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n\n /**\n * Callback fired when the backdrop is clicked.\n */\n onBackdropClick: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\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 component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\n\nexport default DialogContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogContentUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"dividers\"];\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 { getDialogContentUtilityClass } from './dialogContentClasses';\nimport dialogTitleClasses from '../DialogTitle/dialogTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n dividers\n } = ownerState;\n const slots = {\n root: ['root', dividers && 'dividers']\n };\n return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\n\nconst DialogContentRoot = styled('div', {\n name: 'MuiDialogContent',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dividers && styles.dividers];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n overflowY: 'auto',\n padding: '20px 24px'\n}, ownerState.dividers ? {\n padding: '16px 24px',\n borderTop: `1px solid ${theme.palette.divider}`,\n borderBottom: `1px solid ${theme.palette.divider}`\n} : {\n [`.${dialogTitleClasses.root} + &`]: {\n paddingTop: 0\n }\n}));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContent'\n });\n\n const {\n className,\n dividers = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n dividers\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.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 * Display the top and bottom dividers.\n * @default false\n */\n dividers: 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 DialogContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"id\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogTitleUtilityClass } from './dialogTitleClasses';\nimport DialogContext from '../Dialog/DialogContext';\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, getDialogTitleUtilityClass, classes);\n};\n\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n\n const {\n className,\n id: idProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId: id = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, _extends({\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: id\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.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 * @ignore\n */\n id: 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 DialogTitle;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogTitleUtilityClass(slot) {\n return generateUtilityClass('MuiDialogTitle', slot);\n}\nconst dialogTitleClasses = generateUtilityClasses('MuiDialogTitle', ['root']);\nexport default dialogTitleClasses;"],"names":["_excluded","DialogBackdrop","styled","Backdrop","name","slot","overrides","props","styles","backdrop","zIndex","DialogRoot","Modal","overridesResolver","root","position","DialogContainer","ownerState","container","capitalize","scroll","_extends","height","outline","display","justifyContent","alignItems","overflowY","overflowX","textAlign","content","verticalAlign","width","DialogPaper","Paper","paper","String","maxWidth","fullWidth","paperFullWidth","fullScreen","paperFullScreen","theme","margin","boxShadow","flexDirection","maxHeight","breakpoints","unit","Math","max","values","xs","dialogClasses","down","borderRadius","Dialog","React","inProps","ref","useThemeProps","useTheme","defaultTransitionDuration","enter","transitions","duration","enteringScreen","exit","leavingScreen","ariaDescribedby","ariaLabelledbyProp","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","onBackdropClick","onClose","open","PaperComponent","PaperProps","TransitionComponent","Fade","transitionDuration","TransitionProps","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","getDialogUtilityClass","useUtilityClasses","backdropClick","ariaLabelledby","useId","dialogContextValue","titleId","_jsx","clsx","as","closeAfterTransition","onClick","event","current","appear","in","timeout","role","onMouseDown","target","currentTarget","elevation","DialogContext","value","createContext","generateUtilityClass","generateUtilityClasses","getDialogContentUtilityClass","DialogContentRoot","dividers","flex","WebkitOverflowScrolling","padding","borderTop","palette","divider","borderBottom","dialogTitleClasses","paddingTop","DialogTitleRoot","Typography","DialogTitle","idProp","id","getDialogTitleUtilityClass","component","variant"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/380.1b0b26c2.chunk.js b/portal-ui/build/static/js/380.1b0b26c2.chunk.js deleted file mode 100644 index 88f06f47f..000000000 --- a/portal-ui/build/static/js/380.1b0b26c2.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),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(93433),i=n(29439),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(93656),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)}},k=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});t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,o.Z)({},j.YI))}))((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,F=(0,s.useState)(!1),T=(0,i.Z)(F,2),B=T[0],O=T[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:B?P:k,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:B?"#282c34":"#f7f7f7"},children:(0,S.jsxs)(h.Z,{className:B?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,S.jsx)(Z.Z,{tooltip:"Change theme",onClick:function(){O(!B)},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(93656),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(93433),i=n(29439),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(93656),b=n(56087),Z=n(26181),v=n.n(Z),y=n(45248),C=n(85531),S=n(92217),w=n(19913),k=n(28265),P=n(82839),N=n(18602),E=n(28182),F=n(80184),T=(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,F.jsxs)("table",{children:[(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{className:t.objectGeneralTitle,children:n}),(0,F.jsx)("td",{className:t.iconTd,children:r})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.testUnitRes),children:a}),(0,F.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.generalUnit),children:l})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnitRes),children:o}),(0,F.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnit),children:0!==o&&"Objs/S"})]})]})})),B=(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):"",B=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,F.jsxs)(s.Fragment,{children:[(0,F.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,F.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,F.jsx)(T,{icon:(0,F.jsx)("div",{className:t.download,children:(0,F.jsx)(j.Q_,{})}),title:"GET",throughput:p,objects:f})}),(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,F.jsx)(T,{icon:(0,F.jsx)("div",{className:t.upload,children:(0,F.jsx)(j.jh,{})}),title:"PUT",throughput:g,objects:b})})]})}),(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,F.jsx)(w.h,{width:"99%",children:(0,F.jsxs)(k.T,{data:B,children:[(0,F.jsxs)("defs",{children:[(0,F.jsxs)("linearGradient",{id:"colorPut",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,F.jsx)("stop",{offset:"0%",stopColor:"#2781B0",stopOpacity:.9}),(0,F.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]}),(0,F.jsxs)("linearGradient",{id:"colorGet",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,F.jsx)("stop",{offset:"0%",stopColor:"#4CCB92",stopOpacity:.9}),(0,F.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]})]}),(0,F.jsx)(P.q,{strokeDasharray:"0 0",strokeWidth:1,strokeOpacity:.5,stroke:"#F1F1F1",vertical:!1}),(0,F.jsx)(N.u,{type:"monotone",dataKey:"get",stroke:"#4CCB92",fill:"url(#colorGet)",fillOpacity:.3,strokeWidth:2,dot:!1}),(0,F.jsx)(N.u,{type:"monotone",dataKey:"put",stroke:"#2781B0",fill:"url(#colorPut)",fillOpacity:.3,strokeWidth:2,dot:!1})]})})})]}),(0,F.jsx)("br",{}),B.length>1&&(0,F.jsxs)(s.Fragment,{children:[(0,F.jsxs)(c.ZP,{container:!0,children:[(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.descriptorLabel,children:o?(0,F.jsx)(s.Fragment,{children:"Preliminar Results:"}):(0,F.jsx)(s.Fragment,{children:d?"JSON Results:":"Detailed Results:"})}),(0,F.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.actionButtons,children:!o&&(0,F.jsxs)(s.Fragment,{children:[(0,F.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,F.jsx)(j._8,{})}),"\xa0",(0,F.jsx)(C.Z,{"aria-label":"Download",onClick:function(){u(!d)},size:"large",children:(0,F.jsx)(j.iH,{})})]})})]}),(0,F.jsx)(c.ZP,{container:!0,className:t.resultsContainer,children:d?(0,F.jsx)(s.Fragment,{children:(0,F.jsx)(S.Z,{value:E,readOnly:!0,onBeforeChange:function(){}})}):(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)(c.ZP,{item:!0,xs:12,sm:12,md:1,lg:1,className:t.resultsIcon,alignItems:"flex-end",children:(0,F.jsx)(j.UM,{width:45})}),(0,F.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Nodes:\xa0",(0,F.jsx)("strong",{children:m.servers})]}),(0,F.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Drives:\xa0",(0,F.jsx)("strong",{children:m.disks})]}),(0,F.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Concurrent:\xa0",(0,F.jsx)("strong",{children:m.concurrent})]}),(0,F.jsxs)(c.ZP,{item:!0,xs:12,sm:12,md:12,lg:5,className:t.detailedVersion,children:[(0,F.jsx)("span",{className:t.versionIcon,children:(0,F.jsx)(j.Db,{})})," ","MinIO VERSION\xa0",(0,F.jsx)("strong",{children:m.version})]}),(0,F.jsx)(c.ZP,{item:!0,xs:12,className:t.tableOverflow,children:(0,F.jsxs)("table",{className:t.serversTable,cellSpacing:0,cellPadding:0,children:[(0,F.jsx)("thead",{children:(0,F.jsxs)("tr",{children:[(0,F.jsx)("th",{colSpan:2,children:"Servers"}),(0,F.jsx)("th",{children:"GET"}),(0,F.jsx)("th",{children:"PUT"})]})}),(0,F.jsx)("tbody",{children:Z.map((function(e,n){return(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{className:t.serverIcon,children:(0,F.jsx)(j.id,{})}),(0,F.jsx)("td",{className:t.serverHost,children:e.host}),e.getError&&""!==e.getError?(0,F.jsx)("td",{children:e.getError}):(0,F.jsx)(s.Fragment,{children:(0,F.jsxs)("td",{className:t.serverValue,children:[(0,y.CE)(parseFloat(e.getValue)),"\xa0",e.getUnit,"/s."]})}),e.putError&&""!==e.putError?(0,F.jsx)("td",{children:e.putError}):(0,F.jsx)(s.Fragment,{children:(0,F.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),R=n(38442),L=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],k=(0,s.useState)("MB"),P=(0,i.Z)(k,2),N=P[0],E=P[1],T=(0,s.useState)(0),V=(0,i.Z)(T,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),$=q[0],X=q[1],Y=(0,s.useState)(0),ee=(0,i.Z)(Y,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),X(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)/$;e>100&&(e=100),ne(e)}),[u,J,W,$]),(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)(p.Z,{label:"Performance"}),(0,F.jsx)(A.Z,{children:n?(0,F.jsxs)(R.s,{scopes:[b.Ft.ADMIN_HEAL],resource:b.C3,children:[(0,F.jsxs)(c.ZP,{item:!0,xs:12,className:t.boxy,children:[(0,F.jsxs)(c.ZP,{container:!0,children:[(0,F.jsxs)(c.ZP,{item:!0,md:6,sm:12,children:[(0,F.jsx)("div",{className:t.stepProgressText,children:u?(0,F.jsxs)(s.Fragment,{children:["Speedtest in progress...",(0,F.jsx)(M.Z,{style:{width:15,height:15}})]}):(0,F.jsx)(s.Fragment,{children:Z&&!u?(0,F.jsx)("b",{children:"Speed Test results:"}):(0,F.jsx)("b",{children:"Performance test"})})}),(0,F.jsx)("div",{children:(0,F.jsx)(I.Z,{value:te,ready:null!==Z&&!u,indeterminate:u,size:"small"})})]}),(0,F.jsx)(c.ZP,{item:!0,xs:4,children:(0,F.jsx)("div",{style:{marginLeft:10,width:300},children:(0,F.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,F.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,F.jsx)(c.ZP,{item:!0,xs:2,textAlign:"right",children:(0,F.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,F.jsx)(s.Fragment,{children:null!==Z?"Retest":"Start"}),u?"Start":""]})})]}),(0,F.jsx)(c.ZP,{container:!0,className:t.multiModule,children:(0,F.jsx)(c.ZP,{item:!0,xs:12,children:(0,F.jsx)(s.Fragment,{children:(0,F.jsx)(c.ZP,{item:!0,xs:12,children:null!==Z&&(0,F.jsx)(s.Fragment,{children:(0,F.jsx)(B,{results:Z,start:u})})})})})})]}),!u&&!Z&&(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)("br",{}),(0,F.jsx)(U.Z,{title:"During the speed test all your production traffic will be temporarily suspended.",iconComponent:(0,F.jsx)(G.Z,{}),help:(0,F.jsx)(s.Fragment,{})})]})]}):(0,F.jsx)(L.Z,{iconComponent:(0,F.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.1b0b26c2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/380.1b0b26c2.chunk.js.map b/portal-ui/build/static/js/380.1b0b26c2.chunk.js.map deleted file mode 100644 index 37f3d3068..000000000 --- a/portal-ui/build/static/js/380.1b0b26c2.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/380.1b0b26c2.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 });\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","value","label","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","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.cb95766e.chunk.js b/portal-ui/build/static/js/380.cb95766e.chunk.js new file mode 100644 index 000000000..94b6aaf71 --- /dev/null +++ b/portal-ui/build/static/js/380.cb95766e.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})]})})}))},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(93433),i=n(29439),o=n(1413),s=n(72791),l=n(61889),a=(n(2574),n(69874)),c=n(9461),d=n(73975),u=n(80745),h=n(30829),x=n(20068),m=n(64554),f=n(11135),g=n(25787),p=n(84570),j=n(23814),b=n(93656),v=n(40603),Z=n(78029),S=n.n(Z),y=n(64294),C=n(80184),P={json:d.AV,yaml:function(){return c.i.define(u.r)}},w=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});t.Z=(0,g.Z)((function(e){return(0,f.Z)((0,o.Z)({},j.YI))}))((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,f=void 0===u?"json":u,g=e.classes,j=e.onBeforeChange,Z=e.readOnly,y=void 0!==Z&&Z,N=e.editorHeight,F=void 0===N?"250px":N,E=(0,s.useState)(!1),T=(0,i.Z)(E,2),B=T[0],O=T[1],A=[];return P[f]&&(A=[].concat((0,r.Z)(A),[P[f]()])),(0,C.jsxs)(s.Fragment,{children:[(0,C.jsxs)(h.Z,{className:g.inputLabel,children:[(0,C.jsx)("span",{children:o}),""!==d&&(0,C.jsx)("div",{className:g.tooltipContainer,children:(0,C.jsx)(x.Z,{title:d,placement:"top-start",children:(0,C.jsx)("div",{className:g.tooltip,children:(0,C.jsx)(p.Z,{})})})})]}),(0,C.jsx)(l.ZP,{item:!0,xs:12,children:(0,C.jsx)("br",{})}),(0,C.jsxs)(l.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,C.jsx)(l.ZP,{item:!0,xs:12,children:(0,C.jsx)(a.ZP,{value:t,theme:B?k:w,extensions:A,editable:!y,basicSetup:!0,height:F,onChange:function(e,t){j(null,null,e)}})}),(0,C.jsx)(l.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:B?"#282c34":"#f7f7f7"},children:(0,C.jsxs)(m.Z,{className:B?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,C.jsx)(v.Z,{tooltip:"Change theme",onClick:function(){O(!B)},text:"",icon:(0,C.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,C.jsx)(S(),{text:t,children:(0,C.jsx)(v.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,C.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},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 h(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)(h,(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 _}});var r=n(93433),i=n(29439),o=n(1413),s=n(72791),l=n(60364),a=n(95087),c=n(61889),d=n(36151),u=n(11135),h=n(25787),x=n(72426),m=n.n(x),f=n(32291),g=n(23814),p=n(26824),j=n(93656),b=n(56087),v=n(26181),Z=n.n(v),S=n(45248),y=n(85531),C=n(92217),P=n(19913),w=n(28265),k=n(82839),N=n(18602),F=n(28182),E=n(80184),T=(0,h.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,S.Am)(i),l="0",a="";return 0!==s.total&&(l=s.total.toString(),a="".concat(s.unit,"/s")),(0,E.jsxs)("table",{children:[(0,E.jsxs)("tr",{children:[(0,E.jsx)("td",{className:t.objectGeneralTitle,children:n}),(0,E.jsx)("td",{className:t.iconTd,children:r})]}),(0,E.jsxs)("tr",{children:[(0,E.jsx)("td",{className:(0,F.Z)(t.metricValContainer,t.testUnitRes),children:l}),(0,E.jsx)("td",{className:(0,F.Z)(t.metricValContainer,t.generalUnit),children:a})]}),(0,E.jsxs)("tr",{children:[(0,E.jsx)("td",{className:(0,F.Z)(t.metricValContainer,t.objectsUnitRes),children:o}),(0,E.jsx)("td",{className:(0,F.Z)(t.metricValContainer,t.objectsUnit),children:0!==o&&"Objs/S"})]})]})})),B=(0,h.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],h=n[n.length-1]||[],x=Z()(h,"GETStats.servers",[])||[],m=Z()(h,"PUTStats.servers",[])||[],f=Z()(h,"GETStats.throughputPerSec",0),g=Z()(h,"GETStats.objectsPerSec",0),p=Z()(h,"PUTStats.throughputPerSec",0),b=Z()(h,"PUTStats.objectsPerSec",0),v=[];x.forEach((function(e){var t=e.endpoint,n=m.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,S.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,S.Am)(n.throughputPerSec.toString());r.putUnit=o.unit,r.putValue=o.total.toString()}v.push(r)}));var F=h?JSON.stringify(h,null,4):"",B=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,E.jsxs)(s.Fragment,{children:[(0,E.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,E.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,E.jsx)(T,{icon:(0,E.jsx)("div",{className:t.download,children:(0,E.jsx)(j.Q_,{})}),title:"GET",throughput:f,objects:g})}),(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,E.jsx)(T,{icon:(0,E.jsx)("div",{className:t.upload,children:(0,E.jsx)(j.jh,{})}),title:"PUT",throughput:p,objects:b})})]})}),(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,E.jsx)(P.h,{width:"99%",children:(0,E.jsxs)(w.T,{data:B,children:[(0,E.jsxs)("defs",{children:[(0,E.jsxs)("linearGradient",{id:"colorPut",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,E.jsx)("stop",{offset:"0%",stopColor:"#2781B0",stopOpacity:.9}),(0,E.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]}),(0,E.jsxs)("linearGradient",{id:"colorGet",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,E.jsx)("stop",{offset:"0%",stopColor:"#4CCB92",stopOpacity:.9}),(0,E.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]})]}),(0,E.jsx)(k.q,{strokeDasharray:"0 0",strokeWidth:1,strokeOpacity:.5,stroke:"#F1F1F1",vertical:!1}),(0,E.jsx)(N.u,{type:"monotone",dataKey:"get",stroke:"#4CCB92",fill:"url(#colorGet)",fillOpacity:.3,strokeWidth:2,dot:!1}),(0,E.jsx)(N.u,{type:"monotone",dataKey:"put",stroke:"#2781B0",fill:"url(#colorPut)",fillOpacity:.3,strokeWidth:2,dot:!1})]})})})]}),(0,E.jsx)("br",{}),B.length>1&&(0,E.jsxs)(s.Fragment,{children:[(0,E.jsxs)(c.ZP,{container:!0,children:[(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.descriptorLabel,children:o?(0,E.jsx)(s.Fragment,{children:"Preliminar Results:"}):(0,E.jsx)(s.Fragment,{children:d?"JSON Results:":"Detailed Results:"})}),(0,E.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.actionButtons,children:!o&&(0,E.jsxs)(s.Fragment,{children:[(0,E.jsx)(y.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(h)),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,E.jsx)(j._8,{})}),"\xa0",(0,E.jsx)(y.Z,{"aria-label":"Download",onClick:function(){u(!d)},size:"large",children:(0,E.jsx)(j.iH,{})})]})})]}),(0,E.jsx)(c.ZP,{container:!0,className:t.resultsContainer,children:d?(0,E.jsx)(s.Fragment,{children:(0,E.jsx)(C.Z,{value:F,readOnly:!0,onBeforeChange:function(){}})}):(0,E.jsxs)(s.Fragment,{children:[(0,E.jsx)(c.ZP,{item:!0,xs:12,sm:12,md:1,lg:1,className:t.resultsIcon,alignItems:"flex-end",children:(0,E.jsx)(j.UM,{width:45})}),(0,E.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Nodes:\xa0",(0,E.jsx)("strong",{children:h.servers})]}),(0,E.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Drives:\xa0",(0,E.jsx)("strong",{children:h.disks})]}),(0,E.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Concurrent:\xa0",(0,E.jsx)("strong",{children:h.concurrent})]}),(0,E.jsxs)(c.ZP,{item:!0,xs:12,sm:12,md:12,lg:5,className:t.detailedVersion,children:[(0,E.jsx)("span",{className:t.versionIcon,children:(0,E.jsx)(j.Db,{})})," ","MinIO VERSION\xa0",(0,E.jsx)("strong",{children:h.version})]}),(0,E.jsx)(c.ZP,{item:!0,xs:12,className:t.tableOverflow,children:(0,E.jsxs)("table",{className:t.serversTable,cellSpacing:0,cellPadding:0,children:[(0,E.jsx)("thead",{children:(0,E.jsxs)("tr",{children:[(0,E.jsx)("th",{colSpan:2,children:"Servers"}),(0,E.jsx)("th",{children:"GET"}),(0,E.jsx)("th",{children:"PUT"})]})}),(0,E.jsx)("tbody",{children:v.map((function(e,n){return(0,E.jsxs)("tr",{children:[(0,E.jsx)("td",{className:t.serverIcon,children:(0,E.jsx)(j.id,{})}),(0,E.jsx)("td",{className:t.serverHost,children:e.host}),e.getError&&""!==e.getError?(0,E.jsx)("td",{children:e.getError}):(0,E.jsx)(s.Fragment,{children:(0,E.jsxs)("td",{className:t.serverValue,children:[(0,S.CE)(parseFloat(e.getValue)),"\xa0",e.getUnit,"/s."]})}),e.putError&&""!==e.putError?(0,E.jsx)("td",{children:e.putError}):(0,E.jsx)(s.Fragment,{children:(0,E.jsxs)("td",{className:t.serverValue,children:[(0,S.CE)(parseFloat(e.putValue)),"\xa0",e.putUnit,"/s."]})})]},"storage-".concat(n.toString()))}))})]})})]})})]})]})})),O=n(21435),A=n(87998),I=n(56578),z=n(74794),U=n(38442),R=n(47986),G=n(23804),V=n(89357),L=n(72401),_=(0,l.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null)((0,h.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}},g.S),g.OR),g.qg),g.DF),(0,g.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],h=l[1],x=(0,s.useState)(null),g=(0,i.Z)(x,2),v=g[0],Z=g[1],S=(0,s.useState)("64"),y=(0,i.Z)(S,2),C=y[0],P=y[1],w=(0,s.useState)("MB"),k=(0,i.Z)(w,2),N=k[0],F=k[1],T=(0,s.useState)(0),_=(0,i.Z)(T,2),W=_[0],D=_[1],M=(0,s.useState)(0),H=(0,i.Z)(M,2),J=H[0],K=H[1],q=(0,s.useState)(0),Q=(0,i.Z)(q,2),X=Q[0],Y=Q[1],$=(0,s.useState)(0),ee=(0,i.Z)($,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,p.x2)(e.protocol),i=new a.w3cwebsocket("".concat(n,"://").concat(e.hostname,":").concat(t,"/ws/speedtest?&size=").concat(C).concat(N)),o=m()(),s=o.unix()/1e3,l=o.add(2*parseInt("10"),"s").unix()/1e3,c=(l-s)/1e3;D(l),K(s),Y(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());Z((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=m()().unix()/1e3;K(n)},i.onclose=function(){clearInterval(d),console.log("connection closed by server"),h(!1)},function(){i.close(1e3),clearInterval(d),console.log("closing websockets")}}else h(!1)}),[C,N,u]),(0,s.useEffect)((function(){var e=100-100*((W-J)/1e3)/X;e>100&&(e=100),ne(e)}),[u,J,W,X]),(0,E.jsxs)(s.Fragment,{children:[(0,E.jsx)(f.Z,{label:"Performance"}),(0,E.jsx)(z.Z,{children:n?(0,E.jsxs)(U.s,{scopes:[b.Ft.ADMIN_HEAL],resource:b.C3,children:[(0,E.jsxs)(c.ZP,{item:!0,xs:12,className:t.boxy,children:[(0,E.jsxs)(c.ZP,{container:!0,children:[(0,E.jsxs)(c.ZP,{item:!0,md:6,sm:12,children:[(0,E.jsx)("div",{className:t.stepProgressText,children:u?(0,E.jsxs)(s.Fragment,{children:["Speedtest in progress...",(0,E.jsx)(L.Z,{style:{width:15,height:15}})]}):(0,E.jsx)(s.Fragment,{children:v&&!u?(0,E.jsx)("b",{children:"Speed Test results:"}):(0,E.jsx)("b",{children:"Performance test"})})}),(0,E.jsx)("div",{children:(0,E.jsx)(A.Z,{value:te,ready:null!==v&&!u,indeterminate:u,size:"small"})})]}),(0,E.jsx)(c.ZP,{item:!0,xs:4,children:(0,E.jsx)("div",{style:{marginLeft:10,width:300},children:(0,E.jsx)(O.Z,{id:"size",name:"size",label:"Object Size",onChange:function(e){P(e.target.value)},noLabelMinWidth:!0,value:C,disabled:u,overlayObject:(0,E.jsx)(I.Z,{id:"size-unit",onUnitChange:F,unitSelected:N,unitsList:[{label:"KiB",value:"KiB"},{label:"MiB",value:"MiB"},{label:"GiB",value:"GiB"}],disabled:u})})})}),(0,E.jsx)(c.ZP,{item:!0,xs:2,textAlign:"right",children:(0,E.jsxs)(d.Z,{onClick:function(){Z(null),h(!0)},color:"primary",type:"button",id:"start-speed-test",variant:null===v||u?"outlined":"contained",className:"".concat(t.buttonBackground," ").concat(t.speedStart),disabled:""==="10".trim()||""===C.trim()||u,children:[!u&&(0,E.jsx)(s.Fragment,{children:null!==v?"Retest":"Start"}),u?"Start":""]})})]}),(0,E.jsx)(c.ZP,{container:!0,className:t.multiModule,children:(0,E.jsx)(c.ZP,{item:!0,xs:12,children:(0,E.jsx)(s.Fragment,{children:(0,E.jsx)(c.ZP,{item:!0,xs:12,children:null!==v&&(0,E.jsx)(s.Fragment,{children:(0,E.jsx)(B,{results:v,start:u})})})})})})]}),!u&&!v&&(0,E.jsxs)(s.Fragment,{children:[(0,E.jsx)("br",{}),(0,E.jsx)(G.Z,{title:"During the speed test all your production traffic will be temporarily suspended.",iconComponent:(0,E.jsx)(V.Z,{}),help:(0,E.jsx)(s.Fragment,{})})]})]}):(0,E.jsx)(R.Z,{iconComponent:(0,E.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.cb95766e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/380.cb95766e.chunk.js.map b/portal-ui/build/static/js/380.cb95766e.chunk.js.map new file mode 100644 index 000000000..3c5278604 --- /dev/null +++ b/portal-ui/build/static/js/380.cb95766e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/380.cb95766e.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 });\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 .\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","entity","sx","flexFlow","md","color","colors","link","textDecoration","href","target","rel","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","dark","darkTheme","fieldBasic","value","label","tooltip","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","tooltipContainer","placement","extensions","editable","basicSetup","onChange","v","vu","borderTop","background","padding","justifyContent","marginLeft","onClick","text","icon","variant","BorderLinearProgress","styled","LinearProgress","linearProgressClasses","SmallBorderLinearProgress","LinearProgressWithLabel","props","mr","minWidth","Math","round","ready","indeterminate","withLabel","size","propsComponent","objectGeneralTitle","lineHeight","generalUnit","testUnitRes","textAlign","metricValContainer","verticalAlign","objectsUnitRes","marginTop","objectsUnit","iconTd","throughput","objects","avg","calculateBytes","total","unit","toString","clsx","actionButtons","descriptorLabel","resultsContainer","resultsIcon","fill","detailedItem","detailedVersion","serversTable","borderBottom","borderLeft","serverIcon","serverValue","serverHost","maxWidth","overflow","textOverflow","whiteSpace","tableOverflow","overflowX","objectGeneral","initialResults","download","upload","results","start","jsonView","setJsonView","finalRes","length","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","Fragment","Grid","lg","ResponsiveContainer","AreaChart","data","id","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","sm","servers","concurrent","versionIcon","cellSpacing","cellPadding","colSpan","stats","index","prettyNumber","parseFloat","connect","state","distributedSetup","system","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","console","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","disabled","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/3854.68ad3372.chunk.js b/portal-ui/build/static/js/3854.68ad3372.chunk.js new file mode 100644 index 000000000..59e3eea7d --- /dev/null +++ b/portal-ui/build/static/js/3854.68ad3372.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3854,5586],{26759:function(e,t,o){"use strict";var r=o(95318);t.Z=void 0;var n=r(o(45649)),i=o(80184),a=(0,n.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,o){"use strict";var r=o(95318);t.Z=void 0;var n=r(o(45649)),i=o(80184),a=(0,n.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},77961:function(e,t,o){"use strict";var r=o(95318);t.Z=void 0;var n=r(o(45649)),i=o(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");t.Z=a},97911:function(e,t,o){"use strict";var r=o(95318);t.Z=void 0;var n=r(o(45649)),i=o(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},97581:function(e,t,o){"use strict";o.d(t,{Z:function(){return M}});var r=o(83878),n=o(59199),i=o(40181),a=o(25267);var s=o(29439),c=o(4942),d=o(63366),u=o(87462),l=o(72791),p=(o(57441),o(28182)),f=o(90767),v=o(47630),m=o(93736),h=o(56125),Z=o(10703),b=o(27318),x=o(98278),g=o(95159);function y(e){return(0,g.Z)("MuiAccordion",e)}var C=(0,o(30208).Z)("MuiAccordion",["root","rounded","expanded","disabled","gutters","region"]),R=o(80184),k=["children","className","defaultExpanded","disabled","disableGutters","expanded","onChange","square","TransitionComponent","TransitionProps"],w=(0,v.ZP)(Z.Z,{name:"MuiAccordion",slot:"Root",overridesResolver:function(e,t){var o=e.ownerState;return[(0,c.Z)({},"& .".concat(C.region),t.region),t.root,!o.square&&t.rounded,!o.disableGutters&&t.gutters]}})((function(e){var t,o=e.theme,r={duration:o.transitions.duration.shortest};return t={position:"relative",transition:o.transitions.create(["margin"],r),overflowAnchor:"none","&:before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:o.palette.divider,transition:o.transitions.create(["opacity","background-color"],r)},"&:first-of-type":{"&:before":{display:"none"}}},(0,c.Z)(t,"&.".concat(C.expanded),{"&:before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&:before":{display:"none"}}}),(0,c.Z)(t,"&.".concat(C.disabled),{backgroundColor:o.palette.action.disabledBackground}),t}),(function(e){var t=e.theme,o=e.ownerState;return(0,u.Z)({},!o.square&&{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:t.shape.borderRadius,borderTopRightRadius:t.shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:t.shape.borderRadius,borderBottomRightRadius:t.shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}},!o.disableGutters&&(0,c.Z)({},"&.".concat(C.expanded),{margin:"16px 0"}))})),M=l.forwardRef((function(e,t){var o,c=(0,m.Z)({props:e,name:"MuiAccordion"}),v=c.children,Z=c.className,g=c.defaultExpanded,C=void 0!==g&&g,M=c.disabled,S=void 0!==M&&M,j=c.disableGutters,z=void 0!==j&&j,A=c.expanded,N=c.onChange,V=c.square,G=void 0!==V&&V,I=c.TransitionComponent,P=void 0===I?h.Z:I,T=c.TransitionProps,H=(0,d.Z)(c,k),B=(0,x.Z)({controlled:A,default:C,name:"Accordion",state:"expanded"}),q=(0,s.Z)(B,2),D=q[0],W=q[1],E=l.useCallback((function(e){W(!D),N&&N(e,!D)}),[D,N,W]),O=l.Children.toArray(v),L=(o=O,(0,r.Z)(o)||(0,n.Z)(o)||(0,i.Z)(o)||(0,a.Z)()),F=L[0],$=L.slice(1),_=l.useMemo((function(){return{expanded:D,disabled:S,disableGutters:z,toggle:E}}),[D,S,z,E]),U=(0,u.Z)({},c,{square:G,disabled:S,disableGutters:z,expanded:D}),J=function(e){var t=e.classes,o={root:["root",!e.square&&"rounded",e.expanded&&"expanded",e.disabled&&"disabled",!e.disableGutters&&"gutters"],region:["region"]};return(0,f.Z)(o,y,t)}(U);return(0,R.jsxs)(w,(0,u.Z)({className:(0,p.Z)(J.root,Z),ref:t,ownerState:U,square:G},H,{children:[(0,R.jsx)(b.Z.Provider,{value:_,children:F}),(0,R.jsx)(P,(0,u.Z)({in:D,timeout:"auto"},T,{children:(0,R.jsx)("div",{"aria-labelledby":F.props.id,id:F.props["aria-controls"],role:"region",className:J.region,children:$})}))]}))}))},27318:function(e,t,o){"use strict";var r=o(72791).createContext({});t.Z=r},3721:function(e,t,o){"use strict";o.d(t,{Z:function(){return m}});var r=o(87462),n=o(63366),i=o(72791),a=o(28182),s=o(90767),c=o(47630),d=o(93736),u=o(95159);function l(e){return(0,u.Z)("MuiAccordionDetails",e)}(0,o(30208).Z)("MuiAccordionDetails",["root"]);var p=o(80184),f=["className"],v=(0,c.ZP)("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(1,2,2)}})),m=i.forwardRef((function(e,t){var o=(0,d.Z)({props:e,name:"MuiAccordionDetails"}),i=o.className,c=(0,n.Z)(o,f),u=o,m=function(e){var t=e.classes;return(0,s.Z)({root:["root"]},l,t)}(u);return(0,p.jsx)(v,(0,r.Z)({className:(0,a.Z)(m.root,i),ref:t,ownerState:u},c))}))},55818:function(e,t,o){"use strict";o.d(t,{Z:function(){return y}});var r=o(4942),n=o(63366),i=o(87462),a=o(72791),s=o(28182),c=o(90767),d=o(47630),u=o(93736),l=o(95080),p=o(27318),f=o(95159);function v(e){return(0,f.Z)("MuiAccordionSummary",e)}var m=(0,o(30208).Z)("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),h=o(80184),Z=["children","className","expandIcon","focusVisibleClassName","onClick"],b=(0,d.ZP)(l.Z,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t,o=e.theme,n=e.ownerState,a={duration:o.transitions.duration.shortest};return(0,i.Z)((t={display:"flex",minHeight:48,padding:o.spacing(0,2),transition:o.transitions.create(["min-height","background-color"],a)},(0,r.Z)(t,"&.".concat(m.focusVisible),{backgroundColor:o.palette.action.focus}),(0,r.Z)(t,"&.".concat(m.disabled),{opacity:o.palette.action.disabledOpacity}),(0,r.Z)(t,"&:hover:not(.".concat(m.disabled,")"),{cursor:"pointer"}),t),!n.disableGutters&&(0,r.Z)({},"&.".concat(m.expanded),{minHeight:64}))})),x=(0,d.ZP)("div",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:function(e,t){return t.content}})((function(e){var t=e.theme,o=e.ownerState;return(0,i.Z)({display:"flex",flexGrow:1,margin:"12px 0"},!o.disableGutters&&(0,r.Z)({transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest})},"&.".concat(m.expanded),{margin:"20px 0"}))})),g=(0,d.ZP)("div",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:function(e,t){return t.expandIconWrapper}})((function(e){var t=e.theme;return(0,r.Z)({display:"flex",color:t.palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest})},"&.".concat(m.expanded),{transform:"rotate(180deg)"})})),y=a.forwardRef((function(e,t){var o=(0,u.Z)({props:e,name:"MuiAccordionSummary"}),r=o.children,d=o.className,l=o.expandIcon,f=o.focusVisibleClassName,m=o.onClick,y=(0,n.Z)(o,Z),C=a.useContext(p.Z),R=C.disabled,k=void 0!==R&&R,w=C.disableGutters,M=C.expanded,S=C.toggle,j=(0,i.Z)({},o,{expanded:M,disabled:k,disableGutters:w}),z=function(e){var t=e.classes,o=e.expanded,r=e.disabled,n=e.disableGutters,i={root:["root",o&&"expanded",r&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]};return(0,c.Z)(i,v,t)}(j);return(0,h.jsxs)(b,(0,i.Z)({focusRipple:!1,disableRipple:!0,disabled:k,component:"div","aria-expanded":M,className:(0,s.Z)(z.root,d),focusVisibleClassName:(0,s.Z)(z.focusVisible,f),onClick:function(e){S&&S(e),m&&m(e)},ref:t,ownerState:j},y,{children:[(0,h.jsx)(x,{className:z.content,ownerState:j,children:r}),l&&(0,h.jsx)(g,{className:z.expandIconWrapper,ownerState:j,children:l})]}))}))},94454:function(e,t,o){"use strict";o.d(t,{Z:function(){return M}});var r=o(4942),n=o(63366),i=o(87462),a=o(72791),s=o(90767),c=o(12065),d=o(97278),u=o(76189),l=o(80184),p=(0,u.Z)((0,l.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"),f=(0,u.Z)((0,l.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,u.Z)((0,l.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=o(14036),h=o(93736),Z=o(47630),b=o(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var g=(0,o(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),y=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,Z.ZP)(d.Z,{shouldForwardProp:function(e){return(0,Z.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var o=e.ownerState;return[t.root,o.indeterminate&&t.indeterminate,"default"!==o.color&&t["color".concat((0,m.Z)(o.color))]]}})((function(e){var t,o=e.theme,n=e.ownerState;return(0,i.Z)({color:o.palette.text.secondary},!n.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===n.color?o.palette.action.active:o.palette[n.color].main,o.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==n.color&&(t={},(0,r.Z)(t,"&.".concat(g.checked,", &.").concat(g.indeterminate),{color:o.palette[n.color].main}),(0,r.Z)(t,"&.".concat(g.disabled),{color:o.palette.action.disabled}),t))})),R=(0,l.jsx)(f,{}),k=(0,l.jsx)(p,{}),w=(0,l.jsx)(v,{}),M=a.forwardRef((function(e,t){var o,r,c=(0,h.Z)({props:e,name:"MuiCheckbox"}),d=c.checkedIcon,u=void 0===d?R:d,p=c.color,f=void 0===p?"primary":p,v=c.icon,Z=void 0===v?k:v,b=c.indeterminate,g=void 0!==b&&b,M=c.indeterminateIcon,S=void 0===M?w:M,j=c.inputProps,z=c.size,A=void 0===z?"medium":z,N=(0,n.Z)(c,y),V=g?S:Z,G=g?S:u,I=(0,i.Z)({},c,{color:f,indeterminate:g,size:A}),P=function(e){var t=e.classes,o=e.indeterminate,r=e.color,n={root:["root",o&&"indeterminate","color".concat((0,m.Z)(r))]},a=(0,s.Z)(n,x,t);return(0,i.Z)({},t,a)}(I);return(0,l.jsx)(C,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":g},j),icon:a.cloneElement(V,{fontSize:null!=(o=V.props.fontSize)?o:A}),checkedIcon:a.cloneElement(G,{fontSize:null!=(r=G.props.fontSize)?r:A}),ownerState:I,ref:t},N,{classes:P}))}))},20821:function(e,t,o){var r=o(26050),n=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(n,""):e}},26050:function(e){var t=/\s/;e.exports=function(e){for(var o=e.length;o--&&t.test(e.charAt(o)););return o}},48573:function(e,t,o){var r=o(8092),n=o(50072),i=o(42582),a=Math.max,s=Math.min;e.exports=function(e,t,o){var c,d,u,l,p,f,v=0,m=!1,h=!1,Z=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function b(t){var o=c,r=d;return c=d=void 0,v=t,l=e.apply(r,o)}function x(e){return v=e,p=setTimeout(y,t),m?b(e):l}function g(e){var o=e-f;return void 0===f||o>=t||o<0||h&&e-v>=u}function y(){var e=n();if(g(e))return C(e);p=setTimeout(y,function(e){var o=t-(e-f);return h?s(o,u-(e-v)):o}(e))}function C(e){return p=void 0,Z&&c?b(e):(c=d=void 0,l)}function R(){var e=n(),o=g(e);if(c=arguments,d=this,f=e,o){if(void 0===p)return x(f);if(h)return clearTimeout(p),p=setTimeout(y,t),b(f)}return void 0===p&&(p=setTimeout(y,t)),l}return t=i(t)||0,r(o)&&(m=!!o.leading,u=(h="maxWait"in o)?a(i(o.maxWait)||0,t):u,Z="trailing"in o?!!o.trailing:Z),R.cancel=function(){void 0!==p&&clearTimeout(p),v=0,c=f=d=p=void 0},R.flush=function(){return void 0===p?l:C(n())},R}},26769:function(e,t,o){var r=o(39066),n=o(93629),i=o(43141);e.exports=function(e){return"string"==typeof e||!n(e)&&i(e)&&"[object String]"==r(e)}},50072:function(e,t,o){var r=o(97009);e.exports=function(){return r.Date.now()}},42582:function(e,t,o){var r=o(20821),n=o(8092),i=o(70152),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,d=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var o=s.test(e);return o||c.test(e)?d(e.slice(2),o?2:8):a.test(e)?NaN:+e}}}]); +//# sourceMappingURL=3854.68ad3372.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3854.68ad3372.chunk.js.map b/portal-ui/build/static/js/3854.68ad3372.chunk.js.map new file mode 100644 index 000000000..28ad6b12d --- /dev/null +++ b/portal-ui/build/static/js/3854.68ad3372.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3854.68ad3372.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/Help.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.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/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/isString.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\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 { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"defaultExpanded\", \"disabled\", \"disableGutters\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Collapse from '../Collapse';\nimport Paper from '../Paper';\nimport AccordionContext from './AccordionContext';\nimport useControlled from '../utils/useControlled';\nimport accordionClasses, { getAccordionUtilityClass } from './accordionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\n\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&:before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: theme.palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&:before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&:before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&:before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: theme.palette.action.disabledBackground\n }\n };\n}, ({\n theme,\n ownerState\n}) => _extends({}, !ownerState.square && {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: theme.shape.borderRadius,\n borderBottomRightRadius: theme.shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n}, !ownerState.disableGutters && {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n}));\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n TransitionComponent = Collapse,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n\n const ownerState = _extends({}, props, {\n square,\n disabled,\n disableGutters,\n expanded\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n }), /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: expanded,\n timeout: \"auto\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.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: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n\n return null;\n }),\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`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: 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\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Collapse\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\n\nconst AccordionContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\n\nexport default AccordionContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\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 styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getAccordionDetailsUtilityClass } from './accordionDetailsClasses';\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, getAccordionDetailsUtilityClass, classes);\n};\n\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n}));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.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} : void 0;\nexport default AccordionDetails;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"expandIcon\", \"focusVisibleClassName\", \"onClick\"];\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 ButtonBase from '../ButtonBase';\nimport AccordionContext from '../Accordion/AccordionContext';\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from './accordionSummaryClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\n\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return _extends({\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n }\n }, !ownerState.disableGutters && {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n });\n});\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0'\n}, !ownerState.disableGutters && {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n}));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(({\n theme\n}) => ({\n display: 'flex',\n color: theme.palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n}));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n expanded,\n disabled,\n disableGutters\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, _extends({\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.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 icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n onClick: 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} : void 0;\nexport default AccordionSummary;","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 trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\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 root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getAccordionUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","AccordionRoot","styled","Paper","name","overridesResolver","props","styles","ownerState","accordionClasses","region","root","square","rounded","disableGutters","gutters","theme","transition","duration","transitions","shortest","position","create","overflowAnchor","left","top","right","height","content","opacity","backgroundColor","palette","divider","display","marginTop","marginBottom","action","disabledBackground","_extends","borderRadius","borderTopLeftRadius","shape","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","margin","React","inProps","ref","arr","useThemeProps","childrenProp","children","className","defaultExpanded","disabled","expandedProp","expanded","onChange","TransitionComponent","Collapse","TransitionProps","other","_objectWithoutPropertiesLoose","useControlled","controlled","state","setExpandedState","handleChange","event","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","summary","contextValue","toggle","classes","slots","composeClasses","useUtilityClasses","_jsxs","clsx","_jsx","AccordionContext","value","in","timeout","id","role","getAccordionDetailsUtilityClass","AccordionDetailsRoot","padding","spacing","getAccordionSummaryUtilityClass","AccordionSummaryRoot","ButtonBase","minHeight","accordionSummaryClasses","focus","disabledOpacity","cursor","AccordionSummaryContent","flexGrow","AccordionSummaryExpandIconWrapper","expandIconWrapper","color","active","transform","expandIcon","focusVisibleClassName","onClick","focusVisible","focusRipple","disableRipple","component","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","text","secondary","alpha","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","composedClasses","type","fontSize","trimmedEndIndex","reTrimStart","module","string","slice","replace","reWhitespace","index","length","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","baseGetTag","isArray","isObjectLike","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3956.418abe3f.chunk.js b/portal-ui/build/static/js/3956.418abe3f.chunk.js new file mode 100644 index 000000000..ea9bb5615 --- /dev/null +++ b/portal-ui/build/static/js/3956.418abe3f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3956],{23956:function(e,n,t){t.r(n);var r=t(29439),c=(t(72791),t(60364)),o=t(11135),s=t(25787),a=t(51691),i=t(42649),u=t(9505),l=t(2148),f=t(93656),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.418abe3f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3956.74bfef51.chunk.js.map b/portal-ui/build/static/js/3956.418abe3f.chunk.js.map similarity index 97% rename from portal-ui/build/static/js/3956.74bfef51.chunk.js.map rename to portal-ui/build/static/js/3956.418abe3f.chunk.js.map index b27924ed8..657809456 100644 --- a/portal-ui/build/static/js/3956.74bfef51.chunk.js.map +++ b/portal-ui/build/static/js/3956.418abe3f.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3956.74bfef51.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.418abe3f.chunk.js","mappings":"+OAwFMA,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/3956.74bfef51.chunk.js b/portal-ui/build/static/js/3956.74bfef51.chunk.js deleted file mode 100644 index cc2bc3ae7..000000000 --- a/portal-ui/build/static/js/3956.74bfef51.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3956],{23956:function(e,n,t){t.r(n);var r=t(29439),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(93656),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.74bfef51.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/402.3ec8985e.chunk.js b/portal-ui/build/static/js/402.3ec8985e.chunk.js deleted file mode 100644 index a6172aff6..000000000 --- a/portal-ui/build/static/js/402.3ec8985e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[402],{70402:function(n,e,o){o.r(e);var i=o(29439),t=o(72791),s=o(60364),r=o(51691),a=o(81207),c=o(42649),l=o(23508),d=o(93656),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.3ec8985e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/402.3ec8985e.chunk.js.map b/portal-ui/build/static/js/402.3ec8985e.chunk.js.map deleted file mode 100644 index fb332a782..000000000 --- a/portal-ui/build/static/js/402.3ec8985e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/402.3ec8985e.chunk.js","mappings":"0NA+FMA,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,qBAAAA,EAAAA,KAGF,UAAeF,GAlEe,SAAC,GAMD,IAL5BG,EAK2B,EAL3BA,+BACAC,EAI2B,EAJ3BA,UACAC,EAG2B,EAH3BA,eACAC,EAE2B,EAF3BA,uBACAJ,EAC2B,EAD3BA,qBAEA,GAAkDK,EAAAA,EAAAA,WAAkB,GAApE,eAAOC,EAAP,KAA0BC,EAA1B,KAsBA,OACE,SAAC,IAAD,CACEC,MAAK,uBACLC,YAAaL,EAAyB,UAAY,SAClDM,OAAQR,EACRS,UAAWL,EACXM,WAAW,SAAC,KAAD,IACXC,UA3BqB,WACnBP,IAGJC,GAAqB,GAErBO,EAAAA,EAAAA,OACU,MADV,0BACoCX,EADpC,eACiE,CAC7DY,YAAaX,IAEdY,MAAK,WACJT,GAAqB,GACrBN,GAA+B,MAEhCgB,OAAM,SAACC,GACNX,GAAqB,GACrBP,EAAqBkB,QAYvBC,mBAAoB,CAClBC,MAAO,UACPC,QAAS,aAEXC,QAAS,WACPrB,GAA+B,IAEjCsB,qBACE,UAAC,IAAD,CAAmBC,GAAG,2BAAtB,qCAC2B,KACzB,4BAASpB,EAAyB,UAAY,WAAmB,IAFnE,8BAIGA,IACC,UAAC,EAAAqB,SAAD,YACE,mBACA,mBACA,0F,kLCqCd,KAAeC,EAAAA,EAAAA,IA1GA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAwGP,EArFsB,SAAC,GAcI,IAAD,IAbxBnB,OAAAA,OAawB,SAZxBY,EAYwB,EAZxBA,QACAQ,EAWwB,EAXxBA,SACAjB,EAUwB,EAVxBA,UAUwB,IATxBkB,QAAAA,OASwB,MATd,GASc,MARxBvB,MAAAA,OAQwB,MARhB,GAQgB,EAPxBG,EAOwB,EAPxBA,UACAY,EAMwB,EANxBA,oBAMwB,IALxBS,WAAAA,OAKwB,MALX,SAKW,MAJxBvB,YAAAA,OAIwB,MAJV,UAIU,MAHxBU,mBAAAA,OAGwB,MAHH,GAGG,MAFxBc,kBAAAA,OAEwB,MAFJ,GAEI,MADxBrB,UAAAA,OACwB,MADZ,KACY,EACxB,OACE,UAAC,IAAD,CACEsB,KAAMxB,EACNY,QAAS,SAACa,EAAOC,GACA,kBAAXA,GACFd,KAGJe,UAAWN,EAAQO,KACnBC,GAAI,CACF,mBAAoB,CAClBC,QAAS,wBAVf,WAcE,UAAC,IAAD,CAAaH,UAAWN,EAAQvB,MAAhC,WACE,iBAAK6B,UAAWN,EAAQU,UAAxB,UACG7B,EADH,IACeJ,MAEf,gBAAK6B,UAAWN,EAAQW,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXL,UAAWN,EAAQY,YACnBC,QAAStB,EACTuB,eAAa,EACbC,KAAK,QALP,UAOE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAeT,UAAWN,EAAQgB,QAAlC,SACGxB,KAEH,UAAC,IAAD,CAAec,UAAWN,EAAQiB,QAAlC,WACE,SAAC,KAAD,gBACEX,UAAWN,EAAQkB,aACnBL,QAASd,GAAYR,EACrB4B,SAAUvC,EACVwC,KAAK,UACDlB,GALN,IAMEZ,QAAQ,WACRD,MAAM,UACNI,GAAI,iBARN,SAUGQ,MAGH,SAAC,KAAD,gBACEK,UAAWN,EAAQqB,cACnBD,KAAK,SACLP,QAAS/B,EACTwC,QAAS1C,EACTuC,SAAUvC,EACVU,QAAQ,WACRD,MAAM,YACNkC,gBAAgB,QAChBC,WAAW,SAAC,WAAD,IACXC,WAAS,EACThC,GAAI,cACAL,GAZN,aAcGV,e,0BClHPgD,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/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/402.ab077b85.chunk.js b/portal-ui/build/static/js/402.ab077b85.chunk.js new file mode 100644 index 000000000..e176544e8 --- /dev/null +++ b/portal-ui/build/static/js/402.ab077b85.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[402],{70402:function(n,e,t){t.r(e);var i=t(29439),o=t(72791),r=t(60364),s=t(51691),a=t(81207),c=t(42649),l=t(2148),u=t(93656),d=t(80184),f=(0,r.$j)(null,{setErrorSnackMessage:c.Ih});e.default=f((function(n){var e=n.closeVersioningModalAndRefresh,t=n.modalOpen,r=n.selectedBucket,c=n.versioningCurrentState,f=n.setErrorSnackMessage,g=(0,o.useState)(!1),h=(0,i.Z)(g,2),b=h[0],k=h[1];return(0,d.jsx)(l.Z,{title:"Versioning on Bucket",confirmText:c?"Disable":"Enable",isOpen:t,isLoading:b,titleIcon:(0,d.jsx)(u.Ej,{}),onConfirm:function(){b||(k(!0),a.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/versioning"),{versioning:!c}).then((function(){k(!1),e(!0)})).catch((function(n){k(!1),f(n)})))},confirmButtonProps:{color:"primary",variant:"contained"},onClose:function(){e(!1)},confirmationContent:(0,d.jsxs)(s.Z,{id:"alert-dialog-description",children:["Are you sure you want to"," ",(0,d.jsx)("strong",{children:c?"disable":"enable"})," ","versioning for this bucket?",c&&(0,d.jsxs)(o.Fragment,{children:[(0,d.jsx)("br",{}),(0,d.jsx)("br",{}),(0,d.jsx)("strong",{children:"File versions won't be automatically deleted."})]})]})})}))}}]); +//# sourceMappingURL=402.ab077b85.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/402.ab077b85.chunk.js.map b/portal-ui/build/static/js/402.ab077b85.chunk.js.map new file mode 100644 index 000000000..480fbcc95 --- /dev/null +++ b/portal-ui/build/static/js/402.ab077b85.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/402.ab077b85.chunk.js","mappings":"yNA+FMA,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,qBAAAA,EAAAA,KAGF,UAAeF,GAlEe,SAAC,GAMD,IAL5BG,EAK2B,EAL3BA,+BACAC,EAI2B,EAJ3BA,UACAC,EAG2B,EAH3BA,eACAC,EAE2B,EAF3BA,uBACAJ,EAC2B,EAD3BA,qBAEA,GAAkDK,EAAAA,EAAAA,WAAkB,GAApE,eAAOC,EAAP,KAA0BC,EAA1B,KAsBA,OACE,SAAC,IAAD,CACEC,MAAK,uBACLC,YAAaL,EAAyB,UAAY,SAClDM,OAAQR,EACRS,UAAWL,EACXM,WAAW,SAAC,KAAD,IACXC,UA3BqB,WACnBP,IAGJC,GAAqB,GAErBO,EAAAA,EAAAA,OACU,MADV,0BACoCX,EADpC,eACiE,CAC7DY,YAAaX,IAEdY,MAAK,WACJT,GAAqB,GACrBN,GAA+B,MAEhCgB,OAAM,SAACC,GACNX,GAAqB,GACrBP,EAAqBkB,QAYvBC,mBAAoB,CAClBC,MAAO,UACPC,QAAS,aAEXC,QAAS,WACPrB,GAA+B,IAEjCsB,qBACE,UAAC,IAAD,CAAmBC,GAAG,2BAAtB,qCAC2B,KACzB,4BAASpB,EAAyB,UAAY,WAAmB,IAFnE,8BAIGA,IACC,UAAC,EAAAqB,SAAD,YACE,mBACA,mBACA","sources":["screens/Console/Buckets/BucketDetails/EnableVersioningModal.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, 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"],"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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4061.776bbbf3.chunk.js b/portal-ui/build/static/js/4061.776bbbf3.chunk.js new file mode 100644 index 000000000..1dfd7ba82 --- /dev/null +++ b/portal-ui/build/static/js/4061.776bbbf3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4061,8771,8896,9134],{64163:function(e,n,t){var s=t(1413),i=t(72791),a=t(61889),o=t(11135),r=t(25787),l=t(23814),c=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)((0,s.Z)({},l.xx))}))((function(e){var n=e.classes,t=e.label,s=void 0===t?"":t,o=e.content,r=e.multiLine,l=void 0!==r&&r;return(0,c.jsx)(i.Fragment,{children:(0,c.jsxs)(a.ZP,{className:n.prefinedContainer,children:[""!==s&&(0,c.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:s}),(0,c.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,c.jsx)(a.ZP,{item:!0,xs:12,className:l?n.innerContentMultiline:n.innerContent,children:o})})]})})}))},9505:function(e,n,t){var s=t(29439),i=t(72791),a=t(81207);n.Z=function(e,n){var t=(0,i.useState)(!1),o=(0,s.Z)(t,2),r=o[0],l=o[1];return[r,function(t,s,i){l(!0),a.Z.invoke(t,s,i).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},56028:function(e,n,t){var s=t(29439),i=t(1413),a=t(72791),o=t(60364),r=t(13400),l=t(55646),c=t(5574),u=t(65661),d=t(39157),m=t(11135),f=t(25787),h=t(23814),x=t(42649),p=t(29823),Z=t(28057),g=t(80184),j=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.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,o=e.title,m=e.children,f=e.classes,h=e.wideLimit,x=void 0===h||h,j=e.modalSnackMessage,b=e.noContentPadding,v=e.setModalSnackMessage,S=e.titleIcon,y=void 0===S?null:S,C=(0,a.useState)(!1),P=(0,s.Z)(C,2),k=P[0],N=P[1];(0,a.useEffect)((function(){v("")}),[v]),(0,a.useEffect)((function(){if(j){if(""===j.message)return void N(!1);"error"!==j.type&&N(!0)}}),[j]);var E=x?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},M="";return j&&(M=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(M=j.message)),(0,g.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:f},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:f.root,children:[(0,g.jsxs)(u.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[y," ",o]}),(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)(p.Z,{})})})]}),(0,g.jsx)(Z.Z,{isModal:!0}),(0,g.jsx)(l.Z,{open:k,className:f.snackBarModal,onClose:function(){N(!1),v("")},message:M,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:b?"":f.content,children:m})]}))})))},60680:function(e,n,t){t(72791);var s=t(11135),i=t(25787),a=t(80184);n.Z=(0,i.Z)((function(e){return(0,s.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,a.jsx)("h1",{className:n.root,children:t})}))},59114:function(e,n,t){var s=t(4942),i=t(1413),a=(t(72791),t(63466)),o=t(74900),r=t(27391),l=t(25787),c=t(11135),u=t(23814),d=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,i.Z)({},u.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,l=e.onChange,c=e.adornmentPosition,u=void 0===c?"end":c,m=e.overrideClass,f=e.value,h=(0,s.Z)({disableUnderline:!0},"".concat(u,"Adornment"),(0,d.jsx)(a.Z,{position:u,className:i.adornment,children:(0,d.jsx)(o.Z,{})}));return(0,d.jsx)(r.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){l(e.target.value)},variant:"standard",value:f})}))},50276:function(e,n,t){var s=t(1413),i=t(29439),a=t(72791),o=t(64554),r=t(43896),l=t(83449),c=t(47283),u=t(82851),d=t(25787),m=t(13967),f=t(11135),h=t(95193),x=t(80184),p={minHeight:60};n.Z=(0,d.Z)((function(e){return(0,f.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,d=e.selectedTab,f=void 0===d?"0":d,Z=e.routes,g=e.isRouteTabs,j=a.useState(f),b=(0,i.Z)(j,2),v=b[0],S=b[1],y=(0,m.Z)(),C=(0,h.Z)(y.breakpoints.down("md")),P=[],k=[];return n?(n.forEach((function(e){P.push(e.tabConfig),k.push(e.content)})),(0,x.jsx)(l.ZP,{value:"".concat(v),children:(0,x.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,x.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,x.jsx)(c.Z,{onChange:function(e,n){S(n)},orientation:C?"horizontal":"vertical",variant:C?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:P.map((function(e,n){return e?(0,x.jsx)(r.Z,(0,s.Z)((0,s.Z)({className:t.tabHeader,value:"".concat(n),style:p},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,x.jsxs)(o.Z,{className:t.tabContentContainer,children:[g?null:k.map((function(e,n){return(0,x.jsx)(u.Z,{classes:(0,s.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),g?(0,x.jsx)("div",{className:t.tabPanel,children:Z}):null]})]})})):null}))},88896:function(e,n,t){t.r(n);var s=t(29439),i=(t(72791),t(60364)),a=t(51691),o=t(42649),r=t(2148),l=t(9505),c=t(93656),u=t(80184),d={setErrorSnackMessage:o.Ih},m=(0,i.$j)(null,d);n.default=m((function(e){var n=e.selectedGroup,t=e.deleteOpen,i=e.closeDeleteModalAndRefresh,o=e.setErrorSnackMessage,d=(0,l.Z)((function(){return i(!0)}),(function(e){return o(e)})),m=(0,s.Z)(d,2),f=m[0],h=m[1];if(!n)return null;return(0,u.jsx)(r.Z,{title:"Delete Group",confirmText:"Delete",isOpen:t,titleIcon:(0,u.jsx)(c.Nv,{}),isLoading:f,onConfirm:function(){h("DELETE","/api/v1/group?name=".concat(encodeURI(n)))},onClose:function(){return i(!1)},confirmationContent:(0,u.jsxs)(a.Z,{children:["Are you sure you want to delete group",(0,u.jsx)("br",{}),(0,u.jsx)("b",{children:n}),"?"]})})}))},94061:function(e,n,t){t.r(n),t.d(n,{default:function(){return z},formatPolicy:function(){return L},getPoliciesAsString:function(){return O}});var s=t(29439),i=t(1413),a=t(72791),o=t(79271),r=t(11135),l=t(23814),c=t(42649),u=t(60364),d=t(25787),m=t(61889),f=t(14917),h=t(93656),x=t(92983),p=t(62666),Z=t(81207),g=t(39134),j=t(40228),b=t(56028),v=t(64163),S=t(36151),y=t(80184),C={setModalErrorSnackMessage:c.zb},P=(0,u.$j)(null,C),k=(0,d.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({buttonContainer:{textAlign:"right",marginTop:"1rem"},userSelector:{"& .MuiPaper-root":{padding:0,marginBottom:15}}},l.ID),l.DF),l.oO))}))(P((function(e){var n=e.classes,t=e.title,i=void 0===t?"":t,o=e.groupStatus,r=void 0===o?"enabled":o,l=e.preSelectedUsers,u=void 0===l?[]:l,d=e.selectedGroup,f=void 0===d?"":d,x=e.open,p=e.onClose,g=(0,a.useState)(u),C=(0,s.Z)(g,2),P=C[0],k=C[1];return(0,y.jsxs)(b.Z,{modalOpen:x,onClose:p,title:i,titleIcon:(0,y.jsx)(h.Zm,{}),children:[(0,y.jsx)(m.ZP,{container:!0,children:(0,y.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,y.jsx)("div",{className:n.formFieldRow,children:(0,y.jsx)(v.Z,{label:"Selected Group",content:f})}),(0,y.jsx)("div",{className:n.userSelector,children:(0,y.jsx)(j.Z,{selectedUsers:P,setSelectedUsers:k,editMode:!f})})]})}),(0,y.jsxs)(m.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,y.jsx)(S.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){k(u)},children:"Reset"}),(0,y.jsx)(S.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(f)),{group:f,members:P,status:r}).then((function(e){p()})).catch((function(e){p(),(0,c.zb)(e)}))},children:"Save"})]})]})}))),N=t(88896),E=t(50276),M=t(37516),A=t(74794),F=t(60680),R=t(59114),T=t(56087),B=t(38442),U=t(32291),w=t(84669),I=(0,d.Z)((function(e){return(0,r.Z)({breadcrumLink:{textDecoration:"none",color:"black"}})}))((function(e){e.classes;return(0,y.jsx)(U.Z,{label:(0,y.jsx)(a.Fragment,{children:(0,y.jsx)(w.Z,{to:T.gA.GROUPS,label:"Groups"})}),actions:(0,y.jsx)(a.Fragment,{})})})),D=t(40603),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.length<=0?[]:e.split(",")},O=function(e){return e.join(", ")},G={setErrorSnackMessage:c.Ih},_=(0,u.$j)(null,G),z=(0,d.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.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,i.Z)((0,i.Z)({},l.qg.searchField),{},{maxWidth:280})},l.VX),l.bK),{},{actionsTray:(0,i.Z)((0,i.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))))}))(_((function(e){var n=e.classes,t=(0,a.useState)({}),i=(0,s.Z)(t,2),r=i[0],l=i[1],u=(0,a.useState)(!1),d=(0,s.Z)(u,2),j=d[0],b=d[1],v=(0,a.useState)(!1),S=(0,s.Z)(v,2),C=S[0],P=S[1],U=(0,a.useState)(!1),w=(0,s.Z)(U,2),O=w[0],G=w[1],_=(0,a.useState)(""),z=(0,s.Z)(_,2),K=z[0],H=z[1],V=(0,o.UO)().groupName,W=void 0===V?"":V,$=r.members,X=void 0===$?[]:$,q=r.policy,Q=void 0===q?"":q,Y=r.status,J=X.filter((function(e){return e.includes(K)}));(0,a.useEffect)((function(){W&&ie()}),[W]);var ee=L(Q),ne="enabled"===Y,te=X.length>0?"Edit Members":"Add Members",se=(0,B.F)(T.C3,[T.Ft.ADMIN_GET_GROUP]);function ie(){se&&Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(W))).then((function(e){l(e)})).catch((function(e){(0,c.zb)(e),l({})}))}var ae=(0,y.jsxs)(a.Fragment,{children:[(0,y.jsxs)("div",{className:n.actionsTray,children:[(0,y.jsx)(F.Z,{children:"Members"}),(0,y.jsx)(R.Z,{placeholder:"Search members",onChange:function(e){H(e)},overrideClass:n.searchField,value:K}),(0,y.jsx)(B.s,{resource:T.C3,scopes:[T.Ft.ADMIN_ADD_USER_TO_GROUP],errorProps:{disabled:!0},children:(0,y.jsx)(D.Z,{tooltip:te,text:te,variant:"contained",color:"primary",icon:(0,y.jsx)(h.dt,{}),onClick:function(){P(!0)}})})]}),(0,y.jsx)("div",{className:n.tableBlock,children:(0,y.jsx)(B.s,{resource:T.C3,scopes:[T.Ft.ADMIN_LIST_USERS],errorProps:{disabled:!0},children:(0,y.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){p.Z.push("".concat(T.gA.USERS,"/").concat(e))}}],columns:[{label:"Access Key",elementKey:""}],selectedItems:[],isLoading:!1,records:J,entityName:"Users",idField:""})})})]}),oe=(0,y.jsxs)(a.Fragment,{children:[(0,y.jsxs)("div",{className:n.actionsTray,children:[(0,y.jsx)(F.Z,{children:"Policies"}),(0,y.jsx)(D.Z,{tooltip:"Set Policies",text:"Set Policies",variant:"contained",color:"primary",icon:(0,y.jsx)(h.v4,{}),onClick:function(){b(!0)}})]}),(0,y.jsx)("div",{className:n.tableBlock,children:(0,y.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){p.Z.push("".concat(T.gA.POLICIES,"/").concat(e))}}],columns:[{label:"Policy",elementKey:""}],isLoading:!1,records:ee,entityName:"Policies",idField:""})})]});return(0,y.jsxs)(a.Fragment,{children:[(0,y.jsx)(I,{}),(0,y.jsxs)(A.Z,{className:n.pageContainer,children:[(0,y.jsx)(m.ZP,{item:!0,xs:12,children:(0,y.jsx)(f.Z,{icon:(0,y.jsx)(a.Fragment,{children:(0,y.jsx)(h.ww,{width:40})}),title:W,subTitle:null,actions:(0,y.jsxs)(a.Fragment,{children:[(0,y.jsx)("span",{className:n.statusLabel,children:"Group Status:"}),(0,y.jsx)("span",{id:"group-status",className:n.statusValue,children:ne?"Enabled":"Disabled"}),(0,y.jsx)(B.s,{resource:T.C3,scopes:[T.Ft.ADMIN_ENABLE_GROUP,T.Ft.ADMIN_DISABLE_GROUP],errorProps:{disabled:!0},matchAll:!0,children:(0,y.jsx)(M.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(W)),{group:W,members:X,status:e?"enabled":"disabled"}).then((function(e){ie()})).catch((function(e){(0,c.zb)(e)}))},switchOnly:!0})}),(0,y.jsx)(B.s,{resource:T.C3,scopes:[T.Ft.ADMIN_REMOVE_USER_FROM_GROUP],errorProps:{disabled:!0},children:(0,y.jsx)("div",{className:n.spacerLeft,children:(0,y.jsx)(D.Z,{tooltip:"Delete Group",text:"",variant:"outlined",color:"secondary",icon:(0,y.jsx)(h.XH,{}),onClick:function(){G(!0)}})})})]})})}),(0,y.jsx)(m.ZP,{item:!0,xs:12,children:(0,y.jsxs)(E.Z,{children:[{tabConfig:{label:"Members"},content:ae},{tabConfig:{label:"Policies"},content:oe}]})})]}),j?(0,y.jsx)(g.default,{open:j,selectedGroup:W,selectedUser:null,closeModalAndRefresh:function(){b(!1),ie()}}):null,C?(0,y.jsx)(k,{selectedGroup:W,onSaveClick:function(){},title:te,groupStatus:Y,preSelectedUsers:X,open:C,onClose:function(){P(!1),ie()}}):null,O&&(0,y.jsx)(N.default,{deleteOpen:O,selectedGroup:W,closeDeleteModalAndRefresh:function(e){G(!1),e&&p.Z.push(T.gA.GROUPS)}})]})})))},40228:function(e,n,t){var s=t(93433),i=t(29439),a=t(1413),o=t(72791),r=t(60364),l=t(11135),c=t(25787),u=t(40986),d=t(26181),m=t.n(d),f=t(10703),h=t(61889),x=t(21639),p=t(23814),Z=t(42649),g=t(81207),j=t(92983),b=t(59114),v=t(80184),S={setModalErrorSnackMessage:Z.zb},y=(0,r.$j)(null,S);n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)({paper:{display:"flex",overflow:"auto",flexDirection:"column",boxShadow:"none",border:0},tableBlock:(0,a.Z)({},p.VX.tableBlock),searchBox:{flex:1}},p.OR),{},{actionsTitle:{fontSize:14,alignSelf:"center",minWidth:160,marginRight:10},noFound:{textAlign:"center",padding:e.spacing(3),border:"1px solid #EAEAEA",fontSize:".9rem"}},p.jY))}))(y((function(e){var n=e.classes,t=e.selectedUsers,a=e.setSelectedUsers,r=e.editMode,l=void 0!==r&&r,c=e.setModalErrorSnackMessage,d=(0,o.useState)([]),p=(0,i.Z)(d,2),Z=p[0],S=p[1],y=(0,o.useState)(!1),C=(0,i.Z)(y,2),P=C[0],k=C[1],N=(0,o.useState)(""),E=(0,i.Z)(N,2),M=E[0],A=E[1],F=(0,o.useCallback)((function(){g.Z.invoke("GET","/api/v1/users").then((function(e){var n=m()(e,"users",[]);n||(n=[]),S(n.sort(x.LQ)),k(!1)})).catch((function(e){c(e),k(!1)}))}),[c]);(0,o.useEffect)((function(){k(!0)}),[]),(0,o.useEffect)((function(){P&&F()}),[P,F]);var R=t||[],T=Z.filter((function(e){return e.accessKey.includes(M)}));return(0,v.jsx)(o.Fragment,{children:(0,v.jsx)(h.ZP,{item:!0,xs:12,children:(0,v.jsxs)(f.Z,{className:n.paper,children:[P&&(0,v.jsx)(u.Z,{}),null!==Z&&Z.length>0?(0,v.jsxs)(o.Fragment,{children:[(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,v.jsx)("label",{className:n.actionsTitle,children:l?"Edit Members":"Assign Users"}),(0,v.jsx)("div",{className:n.searchBox,children:(0,v.jsx)(b.Z,{placeholder:"Filter Users",adornmentPosition:"end",onChange:A,value:M})})]}),(0,v.jsx)(h.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,v.jsx)(j.Z,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,s.Z)(R);return i?o.push(t):o=o.filter((function(e){return e!==t})),a(o),o},selectedItems:R,isLoading:P,records:T,entityName:"Users",idField:"accessKey",customPaperHeight:n.multiSelectTable})})]}):(0,v.jsx)("div",{className:n.noFound,children:"No Users to display"})]})})})})))},58400:function(e,n,t){var s=t(93433),i=t(29439),a=t(1413),o=t(72791),r=t(60364),l=t(11135),c=t(25787),u=t(40986),d=t(61889),m=t(21639),f=t(23814),h=t(42649),x=t(81207),p=t(92983),Z=t(59114),g=t(80184),j=(0,r.$j)(null,{setModalErrorSnackMessage:h.zb});n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,a.Z)({},f.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},f.qg),f.VX),f.OR),f.jY))}))(j((function(e){var n=e.classes,t=e.selectedPolicy,a=void 0===t?[]:t,r=e.setSelectedPolicy,l=e.setModalErrorSnackMessage,c=(0,o.useState)([]),f=(0,i.Z)(c,2),h=f[0],j=f[1],b=(0,o.useState)(!1),v=(0,i.Z)(b,2),S=v[0],y=v[1],C=(0,o.useState)(""),P=(0,i.Z)(C,2),k=P[0],N=P[1],E=(0,o.useCallback)((function(){y(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;y(!1),j(n.sort(m.g4))})).catch((function(e){y(!1),l(e)}))}),[l]);(0,o.useEffect)((function(){y(!0)}),[]),(0,o.useEffect)((function(){S&&E()}),[S,E]);var M=h.filter((function(e){return e.name.includes(k)}));return(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[S&&(0,g.jsx)(u.Z,{}),h.length>0?(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(d.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){N(e)},value:k})})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(p.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,s.Z)(a);i?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),r(o)},selectedItems:a,isLoading:S,records:M,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 s=t(29439),i=t(1413),a=t(72791),o=t(60364),r=t(26181),l=t.n(r),c=t(11135),u=t(25787),d=t(36151),m=t(40986),f=t(61889),h=t(23814),x=t(42649),p=t(56028),Z=t(81207),g=t(58400),j=t(64163),b=t(80184),v={setModalErrorSnackMessage:x.zb},S=(0,o.$j)(null,v);n.default=(0,u.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.oO),h.bK),{},{tableBlock:(0,i.Z)((0,i.Z)({},h.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(S((function(e){var n=e.classes,t=e.closeModalAndRefresh,i=e.selectedUser,o=e.selectedGroup,r=e.setModalErrorSnackMessage,c=e.open,u=(0,a.useState)(!1),h=(0,s.Z)(u,2),x=h[0],v=h[1],S=(0,a.useState)([]),y=(0,s.Z)(S,2),C=y[0],P=y[1],k=(0,a.useState)([]),N=(0,s.Z)(k,2),E=N[0],M=N[1];(0,a.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","");P(n.split(",")),M(n.split(","))})).catch((function(e){r(e),v(!1)})));var e=l()(i,"policy",[]);P(e),M(e)}}),[c,o,i]);var A=l()(i,"accessKey","");return(0,b.jsxs)(p.Z,{onClose:function(){t()},modalOpen:c,title:"Set Policies",children:[(0,b.jsxs)(f.ZP,{container:!0,children:[(0,b.jsx)(f.ZP,{item:!0,xs:12,children:(0,b.jsx)(j.Z,{label:"Selected ".concat(null!==o?"Group":"User"),content:null!==o?o:A})}),(0,b.jsx)(f.ZP,{item:!0,xs:12,children:(0,b.jsx)(j.Z,{label:"Current Policy",content:C.join(", ")})}),(0,b.jsx)(f.ZP,{item:!0,xs:12,children:(0,b.jsx)("div",{className:n.tableBlock,children:(0,b.jsx)(g.Z,{selectedPolicy:E,setSelectedPolicy:M})})})]}),(0,b.jsxs)(f.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,b.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){M(C)},children:"Reset"}),(0,b.jsx)(d.Z,{type:"button",variant:"contained",color:"primary",disabled:x,onClick:function(){var e="user",n=null;null!==o?(e="group",n=o):null!==i&&(n=i.accessKey),v(!0),Z.Z.invoke("PUT","/api/v1/set-policy",{name:E,entityName:n,entityType:e}).then((function(){v(!1),t()})).catch((function(e){v(!1),r(e)}))},children:"Save"})]}),x&&(0,b.jsx)(f.ZP,{item:!0,xs:12,children:(0,b.jsx)(m.Z,{})})]})})))},21639:function(e,n,t){t.d(n,{LQ:function(){return s},V2:function(){return a},g4:function(){return i}});var s=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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
    \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
    \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"],"names":["withStyles","theme","createStyles","predefinedList","classes","label","content","multiLine","Fragment","className","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","children","wideLimit","noContentPadding","titleIcon","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","margin","fontSize","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","variant","tabStripStyle","minHeight","tabsContainer","display","height","tabsHeaderContainer","background","borderRight","flexFlow","alignItems","justifyContent","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","style","disableTouchRipple","focusRipple","mapDispatchToProps","setErrorSnackMessage","selectedGroup","deleteOpen","closeDeleteModalAndRefresh","useApi","deleteLoading","invokeDeleteApi","confirmText","isOpen","onConfirm","encodeURI","confirmationContent","setModalErrorSnackMessage","buttonContainer","textAlign","marginTop","userSelector","modalStyleUtils","formFieldStyles","modalBasic","groupStatus","preSelectedUsers","selectedUsers","setSelectedUsers","ModalWrapper","Grid","container","formFieldRow","PredefinedList","UsersSelectors","editMode","modalButtonBar","Button","color","group","members","status","breadcrumLink","textDecoration","PageHeader","BackLink","to","IAM_PAGES","actions","formatPolicy","policy","split","getPoliciesAsString","policies","join","pageContainer","border","statusLabel","statusValue","tableStyles","spacingUtils","actionsTray","flex","marginLeft","whiteSpace","textOverflow","containerForHeader","spacing","groupDetails","setGroupDetails","policyOpen","setPolicyOpen","usersOpen","setUsersOpen","setDeleteOpen","memberFilter","setMemberFilter","useParams","groupName","groupEnabled","filteredMembers","filter","elementItem","includes","fetchGroupInfo","groupPolicies","isGroupEnabled","memberActionText","getGroupDetails","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","groupsTabContent","PanelTitle","SearchBox","searchText","SecureComponent","resource","scopes","errorProps","disabled","RBIconButton","tooltip","text","icon","tableBlock","TableWrapper","itemActions","userName","history","columns","elementKey","selectedItems","records","entityName","idField","policiesTabContent","PageLayout","ScreenTitle","subTitle","matchAll","FormSwitchWrapper","indicatorLabels","checked","name","nextStatus","switchOnly","spacerLeft","VerticalTabs","SetPolicy","selectedUser","closeModalAndRefresh","onSaveClick","DeleteGroup","isDelSuccess","overflow","boxShadow","searchBox","actionsTitle","alignSelf","minWidth","noFound","selectorsCommon","setRecords","loading","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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4061.8bd849a7.chunk.js b/portal-ui/build/static/js/4061.8bd849a7.chunk.js deleted file mode 100644 index 5f1017513..000000000 --- a/portal-ui/build/static/js/4061.8bd849a7.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(93656),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(29439),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(29439),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(93656),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(29439),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(29439),a=(t(72791),t(60364)),r=t(51691),o=t(42649),s=t(23508),l=t(9505),c=t(93656),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(29439),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(93656),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(93433),a=t(29439),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(93433),a=t(29439),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(29439),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/4133.37c68d0f.chunk.js b/portal-ui/build/static/js/4133.37c68d0f.chunk.js new file mode 100644 index 000000000..eb60cb027 --- /dev/null +++ b/portal-ui/build/static/js/4133.37c68d0f.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4133],{23804:function(e,n,t){"use strict";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})]})})}))},59114:function(e,n,t){"use strict";var o=t(4942),i=t(1413),r=(t(72791),t(63466)),a=t(74900),s=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,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,p=e.overrideClass,h=e.value,m=(0,o.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:i.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:p||i.searchField,id:"search-resource",label:"",InputProps:m,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},94874:function(e,n,t){"use strict";t.r(n);var o=t(29439),i=t(1413),r=t(72791),a=t(60364),s=t(26181),c=t.n(s),l=t(11135),d=t(25787),u=t(61889),p=t(93656),h=t(42649),m=t(23814),f=t(92983),v=t(32291),Z=t(81207),x=t(62666),b=t(23804),g=t(74794),j=t(56087),I=t(38442),P=t(59114),C=t(75578),S=t(40603),y=t(80184),E=(0,C.Z)(r.lazy((function(){return Promise.all([t.e(5609),t.e(3320)]).then(t.bind(t,31014))}))),k=(0,C.Z)(r.lazy((function(){return t.e(312).then(t.bind(t,312))}))),A={setErrorSnackMessage:h.Ih},M=(0,a.$j)(null,A);n.default=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},m.OR),m.qg),{},{searchField:(0,i.Z)((0,i.Z)({},m.qg.searchField),{},{maxWidth:380}),tableBlock:(0,i.Z)((0,i.Z)({},m.VX.tableBlock),{},{marginTop:15})},(0,m.Bz)(e.spacing(4))))}))(M((function(e){var n=e.classes,t=e.setErrorSnackMessage,i=(0,r.useState)([]),a=(0,o.Z)(i,2),s=a[0],l=a[1],d=(0,r.useState)(!1),h=(0,o.Z)(d,2),m=h[0],C=h[1],A=(0,r.useState)(!1),M=(0,o.Z)(A,2),z=M[0],F=M[1],L=(0,r.useState)(!1),w=(0,o.Z)(L,2),N=w[0],R=w[1],B=(0,r.useState)(""),O=(0,o.Z)(B,2),T=O[0],_=O[1],D=(0,r.useState)(""),H=(0,o.Z)(D,2),V=H[0],q=H[1],U=(0,r.useState)(null),W=(0,o.Z)(U,2),Y=W[0],G=W[1],K=(0,I.F)(j.C3,[j.Ft.ADMIN_GET_POLICY]),X=(0,I.F)(j.C3,[j.Ft.ADMIN_DELETE_POLICY]),$=(0,I.F)(j.C3,[j.Ft.ADMIN_LIST_USER_POLICIES]);(0,r.useEffect)((function(){J()}),[]),(0,r.useEffect)((function(){m&&($?Z.Z.invoke("GET","/api/v1/policies").then((function(e){var n=c()(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 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","\"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":["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","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","variant","AddPolicy","withSuspense","React","DeletePolicy","mapDispatchToProps","setErrorSnackMessage","connector","connect","actionsTray","maxWidth","tableBlock","tableStyles","marginTop","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","onClick","policy","history","IAM_PAGES","disableButtonFunction","sendOnlyId","filteredRecords","filter","elementItem","includes","open","closeModalAndRefresh","refresh","closeDeleteModalAndRefresh","pageContainer","scopes","resource","errorProps","disabled","tooltip","text","color","icon","itemActions","columns","elementKey","isLoading","entityName","idField","Fragment","href","rel","_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","palette","secondary","disableRipple","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","whiteSpace","inputAdornmentClasses","marginLeft","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/4209.7c3855ef.chunk.js b/portal-ui/build/static/js/4209.7c3855ef.chunk.js deleted file mode 100644 index bc7fcd22d..000000000 --- a/portal-ui/build/static/js/4209.7c3855ef.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(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(93656),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(29439),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(93656),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.7c3855ef.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4209.7c3855ef.chunk.js.map b/portal-ui/build/static/js/4209.7c3855ef.chunk.js.map deleted file mode 100644 index fd3361d84..000000000 --- a/portal-ui/build/static/js/4209.7c3855ef.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4209.7c3855ef.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/4209.875682c6.chunk.js b/portal-ui/build/static/js/4209.875682c6.chunk.js new file mode 100644 index 000000000..91877067c --- /dev/null +++ b/portal-ui/build/static/js/4209.875682c6.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4209],{59121:function(e,t,n){"use strict";n.r(t);var a=n(29439),o=n(1413),c=n(72791),r=n(61889),l=n(64554),s=n(95087),i=n(60364),d=n(30061),u=n(11135),h=n(25787),p=n(45248),m=n(26824),x=n(23814),f=n(92983),b=n(32291),g=n(34866),v=n(72426),k=n.n(v),Z=n(74794),C=n(93656),y=n(40603),w=n(21435),j=n(80184),S=null,I=(0,i.$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,h.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,i=e.setTraceStarted,d=e.traceStarted,u=e.messages,h=(0,c.useState)(""),x=(0,a.Z)(h,2),v=x[0],I=x[1],z=(0,c.useState)(""),T=(0,a.Z)(z,2),_=T[0],F=T[1],M=(0,c.useState)(""),N=(0,a.Z)(M,2),L=N[0],B=N[1],O=(0,c.useState)(""),P=(0,a.Z)(O,2),E=P[0],R=P[1],H=(0,c.useState)(0),W=(0,a.Z)(H,2),A=W[0],D=W[1],V=(0,c.useState)(!1),K=(0,a.Z)(V,2),U=K[0],q=K[1],Y=(0,c.useState)(!0),G=(0,a.Z)(Y,2),X=G[0],J=G[1],$=(0,c.useState)(!1),Q=(0,a.Z)($,2),ee=Q[0],te=Q[1],ne=(0,c.useState)(!1),ae=(0,a.Z)(ne,2),oe=ae[0],ce=ae[1],re=(0,c.useState)(!1),le=(0,a.Z)(re,2),se=le[0],ie=le[1],de=(0,c.useState)(!1),ue=(0,a.Z)(de,2),he=ue[0],pe=ue[1],me=(0,c.useState)(!1),xe=(0,a.Z)(me,2),fe=xe[0],be=xe[1];return(0,j.jsxs)(c.Fragment,{children:[(0,j.jsx)(b.Z,{label:"Trace"}),(0,j.jsx)(Z.Z,{children:(0,j.jsxs)(r.ZP,{className:t.formBox,children:[(0,j.jsxs)(r.ZP,{item:!0,xs:12,sx:{display:"flex",flexFlow:"column","& .trace-checkbox-label":{fontSize:"14px",fontWeight:"normal"}},children:[(0,j.jsx)(l.Z,{sx:{fontSize:"16px",fontWeight:600,padding:"20px 0px 20px 0"},children:"Calls to Trace"}),(0,j.jsxs)(l.Z,{className:"".concat(d?"inactive-state":""),sx:{display:"flex",alignItems:"center",justifyContent:"space-between","&.inactive-state .trace-checkbox-label":{color:"#a6a5a5"}},children:[(0,j.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"row",gap:{md:"30px"},"& .trace-checked-icon":{border:"1px solid red"}},children:[(0,j.jsx)(g.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,j.jsx)(g.Z,{checked:X||U,id:"s3_calls",name:"s3_calls",label:"S3",onChange:function(e){J(e.target.checked)},value:"s3",disabled:d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,j.jsx)(g.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,j.jsx)(g.Z,{checked:oe||U,id:"storage_calls",name:"storage_calls",label:"Storage",onChange:function(e){ce(e.target.checked)},value:"storage",disabled:U||d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,j.jsx)(g.Z,{checked:se||U,id:"os_calls",name:"os_calls",label:"OS",onChange:function(e){ie(e.target.checked)},value:"os",disabled:U||d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}})]}),(0,j.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,j.jsx)(y.Z,{tooltip:"More filter options",onClick:function(){be(!fe)},text:"Filters",icon:(0,j.jsx)(C.k1,{}),color:"primary",variant:"outlined",className:"filters-toggle-button",style:{width:"118px",background:fe?"rgba(8, 28, 66, 0.04)":""}}),!d&&(0,j.jsx)(y.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(se?"os,":"");U&&(a="all");var c=(0,m.x2)(e.protocol);S=new s.w3cwebsocket("".concat(c,"://").concat(e.hostname,":").concat(t,"/ws/trace?calls=").concat(a,"&threshold=").concat(A,"&onlyErrors=").concat(he?"yes":"no","&statusCode=").concat(v,"&method=").concat(_,"&funcname=").concat(L,"&path=").concat(E));var r=null;if(null!==S)return S.onopen=function(){console.log("WebSocket Client Connected"),i(!0),S.send("ok"),r=setInterval((function(){S.send("ok")}),1e4)},S.onmessage=function(e){var t=JSON.parse(e.data.toString());t.ptime=k()(t.time,"YYYY-MM-DD HH:mm:s.SSSS +0000 UTC").toDate(),t.key=Math.random(),n(t)},S.onclose=function(){clearInterval(r),console.log("connection closed by server"),i(!1)},function(){S.close(1e3),clearInterval(r),console.log("closing websockets"),i(!1)}},style:{width:"118px"}}),d&&(0,j.jsx)(y.Z,{text:"Stop Trace","data-test-id":"trace-stop-button",icon:null,color:"primary",variant:"contained",onClick:function(){S.close(1e3),i(!1)},style:{width:"118px"}})]})]})]}),fe?(0,j.jsxs)(r.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,j.jsxs)(l.Z,{sx:{gap:"30px",display:"grid",gridTemplateColumns:"1fr 1fr 1fr",width:"100%"},children:[(0,j.jsx)(w.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,j.jsx)(w.Z,{className:"orient-vertical",id:"trace-function-name",name:"trace-function-name",label:"Function Name",classes:{},placeholder:"e.g. FunctionName2055",value:L,onChange:function(e){B(e.target.value)},disabled:d}),(0,j.jsx)(w.Z,{className:"orient-vertical",id:"trace-method",name:"trace-method",label:"Method",classes:{},placeholder:"e.g. Method 2056",value:_,onChange:function(e){F(e.target.value)},disabled:d})]}),(0,j.jsxs)(l.Z,{sx:{gap:"30px",display:"grid",gridTemplateColumns:"2fr 1fr",width:"100%",marginTop:"33px"},children:[(0,j.jsx)(l.Z,{flex:"2",style:{width:"calc( 100% + 10px)"},children:(0,j.jsx)(w.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,j.jsx)(l.Z,{sx:{marginLeft:"15px"},children:(0,j.jsx)(w.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,j.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:"40px"},children:(0,j.jsx)(g.Z,{checked:he,id:"only_errors",name:"only_errors",label:"Display only Errors",onChange:function(e){pe(e.target.checked)},value:"only_errors",disabled:d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}})})]}):null,(0,j.jsx)(r.ZP,{item:!0,xs:12,children:(0,j.jsx)(l.Z,{sx:{fontSize:"16px",fontWeight:600,marginBottom:"30px",marginTop:"30px"},children:"Trace Results"})}),(0,j.jsx)(r.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,j.jsx)(f.Z,{itemActions:[],columns:[{label:"Time",elementKey:"ptime",renderFunction:function(e){var t=new Date(e);return(0,p.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:p.ae,globalClass:t.sizeItem},{label:"Download",elementKey:"callStats.tx",renderFunction:p.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 c},V9:function(){return a},ci:function(){return o},x2:function(){return r}});var a=1006,o=1008,c=1011,r=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)),c=n(80184),r=(0,o.default)((0,c.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)),c=n(80184),r=(0,o.default)((0,c.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},97911:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),c=n(80184),r=(0,o.default)((0,c.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 S}});var a=n(4942),o=n(63366),c=n(87462),r=n(72791),l=n(90767),s=n(12065),i=n(97278),d=n(76189),u=n(80184),h=(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"),m=(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),b=n(47630),g=n(95159);function v(e){return(0,g.Z)("MuiCheckbox",e)}var k=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),Z=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,b.ZP)(i.Z,{shouldForwardProp:function(e){return(0,b.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,c.Z)({color:n.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,s.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(k.checked,", &.").concat(k.indeterminate),{color:n.palette[o.color].main}),(0,a.Z)(t,"&.".concat(k.disabled),{color:n.palette.action.disabled}),t))})),y=(0,u.jsx)(p,{}),w=(0,u.jsx)(h,{}),j=(0,u.jsx)(m,{}),S=r.forwardRef((function(e,t){var n,a,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),i=s.checkedIcon,d=void 0===i?y:i,h=s.color,p=void 0===h?"primary":h,m=s.icon,b=void 0===m?w:m,g=s.indeterminate,k=void 0!==g&&g,S=s.indeterminateIcon,I=void 0===S?j:S,z=s.inputProps,T=s.size,_=void 0===T?"medium":T,F=(0,o.Z)(s,Z),M=k?I:b,N=k?I:d,L=(0,c.Z)({},s,{color:p,indeterminate:k,size:_}),B=function(e){var t=e.classes,n=e.indeterminate,a=e.color,o={root:["root",n&&"indeterminate","color".concat((0,x.Z)(a))]},r=(0,l.Z)(o,v,t);return(0,c.Z)({},t,r)}(L);return(0,u.jsx)(C,(0,c.Z)({type:"checkbox",inputProps:(0,c.Z)({"data-indeterminate":k},z),icon:r.cloneElement(M,{fontSize:null!=(n=M.props.fontSize)?n:_}),checkedIcon:r.cloneElement(N,{fontSize:null!=(a=N.props.fontSize)?a:_}),ownerState:L,ref:t},F,{classes:B}))}))},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),c=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&c(e)&&"[object String]"==a(e)}},95087:function(e,t,n){var a;if("object"===typeof globalThis)a=globalThis;else try{a=n(94210)}catch(l){}finally{if(a||"undefined"===typeof window||(a=window),!a)throw new Error("Could not determine global this")}var o=a.WebSocket||a.MozWebSocket,c=n(51496);function r(e,t){return t?new o(e,t):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?r:null,version:c}},51496:function(e,t,n){e.exports=n(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=4209.875682c6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4209.875682c6.chunk.js.map b/portal-ui/build/static/js/4209.875682c6.chunk.js.map new file mode 100644 index 000000000..9a40929db --- /dev/null +++ b/portal-ui/build/static/js/4209.875682c6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4209.875682c6.chunk.js","mappings":"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","sources":["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"],"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, 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"],"names":["c","connector","connect","state","messages","trace","traceStarted","traceMessageReceived","traceResetMessages","setTraceStarted","withStyles","theme","createStyles","sizeItem","width","timeItem","startButton","textAlign","actionsTray","searchField","hrClass","tableStyles","margin","marginLeft","marginRight","tableWrapper","height","inlineCheckboxes","alignItems","flexFlow","checkBoxLabel","marginTop","fontSize","fontWeight","formBox","border","padding","marginBottom","traceCheckedIcon","unCheckedIcon","midColumnCheckboxes","display","separatorBar","paddingTop","containerForHeader","spacing","classes","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","Fragment","label","className","item","xs","sx","justifyContent","color","gap","md","checked","id","name","onChange","target","value","disabled","overrideLabelClasses","checkedIcon","tooltip","onClick","text","icon","variant","style","background","url","URL","window","location","toString","port","calls","wsProt","wsProtocol","protocol","W3CWebSocket","hostname","interval","onopen","console","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","props","styles","ownerState","root","indeterminate","capitalize","_extends","palette","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4219.c24a76ef.chunk.js b/portal-ui/build/static/js/4219.c24a76ef.chunk.js new file mode 100644 index 000000000..9c1483dbc --- /dev/null +++ b/portal-ui/build/static/js/4219.c24a76ef.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4219],{44219:function(e,t,n){n.r(t),n.d(t,{default:function(){return $}});var o=n(29439),i=n(1413),a=n(72791),s=n(11135),l=n(25787),r=n(23814),c=n(61889),u=n(45248),d=n(40986),f=n(32291),m=n(74794),p=n(28371),x=n(62666),v=n(26181),g=n.n(v),h=n(21435),y=n(10703),b=n(81207),j=n(90673),C=n(60364),P=n(75460),Z=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:P.oo,isPoolPageValid:P.LJ,setPoolStorageClasses:P.TU}),_=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.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,i=e.storageClasses,s=e.numberOfNodes,l=e.storageClass,r=e.volumeSize,d=e.volumesPerServer,f=e.setPoolField,m=e.setPoolStorageClasses,p=e.isPoolPageValid,x=(0,a.useState)({}),v=(0,o.Z)(x,2),C=v[0],P=v[1],A=1073741824*parseInt(r)*parseInt(d),_=A*parseInt(s);(0,a.useEffect)((function(){var e=[{fieldKey:"number_of_nodes",required:!0,value:s.toString(),customValidation:parseInt(s)<1||isNaN(parseInt(s)),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,Z.R)(e);p("setup",0===Object.keys(t).length),P(t)}),[p,s,r,d,l]),(0,a.useEffect)((function(){0===i.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,i,m,f]);var k=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)?k("numberOfNodes",t):isNaN(t)&&k("numberOfNodes",0)},label:"Number of Servers",value:s,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)?k("volumeSize",t):isNaN(t)&&k("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)?k("volumesPerServer",t):isNaN(t)&&k("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){k("storageClasses",e.target.value)},label:"Storage Class",value:l,options:i,disabled:i.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"})]})]})})]})}))),k=n(14917),w=n(88449),I=n(93433),E=n(84741),F=n(37516),z=(0,C.$j)((function(e){var t=e.tenants.addPool.fields.configuration;return{securityContextEnabled:t.securityContextEnabled,securityContext:t.securityContext}}),{setPoolField:P.oo,isPoolPageValid:P.LJ}),G=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,i.Z)((0,i.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,s=e.securityContextEnabled,l=e.isPoolPageValid,r=e.securityContext,u=(0,a.useState)({}),d=(0,o.Z)(u,2),f=d[0],m=d[1],p=(0,a.useCallback)((function(e,t){n("configuration",e,t)}),[n]);(0,a.useEffect)((function(){var e=[];s&&(e=[].concat((0,I.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,Z.R)(e);l("configure",0===Object.keys(t).length),m(t)}),[l,s,r]);var x=function(e){m((0,E.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)(F.Z,{value:"tenantConfig",id:"pool_configuration",name:"pool_configuration",checked:s,onChange:function(e){var t=e.target.checked;p("securityContextEnabled",t)},label:"Security Context"})}),s&&(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){p("securityContext",(0,i.Z)((0,i.Z)({},r),{},{runAsUser:e.target.value})),x("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){p("securityContext",(0,i.Z)((0,i.Z)({},r),{},{runAsGroup:e.target.value})),x("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){p("securityContext",(0,i.Z)((0,i.Z)({},r),{},{fsGroup:e.target.value})),x("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)(F.Z,{value:"securityContextRunAsNonRoot",id:"pool_securityContext_runAsNonRoot",name:"pool_securityContext_runAsNonRoot",checked:r.runAsNonRoot,onChange:function(e){var t=e.target.checked;p("securityContext",(0,i.Z)((0,i.Z)({},r),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})})]})}))),V=n(4942),T=n(13400),L=n(42649),O=n(83679),R=n(47919),K=n(51979),q=n(45660),M=(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:P.oo,isPoolPageValid:P.LJ,setPoolKeyValuePairs:P.bF,setPoolTolerationInfo:P.fu,addNewPoolToleration:P.hw,removePoolToleration:P.GF}),U=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.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))}))(M((function(e){var t=e.classes,n=e.podAffinity,s=e.nodeSelectorLabels,l=e.withPodAntiAffinity,r=e.setModalErrorSnackMessage,u=e.keyValuePairs,d=e.setPoolKeyValuePairs,f=e.setPoolField,m=e.isPoolPageValid,p=e.tolerations,x=e.setPoolTolerationInfo,v=e.removePoolToleration,g=e.addNewPoolToleration,C=(0,a.useState)({}),P=(0,o.Z)(C,2),N=P[0],A=P[1],_=(0,a.useState)(!0),k=(0,o.Z)(_,2),w=k[0],E=k[1],z=(0,a.useState)({}),G=(0,o.Z)(z,2),L=G[0],M=G[1],U=(0,a.useState)([]),D=(0,o.Z)(U,2),B=D[0],W=D[1],J=(0,a.useCallback)((function(e,t){f("affinity",e,t)}),[f]);(0,a.useEffect)((function(){w&&b.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){E(!1),M(e);var t=[];for(var n in e)t.push({label:n,value:n});W(t)})).catch((function(e){E(!1),r(e),M({})}))}),[r,w]),(0,a.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,a.useEffect)((function(){var e=[];if("nodeSelector"===n){var t=!0,o=s.split("&");1===o.length&&""===o[0]&&(t=!1),o.forEach((function(e,n){var i=e.split("=");2!==i.length&&(t=!1),n+1!==o.length&&(""!==i[0]&&""!==i[1]||(t=!1))})),e=[].concat((0,I.Z)(e),[{fieldKey:"labels",required:!0,value:s,customValidation:!t,customValidationMessage:"You need to add at least one label key-pair"}])}var i=(0,Z.R)(e);m("affinity",0===Object.keys(i).length),A(i)}),[m,n,s]);var $=function(e,t,n){var o=(0,i.Z)((0,i.Z)({},p[e]),{},(0,V.Z)({},t,n));x(e,o)};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-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===n&&(0,S.jsxs)(a.Fragment,{children:[(0,S.jsx)("br",{}),(0,S.jsx)(c.ZP,{item:!0,xs:12,children:(0,S.jsx)(F.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:[B.length>0&&(0,S.jsx)(j.Z,{onChange:function(e){var t=e.target.value,o=Object.assign([],u);o[n].key=e.target.value,o[n].value=L[t][0],d(o)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:B}),0===B.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:[B.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===B.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)(T.Z,{size:"small",onClick:function(){var e=Object.assign([],u);B.length>0?e.push({key:B[0].value,value:L[B[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)(T.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:p&&p.map((function(e,n){var o;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===(o=e.tolerationSeconds)||void 0===o?void 0:o.seconds)||0,onSecondsChange:function(e){$(n,"tolerationSeconds",{seconds:e})},index:n}),(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(T.Z,{size:"small",onClick:g,disabled:n!==p.length-1,children:(0,S.jsx)(R.Z,{})})}),(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(T.Z,{size:"small",onClick:function(){return v(n)},disabled:p.length<=1,children:(0,S.jsx)(K.Z,{})})})]},"affinity-keyVal-".concat(n.toString()))}))})]})})]})}))),D=n(76256),B=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:P.bU,setPoolField:P.oo,isPoolPageValid:P.LJ,setErrorSnackMessage:L.Ih,setTenantDetailsLoad:P.V2}),$=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.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,s=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,P=e.securityContextEnabled,Z=e.securityContext,N=e.volumesPerServer,A=e.setTenantDetailsLoad,I=e.setErrorSnackMessage,E=(0,a.useState)(!1),F=(0,o.Z)(E,2),z=F[0],V=F[1],T="/namespaces/".concat((null===t||void 0===t?void 0:t.namespace)||"","/tenants/").concat((null===t||void 0===t?void 0:t.name)||"","/pools");(0,a.useEffect)((function(){if(z&&t){var e=(0,u.en)(t.pools),n={};switch(h){case"default":n={affinity:(0,D.P)(t.name,e)};break;case"nodeSelector":n={affinity:(0,D.q)(y,j,t.name,e)}}var o=C.filter((function(e){return""!==e.key.trim()})),a=(0,i.Z)({name:e,servers:v,volumes_per_server:N,volume_configuration:{size:1073741824*g,storage_class_name:l,labels:null},tolerations:o,securityContext:P?Z:null},n);b.Z.invoke("POST","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.name,"/pools"),a).then((function(){V(!1),s(),A(!0),x.Z.push(T)})).catch((function(e){V(!1),I(e)}))}}),[z,T,s,A,h,y,v,Z,P,l,t,C,g,N,j,I]);var L={label:"Cancel",type:"other",enabled:!0,action:function(){s(),x.Z.push(T)}},O={label:"Create",type:"submit",enabled:!z&&""!==l&&W.every((function(e){return r.includes(e)})),action:function(){V(!0)}},R=[{label:"Setup",componentRender:(0,S.jsx)(_,{}),buttons:[L,O]},{label:"Configuration",advancedOnly:!0,componentRender:(0,S.jsx)(G,{}),buttons:[L,O]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,S.jsx)(U,{}),buttons:[L,O]}];return(0,S.jsx)(a.Fragment,{children:(0,S.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,S.jsx)(f.Z,{label:(0,S.jsx)(a.Fragment,{children:(0,S.jsx)(B.Z,{to:T,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)(k.Z,{icon:(0,S.jsx)(w.Z,{}),title:"Add New Pool to ".concat((null===t||void 0===t?void 0:t.name)||""),subTitle:(0,S.jsxs)(a.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))]})})}),z&&(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)(p.Z,{wizardSteps:R})})]})]})})})))}}]); +//# sourceMappingURL=4219.c24a76ef.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4219.c24a76ef.chunk.js.map b/portal-ui/build/static/js/4219.c24a76ef.chunk.js.map new file mode 100644 index 000000000..819b513fa --- /dev/null +++ b/portal-ui/build/static/js/4219.c24a76ef.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4219.c24a76ef.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolResources.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolConfiguration.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolPodPlacement.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/AddPool.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { 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 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-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
    \n
    \n {podAffinity === \"nodeSelector\" && (\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

    Labels

    \n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const 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 setErrorSnackMessage,\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 setErrorSnackMessage,\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":["connector","connect","state","setupFields","tenants","addPool","fields","setup","tenant","tenantDetails","tenantInfo","storageClasses","numberOfNodes","toString","storageClass","volumeSize","volumesPerServer","setPoolField","isPoolPageValid","setPoolStorageClasses","withStyles","theme","createStyles","buttonContainer","textAlign","bottomContainer","display","flexGrow","alignItems","margin","justifyContent","width","flexFlow","factorElements","marginLeft","sizeNumber","fontSize","fontWeight","sizeDescription","color","formFieldStyles","wizardCommon","classes","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","className","paperWrapper","headerElement","h3Section","descriptionText","Grid","item","xs","formFieldRow","InputBoxWrapper","id","onChange","e","intValue","target","validity","valid","pattern","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","SelectWrapper","options","niceBytes","configuration","securityContextEnabled","securityContext","configSectionItem","marginRight","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","maxWidth","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","container","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","borderBottom","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","icon","TenantsIcon","title","subTitle","total_size","LinearProgress","GenericWizard"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/426.0124a3b9.chunk.js b/portal-ui/build/static/js/426.0124a3b9.chunk.js deleted file mode 100644 index 0a1ab7bcd..000000000 --- a/portal-ui/build/static/js/426.0124a3b9.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[426],{426:function(e,n,t){t.r(n);var r=t(29439),o=t(1413),a=t(72791),s=t(60364),i=t(11135),c=t(25787),l=t(23814),u=t(61889),d=t(42649),Z=t(45248),f=t(81207),p=t(5450),h=t(80184),v=(0,s.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),{setErrorSnackMessage:d.Ih});n.default=(0,c.Z)((function(e){return(0,i.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({tableWrapper:{height:"450px"}},l.OR),l.qg),l.VX),(0,l.Bz)(e.spacing(4))))}))(v((function(e){var n=e.classes,t=e.match,o=e.loadingTenant,s=e.setErrorSnackMessage,i=(0,a.useState)([]),c=(0,r.Z)(i,2),l=c[0],d=c[1],v=(0,a.useState)(!0),x=(0,r.Z)(v,2),m=x[0],j=x[1],g=t.params.tenantName,b=t.params.tenantNamespace;return(0,a.useEffect)((function(){o&&j(!0)}),[o]),(0,a.useEffect)((function(){m&&f.Z.invoke("GET","/api/v1/namespaces/".concat(b,"/tenants/").concat(g,"/events")).then((function(e){for(var n=0;n *":{borderBottom:"unset"},cursor:"pointer"},children:[(0,g.jsx)(u.Z,{component:"th",scope:"row",onClick:function(){return i(!s)},children:n.event_type}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.reason}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.seen}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.message.length>=30?"".concat(n.message.substr(0,30),"..."):n.message}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:s?(0,g.jsx)(x.Z,{}):(0,g.jsx)(v.Z,{})})]}),(0,g.jsx)(Z.Z,{children:(0,g.jsx)(u.Z,{style:{paddingBottom:0,paddingTop:0},colSpan:5,children:(0,g.jsx)(p.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,g.jsx)(f.Z,{sx:{margin:1},children:(0,g.jsx)(h.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:n.message})})})})})]})};n.Z=(0,s.Z)((function(e){return(0,a.Z)({events:{"& .MuiTypography-root":{fontSize:14},"& .Mui-expanded":{"& .eventMessage":{display:"none"}}}})}))((function(e){e.classes;var n=e.events;return e.loading?(0,g.jsx)(i.Z,{}):(0,g.jsx)(m.Z,{component:j.Z,children:(0,g.jsxs)(c.Z,{"aria-label":"collapsible table",children:[(0,g.jsx)(d.Z,{children:(0,g.jsxs)(Z.Z,{children:[(0,g.jsx)(u.Z,{children:"Type"}),(0,g.jsx)(u.Z,{children:"Reason"}),(0,g.jsx)(u.Z,{children:"Age"}),(0,g.jsx)(u.Z,{children:"Message"}),(0,g.jsx)(u.Z,{})]})}),(0,g.jsx)(l.Z,{children:n.map((function(e){return(0,g.jsx)(b,{event:e},"".concat(e.event_type,"-").concat(e.seen))}))})]})})}))},85172:function(e,n,t){var r=t(95318);n.Z=void 0;var o=r(t(45649)),a=t(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"}),"KeyboardArrowDown");n.Z=s},95678:function(e,n,t){var r=t(95318);n.Z=void 0;var o=r(t(45649)),a=t(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"}),"KeyboardArrowUp");n.Z=s},39281:function(e,n,t){t.d(n,{Z:function(){return h}});var r=t(87462),o=t(63366),a=t(72791),s=t(28182),i=t(90767),c=t(93736),l=t(47630),u=t(95159);function d(e){return(0,u.Z)("MuiTableContainer",e)}(0,t(30208).Z)("MuiTableContainer",["root"]);var Z=t(80184),f=["className","component"],p=(0,l.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),h=a.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTableContainer"}),a=t.className,l=t.component,u=void 0===l?"div":l,h=(0,o.Z)(t,f),v=(0,r.Z)({},t,{component:u}),x=function(e){var n=e.classes;return(0,i.Z)({root:["root"]},d,n)}(v);return(0,Z.jsx)(p,(0,r.Z)({ref:n,as:u,className:(0,s.Z)(x.root,a),ownerState:v},h))}))},56890:function(e,n,t){t.d(n,{Z:function(){return m}});var r=t(87462),o=t(63366),a=t(72791),s=t(28182),i=t(90767),c=t(829),l=t(93736),u=t(47630),d=t(95159);function Z(e){return(0,d.Z)("MuiTableHead",e)}(0,t(30208).Z)("MuiTableHead",["root"]);var f=t(80184),p=["className","component"],h=(0,u.ZP)("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:function(e,n){return n.root}})({display:"table-header-group"}),v={variant:"head"},x="thead",m=a.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableHead"}),a=t.className,u=t.component,d=void 0===u?x:u,m=(0,o.Z)(t,p),j=(0,r.Z)({},t,{component:d}),g=function(e){var n=e.classes;return(0,i.Z)({root:["root"]},Z,n)}(j);return(0,f.jsx)(c.Z.Provider,{value:v,children:(0,f.jsx)(h,(0,r.Z)({as:d,className:(0,s.Z)(g.root,a),ref:n,role:d===x?null:"rowgroup",ownerState:j},m))})}))}}]); -//# sourceMappingURL=426.0124a3b9.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/426.e738683c.chunk.js b/portal-ui/build/static/js/426.e738683c.chunk.js new file mode 100644 index 000000000..d1000954c --- /dev/null +++ b/portal-ui/build/static/js/426.e738683c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[426],{426:function(e,n,t){t.r(n);var r=t(29439),o=t(1413),a=t(72791),s=t(60364),i=t(11135),c=t(25787),l=t(23814),u=t(61889),d=t(42649),Z=t(45248),f=t(81207),p=t(5450),h=t(80184),v=(0,s.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),{setErrorSnackMessage:d.Ih});n.default=(0,c.Z)((function(e){return(0,i.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({tableWrapper:{height:"450px"}},l.OR),l.qg),l.VX),(0,l.Bz)(e.spacing(4))))}))(v((function(e){var n=e.classes,t=e.match,o=e.loadingTenant,s=e.setErrorSnackMessage,i=(0,a.useState)([]),c=(0,r.Z)(i,2),l=c[0],d=c[1],v=(0,a.useState)(!0),x=(0,r.Z)(v,2),m=x[0],j=x[1],g=t.params.tenantName,b=t.params.tenantNamespace;return(0,a.useEffect)((function(){o&&j(!0)}),[o]),(0,a.useEffect)((function(){m&&f.Z.invoke("GET","/api/v1/namespaces/".concat(b,"/tenants/").concat(g,"/events")).then((function(e){for(var n=0;n *":{borderBottom:"unset"},cursor:"pointer"},children:[(0,g.jsx)(u.Z,{component:"th",scope:"row",onClick:function(){return i(!s)},children:n.event_type}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.reason}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.seen}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:n.message.length>=30?"".concat(n.message.slice(0,30),"..."):n.message}),(0,g.jsx)(u.Z,{onClick:function(){return i(!s)},children:s?(0,g.jsx)(x.Z,{}):(0,g.jsx)(v.Z,{})})]}),(0,g.jsx)(Z.Z,{children:(0,g.jsx)(u.Z,{style:{paddingBottom:0,paddingTop:0},colSpan:5,children:(0,g.jsx)(p.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,g.jsx)(f.Z,{sx:{margin:1},children:(0,g.jsx)(h.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:n.message})})})})})]})};n.Z=(0,s.Z)((function(e){return(0,a.Z)({events:{"& .MuiTypography-root":{fontSize:14},"& .Mui-expanded":{"& .eventMessage":{display:"none"}}}})}))((function(e){e.classes;var n=e.events;return e.loading?(0,g.jsx)(i.Z,{}):(0,g.jsx)(m.Z,{component:j.Z,children:(0,g.jsxs)(c.Z,{"aria-label":"collapsible table",children:[(0,g.jsx)(d.Z,{children:(0,g.jsxs)(Z.Z,{children:[(0,g.jsx)(u.Z,{children:"Type"}),(0,g.jsx)(u.Z,{children:"Reason"}),(0,g.jsx)(u.Z,{children:"Age"}),(0,g.jsx)(u.Z,{children:"Message"}),(0,g.jsx)(u.Z,{})]})}),(0,g.jsx)(l.Z,{children:n.map((function(e){return(0,g.jsx)(b,{event:e},"".concat(e.event_type,"-").concat(e.seen))}))})]})})}))},85172:function(e,n,t){var r=t(95318);n.Z=void 0;var o=r(t(45649)),a=t(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"}),"KeyboardArrowDown");n.Z=s},95678:function(e,n,t){var r=t(95318);n.Z=void 0;var o=r(t(45649)),a=t(80184),s=(0,o.default)((0,a.jsx)("path",{d:"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"}),"KeyboardArrowUp");n.Z=s},39281:function(e,n,t){t.d(n,{Z:function(){return h}});var r=t(87462),o=t(63366),a=t(72791),s=t(28182),i=t(90767),c=t(93736),l=t(47630),u=t(95159);function d(e){return(0,u.Z)("MuiTableContainer",e)}(0,t(30208).Z)("MuiTableContainer",["root"]);var Z=t(80184),f=["className","component"],p=(0,l.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),h=a.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTableContainer"}),a=t.className,l=t.component,u=void 0===l?"div":l,h=(0,o.Z)(t,f),v=(0,r.Z)({},t,{component:u}),x=function(e){var n=e.classes;return(0,i.Z)({root:["root"]},d,n)}(v);return(0,Z.jsx)(p,(0,r.Z)({ref:n,as:u,className:(0,s.Z)(x.root,a),ownerState:v},h))}))},56890:function(e,n,t){t.d(n,{Z:function(){return m}});var r=t(87462),o=t(63366),a=t(72791),s=t(28182),i=t(90767),c=t(829),l=t(93736),u=t(47630),d=t(95159);function Z(e){return(0,d.Z)("MuiTableHead",e)}(0,t(30208).Z)("MuiTableHead",["root"]);var f=t(80184),p=["className","component"],h=(0,u.ZP)("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:function(e,n){return n.root}})({display:"table-header-group"}),v={variant:"head"},x="thead",m=a.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableHead"}),a=t.className,u=t.component,d=void 0===u?x:u,m=(0,o.Z)(t,p),j=(0,r.Z)({},t,{component:d}),g=function(e){var n=e.classes;return(0,i.Z)({root:["root"]},Z,n)}(j);return(0,f.jsx)(c.Z.Provider,{value:v,children:(0,f.jsx)(h,(0,r.Z)({as:d,className:(0,s.Z)(g.root,a),ref:n,role:d===x?null:"rowgroup",ownerState:j},m))})}))}}]); +//# sourceMappingURL=426.e738683c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/426.0124a3b9.chunk.js.map b/portal-ui/build/static/js/426.e738683c.chunk.js.map similarity index 51% rename from portal-ui/build/static/js/426.0124a3b9.chunk.js.map rename to portal-ui/build/static/js/426.e738683c.chunk.js.map index 45cc8baab..a9a6e50a8 100644 --- a/portal-ui/build/static/js/426.0124a3b9.chunk.js.map +++ b/portal-ui/build/static/js/426.e738683c.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/426.0124a3b9.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/TenantEvents.tsx","screens/Console/Tenants/TenantDetails/events/EventsList.tsx","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { IEvent } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport { AppState } from \"../../../../store\";\nimport EventsList from \"./events/EventsList\";\n\ninterface ITenantEventsProps {\n classes: any;\n match: any;\n loadingTenant: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n tableWrapper: {\n height: \"450px\",\n },\n ...actionsTray,\n ...searchField,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantEvents = ({\n classes,\n match,\n loadingTenant,\n setErrorSnackMessage,\n}: ITenantEventsProps) => {\n const [events, setEvents] = useState([]);\n const [loading, setLoading] = useState(true);\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoading(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/events`\n )\n .then((res: IEvent[]) => {\n for (let i = 0; i < res.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n\n res[i].seen = niceDays((currentTime - res[i].last_seen).toString());\n }\n setEvents(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, tenantNamespace, tenantName, setErrorSnackMessage]);\n\n return (\n \n

    Events

    \n \n \n \n
    \n );\n};\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(TenantEvents));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { LinearProgress } from \"@mui/material\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Typography from \"@mui/material/Typography\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport Paper from \"@mui/material/Paper\";\n\ninterface IEventsListProps {\n classes: any;\n events: IEvent[];\n loading: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n events: {\n \"& .MuiTypography-root\": {\n fontSize: 14,\n },\n \"& .Mui-expanded\": {\n \"& .eventMessage\": {\n display: \"none\",\n },\n },\n },\n });\n\nconst Event = (props: { event: IEvent }) => {\n const { event } = props;\n const [open, setOpen] = React.useState(false);\n\n return (\n \n *\": { borderBottom: \"unset\" }, cursor: \"pointer\" }}>\n setOpen(!open)}>\n {event.event_type}\n \n setOpen(!open)}>{event.reason}\n setOpen(!open)}>{event.seen}\n setOpen(!open)}>\n {event.message.length >= 30\n ? `${event.message.substr(0, 30)}...`\n : event.message}\n \n setOpen(!open)}>\n {open ? : }\n \n \n \n \n \n \n \n {event.message}\n \n \n \n \n \n \n );\n};\n\nconst EventsList = ({ classes, events, loading }: IEventsListProps) => {\n if (loading) {\n return ;\n }\n return (\n \n \n \n \n Type\n Reason\n Age\n Message\n \n \n \n \n {events.map((event) => (\n \n ))}\n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(EventsList);\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.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\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.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\n\nexports.default = _default;","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;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","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 Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\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, getTableHeadUtilityClass, classes);\n};\n\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n\n const {\n className,\n component = defaultComponent\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(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.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 `TableRow`.\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 TableHead;"],"names":["connector","connect","state","loadingTenant","tenants","tenantDetails","setErrorSnackMessage","withStyles","theme","createStyles","tableWrapper","height","actionsTray","searchField","tableStyles","containerForHeader","spacing","classes","match","useState","events","setEvents","loading","setLoading","tenantName","params","tenantNamespace","useEffect","api","then","res","i","length","currentTime","Date","now","seen","niceDays","last_seen","toString","catch","err","className","sectionTitle","item","xs","Event","props","event","React","open","setOpen","sx","borderBottom","cursor","component","scope","onClick","event_type","reason","message","substr","style","paddingBottom","paddingTop","colSpan","in","timeout","unmountOnExit","margin","background","border","padding","fontSize","color","display","Paper","map","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getTableContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","TableContainerRoot","styled","name","overridesResolver","styles","root","width","overflowX","inProps","ref","useThemeProps","other","_objectWithoutPropertiesLoose","ownerState","_extends","composeClasses","useUtilityClasses","_jsx","as","clsx","getTableHeadUtilityClass","TableHeadRoot","tablelvl2","variant","defaultComponent","Tablelvl2Context","value","children","role"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/426.e738683c.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/TenantEvents.tsx","screens/Console/Tenants/TenantDetails/events/EventsList.tsx","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { IEvent } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport { AppState } from \"../../../../store\";\nimport EventsList from \"./events/EventsList\";\n\ninterface ITenantEventsProps {\n classes: any;\n match: any;\n loadingTenant: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n tableWrapper: {\n height: \"450px\",\n },\n ...actionsTray,\n ...searchField,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantEvents = ({\n classes,\n match,\n loadingTenant,\n setErrorSnackMessage,\n}: ITenantEventsProps) => {\n const [events, setEvents] = useState([]);\n const [loading, setLoading] = useState(true);\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoading(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/events`\n )\n .then((res: IEvent[]) => {\n for (let i = 0; i < res.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n\n res[i].seen = niceDays((currentTime - res[i].last_seen).toString());\n }\n setEvents(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, tenantNamespace, tenantName, setErrorSnackMessage]);\n\n return (\n \n

    Events

    \n \n \n \n
    \n );\n};\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(TenantEvents));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { LinearProgress } from \"@mui/material\";\nimport { IEvent } from \"../../ListTenants/types\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Typography from \"@mui/material/Typography\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport Paper from \"@mui/material/Paper\";\n\ninterface IEventsListProps {\n classes: any;\n events: IEvent[];\n loading: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n events: {\n \"& .MuiTypography-root\": {\n fontSize: 14,\n },\n \"& .Mui-expanded\": {\n \"& .eventMessage\": {\n display: \"none\",\n },\n },\n },\n });\n\nconst Event = (props: { event: IEvent }) => {\n const { event } = props;\n const [open, setOpen] = React.useState(false);\n\n return (\n \n *\": { borderBottom: \"unset\" }, cursor: \"pointer\" }}>\n setOpen(!open)}>\n {event.event_type}\n \n setOpen(!open)}>{event.reason}\n setOpen(!open)}>{event.seen}\n setOpen(!open)}>\n {event.message.length >= 30\n ? `${event.message.slice(0, 30)}...`\n : event.message}\n \n setOpen(!open)}>\n {open ? : }\n \n \n \n \n \n \n \n {event.message}\n \n \n \n \n \n \n );\n};\n\nconst EventsList = ({ classes, events, loading }: IEventsListProps) => {\n if (loading) {\n return ;\n }\n return (\n \n \n \n \n Type\n Reason\n Age\n Message\n \n \n \n \n {events.map((event) => (\n \n ))}\n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(EventsList);\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.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\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.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\n\nexports.default = _default;","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;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","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 Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\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, getTableHeadUtilityClass, classes);\n};\n\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n\n const {\n className,\n component = defaultComponent\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(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.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 `TableRow`.\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 TableHead;"],"names":["connector","connect","state","loadingTenant","tenants","tenantDetails","setErrorSnackMessage","withStyles","theme","createStyles","tableWrapper","height","actionsTray","searchField","tableStyles","containerForHeader","spacing","classes","match","useState","events","setEvents","loading","setLoading","tenantName","params","tenantNamespace","useEffect","api","then","res","i","length","currentTime","Date","now","seen","niceDays","last_seen","toString","catch","err","className","sectionTitle","item","xs","Event","props","event","React","open","setOpen","sx","borderBottom","cursor","component","scope","onClick","event_type","reason","message","slice","style","paddingBottom","paddingTop","colSpan","in","timeout","unmountOnExit","margin","background","border","padding","fontSize","color","display","Paper","map","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getTableContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","TableContainerRoot","styled","name","overridesResolver","styles","root","width","overflowX","inProps","ref","useThemeProps","other","_objectWithoutPropertiesLoose","ownerState","_extends","composeClasses","useUtilityClasses","_jsx","as","clsx","getTableHeadUtilityClass","TableHeadRoot","tablelvl2","variant","defaultComponent","Tablelvl2Context","value","children","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4335.50f86695.chunk.js b/portal-ui/build/static/js/4335.50f86695.chunk.js new file mode 100644 index 000000000..014aae63d --- /dev/null +++ b/portal-ui/build/static/js/4335.50f86695.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4335],{54639:function(e,a,l){l.d(a,{Z:function(){return x}});var t=l(29439),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),b=l(86711),h=l(11135),p=l(25787),f=l(23814),S=l(84570),g=l(22512),m=l(80184),x=(0,p.Z)((function(e){return(0,h.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},f.YI),f.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},f.bV),{},{inputLabel:(0,n.Z)((0,n.Z)({},f.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,n.Z)((0,n.Z)({},f.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,h=e.name,p=e.disabled,f=void 0!==p&&p,x=e.tooltip,Z=void 0===x?"":x,A=e.required,E=e.error,C=void 0===E?"":E,j=e.accept,w=void 0===j?"":j,T=e.value,y=void 0===T?"":T,U=(0,i.useState)(!1),N=(0,t.Z)(U,2),I=N[0],W=N[1];return(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==C?l.errorInField:""),children:[""!==a&&(0,m.jsxs)(u.Z,{htmlFor:s,className:"".concat(""!==C?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,m.jsxs)("span",{children:[a,A?"*":""]}),""!==Z&&(0,m.jsx)("div",{className:l.tooltipContainer,children:(0,m.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,m.jsx)("div",{className:l.tooltip,children:(0,m.jsx)(S.Z,{})})})})]}),I||""===y?(0,m.jsxs)("div",{className:l.textBoxContainer,children:[(0,m.jsx)("input",{type:"file",name:h,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:w,required:A,disabled:f,className:l.fileInputField}),""!==y&&(0,m.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){W(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,m.jsx)(b.Z,{})}),""!==C&&(0,m.jsx)(g.Z,{errorMessage:C})]}):(0,m.jsxs)("div",{className:l.fileReselect,children:[(0,m.jsx)("div",{className:l.valueString,children:y}),(0,m.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){W(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,m.jsx)(v.Z,{})})]})]})})}))},84335:function(e,a,l){l.r(a),l.d(a,{default:function(){return M}});var t=l(29439),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),b=l(36151),h=l(42649),p=l(23814),f=l(81207),S=l(21435),g=l(54639),m=l(32291),x=l(34345),Z=l(84669),A=l(74794),E=l(56087),C=l(30829),j=l(20068),w=l(13400),T=l(72455),y=l(84570),U=l(28182),N=l(66172),I=l(27391),W=[{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"}],k=[{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?W:"gcs"===e?O:"azure"===e?k:[]}(a),o=i.useState(""),u=(0,t.Z)(o,2),c=u[0],d=u[1];return(0,R.jsx)(N.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,T.Z)((function(e){return(0,c.Z)((0,n.Z)({},p.gM))})),z=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},p.YI),p.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)({},p.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,b=e.error,h=void 0===b?"":b,p=e.required,f=void 0!==p&&p,S=e.overlayId,g=e.overlayIcon,m=void 0===g?null:g,x=e.overlayObject,Z=void 0===x?null:x,A=e.extraInputProps,E=void 0===A?{}:A,T=e.overlayAction,N=e.noLabelMinWidth,I=void 0!==N&&N,W=e.classes,O=e.className,k=void 0===O?"":O,z=F(),L=(0,n.Z)((0,n.Z)({"data-index":v},E),{},{name:s,id:t,classes:z});return(0,R.jsx)(i.Fragment,{children:(0,R.jsxs)(u.ZP,{container:!0,className:(0,U.Z)(""!==k?k:"",""!==h?W.errorInField:W.inputBoxContainer),children:[""!==a&&(0,R.jsxs)(C.Z,{htmlFor:t,className:I?W.noMinWidthLabel:W.inputLabel,children:[(0,R.jsxs)("span",{children:[a,f?"*":""]}),""!==c&&(0,R.jsx)("div",{className:W.tooltipContainer,children:(0,R.jsx)(j.Z,{title:c,placement:"top-start",children:(0,R.jsx)("div",{className:W.tooltip,children:(0,R.jsx)(y.Z,{})})})})]}),(0,R.jsxs)("div",{className:W.textBoxContainer,children:[(0,R.jsx)(P,{type:r,inputProps:L,onChange:l}),m&&(0,R.jsx)("div",{className:"".concat(W.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,R.jsx)(w.Z,{onClick:T?function(){T()}:function(){return null},id:S,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:m})}),Z&&(0,R.jsx)("div",{className:"".concat(W.overlayAction," ").concat(""!==a?"withLabel":""),children:Z})]})]})})})),L={setErrorSnackMessage:h.Ih},B=(0,s.$j)(null,L),M=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},p.oO),p.Je),p.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}},p.bV))}))(B((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),h=d[0],p=d[1],C=(0,i.useState)(""),j=(0,t.Z)(C,2),w=j[0],T=j[1],y=(0,i.useState)(""),U=(0,t.Z)(y,2),N=U[0],I=U[1],W=(0,i.useState)(""),O=(0,t.Z)(W,2),k=O[0],P=O[1],F=(0,i.useState)(""),L=(0,t.Z)(F,2),B=L[0],M=L[1],H=(0,i.useState)(""),K=(0,t.Z)(H,2),V=K[0],q=K[1],G=(0,i.useState)(""),J=(0,t.Z)(G,2),D=J[0],Y=J[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)(""),be=(0,t.Z)(ve,2),he=be[0],pe=be[1],fe=(0,i.useState)(""),Se=(0,t.Z)(fe,2),ge=Se[0],me=Se[1],xe=(0,i.useState)(""),Ze=(0,t.Z)(xe,2),Ae=Ze[0],Ee=Ze[1],Ce=o()(s,"params.service","s3"),je=(0,i.useState)(!0),we=(0,t.Z)(je,2),Te=we[0],ye=we[1],Ue=(0,i.useState)(""),Ne=(0,t.Z)(Ue,2),Ie=Ne[0],We=Ne[1],Oe=(0,i.useCallback)((function(){return/^[A-Z0-9-_]+$/.test(w)?(We(""),!0):(We("Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores)."),!1)}),[w]);(0,i.useEffect)((function(){if(h){var e={},a={name:w,endpoint:N,bucket:k,prefix:B,region:V},t=Ce;switch("minio"===Ce&&(t="s3"),Ce){case"minio":case"s3":e={s3:(0,n.Z)((0,n.Z)({},a),{},{accesskey:$,secretkey:le,storageclass:D})};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:he,accountkey:ge})}}var i=(0,n.Z)({type:t},e);f.Z.invoke("POST","/api/v1/admin/tiers",i).then((function(){p(!1),r.push(E.gA.TIERS)})).catch((function(e){p(!1),l(e)}))}}),[$,ge,he,k,ce,N,r,w,B,V,h,le,l,D,Ce]),(0,i.useEffect)((function(){var e=!0;""===Ce&&(e=!1),""!==w&&Oe()||(e=!1),""===N&&(e=!1),""===k&&(e=!1),""===B&&(e=!1),""===V&&"minio"!==Ce&&(e=!1),"s3"!==Ce&&"minio"!==Ce||(""===$&&(e=!1),""===le&&(e=!1)),"gcs"===Ce&&""===ce&&(e=!1),"azure"===Ce&&(""===he&&(e=!1),""===ge&&(e=!1)),ye(e)}),[$,ge,he,k,ce,N,Te,w,B,V,le,D,Ce,Oe]),(0,i.useEffect)((function(){switch(Ce){case"gcs":I("https://storage.googleapis.com/"),Ee("Google Cloud");break;case"s3":I("https://s3.amazonaws.com"),Ee("Amazon S3");break;case"azure":I("http://blob.core.windows.net"),Ee("Azure");break;case"minio":I(""),Ee("MinIO")}}),[Ce]);var ke=x.Bh.find((function(e){return e.serviceName===Ce}));return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{label:(0,R.jsx)(i.Fragment,{children:(0,R.jsx)(Z.Z,{to:E.gA.TIERS_ADD,label:"Add Tier"})}),actions:(0,R.jsx)(i.Fragment,{})}),(0,R.jsx)(A.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(),p(!0)},children:[""!==Ce&&ke?(0,R.jsxs)(u.ZP,{item:!0,xs:12,sx:{display:"flex",alignItems:"center",justifyContent:"start",marginBottom:"20px"},children:[ke.logo?(0,R.jsx)(v.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:ke.logo}):null,(0,R.jsx)("div",{className:a.lambdaNotifTitle,children:(0,R.jsxs)("b",{children:[Ae||""," - Add Tier Configuration"]})})]},"icon-".concat(ke.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:""!==Ce&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(S.Z,{id:"name",name:"name",label:"Name",placeholder:"Enter Name (Eg. REMOTE-TIER)",value:w,onChange:function(e){T(e.target.value.toUpperCase())},error:Ie,required:!0}),(0,R.jsx)(S.Z,{id:"endpoint",name:"endpoint",label:"Endpoint",placeholder:"Enter Endpoint",value:N,onChange:function(e){I(e.target.value)},required:!0}),(Ce===x.b2||Ce===x.Pp)&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(S.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)(S.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:le,onChange:function(e){te(e.target.value)},required:!0})]}),Ce===x.f0&&(0,R.jsx)(g.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}),Ce===x.vB&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(S.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:he,onChange:function(e){pe(e.target.value)},required:!0}),(0,R.jsx)(S.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:ge,onChange:function(e){me(e.target.value)},required:!0})]}),(0,R.jsx)(S.Z,{id:"bucket",name:"bucket",label:"Bucket",placeholder:"Enter Bucket",value:k,onChange:function(e){P(e.target.value)},required:!0}),(0,R.jsx)(S.Z,{id:"prefix",name:"prefix",label:"Prefix",placeholder:"Enter Prefix",value:B,onChange:function(e){M(e.target.value)},required:!0}),(0,R.jsx)(z,{onChange:function(e){q(e)},required:"minio"!==Ce,label:"Region",id:"region",name:"region",type:Ce}),Ce===x.b2||Ce===x.Pp&&(0,R.jsx)(S.Z,{id:"storageClass",name:"storageClass",label:"Storage Class",placeholder:"Enter Storage Class",value:D,onChange:function(e){Y(e.target.value)}})]})}),(0,R.jsx)(u.ZP,{item:!0,xs:12,className:a.settingsButtonContainer,children:(0,R.jsx)(b.Z,{type:"submit",variant:"contained",color:"primary",disabled:h||!Te,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(93656),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.50f86695.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4335.50f86695.chunk.js.map b/portal-ui/build/static/js/4335.50f86695.chunk.js.map new file mode 100644 index 000000000..5c3daa882 --- /dev/null +++ b/portal-ui/build/static/js/4335.50f86695.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4335.50f86695.chunk.js","mappings":"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MAAO,mBAC7B,CAAEV,MAAO,UAAWU,MAAO,mBAC3B,CAAEV,MAAO,SAAUU,MAAO,wBAC1B,CAAEV,MAAO,YAAaU,MAAO,yBCiS/B,EA9SoC,CAClC,CACEV,MAAO,OACPU,MAAO,QAET,CACEV,MAAO,eACPU,MAAO,eAET,CACEV,MAAO,YACPU,MAAO,aAET,CACEV,MAAO,oBACPU,MAAO,oBAET,CACEV,MAAO,sBACPU,MAAO,qBAET,CACEV,MAAO,iBACPU,MAAO,iBAET,CACEV,MAAO,sBACPU,MAAO,sBAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,eACPU,MAAO,eAET,CACEV,MAAO,mBACPU,MAAO,mBAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,iBACPU,MAAO,iBAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,gBACPU,MAAO,gBAET,CACEV,MAAO,aACPU,MAAO,aAET,CACEV,MAAO,qBACPU,MAAO,kBAET,CACEV,MAAO,kBACPU,MAAO,iBAET,CACEV,MAAO,YACPU,MAAO,YAET,CACEV,MAAO,oBACPU,MAAO,iBAET,CACEV,MAAO,UACPU,MAAO,UAET,CACEV,MAAO,kBACPU,MAAO,eAET,CACEV,MAAO,YACPU,MAAO,WAET,CACEV,MAAO,oBACPU,MAAO,gBAET,CACEV,MAAO,iBACPU,MAAO,eAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,iBACPU,MAAO,iBAET,CACEV,MAAO,eACPU,MAAO,eAET,CACEV,MAAO,UACPU,MAAO,WAET,CACEV,MAAO,gBACPU,MAAO,gBAET,CACEV,MAAO,uBACPU,MAAO,sBAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,QACPU,MAAO,SAET,CACEV,MAAO,QACPU,MAAO,SAET,CACEV,MAAO,aACPU,MAAO,aAET,CACEV,MAAO,aACPU,MAAO,aAET,CACEV,MAAO,oBACPU,MAAO,mBAET,CACEV,MAAO,iBACPU,MAAO,gBAET,CACEV,MAAO,QACPU,MAAO,SAET,CACEV,MAAO,gBACPU,MAAO,gBAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,mBACPU,MAAO,kBAET,CACEV,MAAO,2BACPU,MAAO,uBAET,CACEV,MAAO,eACPU,MAAO,eAET,CACEV,MAAO,SACPU,MAAO,UAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,eACPU,MAAO,eAET,CACEV,MAAO,qBACPU,MAAO,oBAET,CACEV,MAAO,oBACPU,MAAO,mBAET,CACEV,MAAO,mBACPU,MAAO,kBAET,CACEV,MAAO,2BACPU,MAAO,uBAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,iBACPU,MAAO,iBAET,CACEV,MAAO,yBACPU,MAAO,sBAET,CACEV,MAAO,iBACPU,MAAO,iBAET,CACEV,MAAO,cACPU,MAAO,eAET,CACEV,MAAO,oBACPU,MAAO,oBAET,CACEV,MAAO,mBACPU,MAAO,mBAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,YACPU,MAAO,YAET,CACEV,MAAO,WACPU,MAAO,WAET,CACEV,MAAO,UACPU,MAAO,UAET,CACEV,MAAO,uBACPU,MAAO,OAET,CACEV,MAAO,iBACPU,MAAO,MAET,CACEV,MAAO,gBACPU,MAAO,gBAET,CACEV,MAAO,qBACPU,MAAO,oBAET,CACEV,MAAO,kBACPU,MAAO,iBAET,CACEV,MAAO,cACPU,MAAO,cAET,CACEV,MAAO,aACPU,MAAO,aAET,CACEV,MAAO,UACPU,MAAO,UAET,CACEV,MAAO,kBACPU,MAAO,eAET,CACEV,MAAO,YACPU,MAAO,WAET,CACEV,MAAO,oBACPU,MAAO,gBAET,CACEV,MAAO,YACPU,MAAO,Y,WC/JX,EAxHqB,SAAC,GAQf,IAPLmB,EAOI,EAPJA,KACA3B,EAMI,EANJA,SACA4D,EAKI,EALJA,WAMMC,EAvBW,SAAClC,GAClB,MAAa,OAATA,EACKmC,EAEI,QAATnC,EACKoC,EAEI,UAATpC,EACKqC,EAGF,GAYYC,CAAWtC,GAC9B,EAA0BuC,EAAAA,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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","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, { 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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","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","inputProps","regionList","s3Regions","gcsRegions","azRegions","getRegions","React","setValue","Autocomplete","sx","padding","fontSize","borderColor","borderWidth","freeSolo","selectOnFocus","handleHomeEndKeys","event","newValue","newVal","inputValue","onInputChange","getOptionLabel","option","options","filterOptions","opts","state","filterText","toLowerCase","filter","opt","includes","renderOption","props","Box","display","alignItems","borderBottom","cursor","width","renderInput","params","TextField","fullWidth","inputStyles","makeStyles","inputFieldStyles","flexGrow","position","minWidth","overlayAction","right","top","maxHeight","index","overlayId","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","inputClasses","container","clsx","inputBoxContainer","noMinWidthLabel","disableTouchRipple","mapDispatchToProps","setErrorSnackMessage","connector","connect","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","Fragment","PageHeader","BackLink","to","actions","PageLayout","noValidate","onSubmit","preventDefault","justifyContent","marginBottom","logo","height","targetTitle","gridTemplateColumns","sm","gridAutoFlow","gridRowGap","gridColumnGap","InputBoxWrapper","placeholder","toUpperCase","s3ServiceName","minioServiceName","gcsServiceName","FileSelector","encodedValue","azureServiceName","settingsButtonContainer","Button","variant","logoXs","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/4335.71899795.chunk.js b/portal-ui/build/static/js/4335.71899795.chunk.js deleted file mode 100644 index ae807e4cd..000000000 --- a/portal-ui/build/static/js/4335.71899795.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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(93656),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(29439),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(93656),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.71899795.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4335.71899795.chunk.js.map b/portal-ui/build/static/js/4335.71899795.chunk.js.map deleted file mode 100644 index eea5aa1e4..000000000 --- a/portal-ui/build/static/js/4335.71899795.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4335.71899795.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.2fa16d38.chunk.js b/portal-ui/build/static/js/4394.2fa16d38.chunk.js deleted file mode 100644 index d21710c4d..000000000 --- a/portal-ui/build/static/js/4394.2fa16d38.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","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(29439),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(93656),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.2fa16d38.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.2fa16d38.chunk.js.map b/portal-ui/build/static/js/4394.2fa16d38.chunk.js.map deleted file mode 100644 index 1bc1244a1..000000000 --- a/portal-ui/build/static/js/4394.2fa16d38.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4394.2fa16d38.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.4efb3ddd.chunk.js b/portal-ui/build/static/js/4394.4efb3ddd.chunk.js new file mode 100644 index 000000000..8e7f18476 --- /dev/null +++ b/portal-ui/build/static/js/4394.4efb3ddd.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4394],{23804:function(e,t,n){n(72791);var o=n(11135),r=n(25787),i=n(61889),a=n(80184);t.Z=(0,r.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,n=e.iconComponent,o=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:[n,o]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:t.helpText,children:r})]})})}))},81806:function(e,t,n){var o=n(1413),r=n(45987),i=(n(72791),n(11135)),a=n(25787),l=n(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,n=e.children,i=(0,r.Z)(e,s);return(0,l.jsx)("button",(0,o.Z)((0,o.Z)({},i),{},{className:t.root,children:n}))}))},59114:function(e,t,n){var o=n(4942),r=n(1413),i=(n(72791),n(63466)),a=n(74900),l=n(27391),s=n(25787),c=n(11135),d=n(23814),p=n(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,n=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,o.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:n,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,n){n.r(t);var o=n(29439),r=n(1413),i=n(72791),a=n(60364),l=n(11135),s=n(25787),c=n(40986),d=n(82460),p=n(61889),u=n(37267),m=n(15514),h=n(93656),f=n(92983),g=n(42649),y=n(23814),b=n(81207),S=n(28789),v=n(62666),T=n(23804),k=n(81806),x=n(74794),A=n(59114),E=n(40603),_=n(56087),Z=n(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,n=e.setErrorSnackMessage,r=(0,i.useState)([]),a=(0,o.Z)(r,2),l=a[0],s=a[1],g=(0,i.useState)(""),y=(0,o.Z)(g,2),j=y[0],N=y[1],L=(0,i.useState)(!1),C=(0,o.Z)(L,2),w=C[0],q=C[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){n(e),q(!1)}))}}),[w,n]),(0,i.useEffect)((function(){q(!0)}),[]);var I=l.filter((function(e){return""===j||e.service_name.indexOf(j)>=0}));return(0,Z.jsx)(i.Fragment,{children:(0,Z.jsxs)(x.Z,{children:[(0,Z.jsxs)(p.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,Z.jsx)(A.Z,{placeholder:"Search target",onChange:N,overrideClass:t.searchField,value:j}),(0,Z.jsxs)("div",{className:t.rightActionItems,children:[(0,Z.jsx)(E.Z,{tooltip:"Refresh List",text:"Refresh",variant:"outlined",color:"primary",icon:(0,Z.jsx)(S.default,{}),onClick:function(){q(!0)}}),(0,Z.jsx)(E.Z,{tooltip:"Add Notification Target",text:" Add Notification Target",variant:"contained",color:"primary",icon:(0,Z.jsx)(h.dt,{}),onClick:function(){v.Z.push(_.gA.NOTIFICATIONS_ENDPOINTS_ADD)}})]})]}),w&&(0,Z.jsx)(c.Z,{}),!w&&(0,Z.jsxs)(i.Fragment,{children:[l.length>0&&(0,Z.jsxs)(i.Fragment,{children:[(0,Z.jsx)(p.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,Z.jsx)(f.Z,{itemActions:[],columns:[{label:"Status",elementKey:"status",renderFunction:function(e){return(0,Z.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,Z.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,Z.jsx)(p.ZP,{item:!0,xs:12,children:(0,Z.jsx)(T.Z,{title:"Notification Endpoints",iconComponent:(0,Z.jsx)(h.cC,{}),help:(0,Z.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,Z.jsx)("br",{}),(0,Z.jsx)("br",{}),"You can learn more at our"," ",(0,Z.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,Z.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,Z.jsx)(p.ZP,{item:!0,xs:8,children:(0,Z.jsx)(T.Z,{title:"Notification Targets",iconComponent:(0,Z.jsx)(h.cC,{}),help:(0,Z.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,Z.jsx)("br",{}),(0,Z.jsx)("br",{}),"To get started,"," ",(0,Z.jsx)(k.Z,{onClick:function(){v.Z.push(_.gA.NOTIFICATIONS_ENDPOINTS_ADD)},children:"Add a Notification Target"}),"."]})})})})]})]})})})))},15514:function(e,t,n){n.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 S}});var o,r=n(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}))},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(y)),(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(y)),(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(y)),(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(y)),(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(y)),(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(y)),(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(y)),(0,r.Z)(o,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)),o)}}]); +//# sourceMappingURL=4394.4efb3ddd.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.4efb3ddd.chunk.js.map b/portal-ui/build/static/js/4394.4efb3ddd.chunk.js.map new file mode 100644 index 000000000..c8f4aa0d5 --- /dev/null +++ b/portal-ui/build/static/js/4394.4efb3ddd.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4394.4efb3ddd.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/AButton/AButton.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","padding","margin","textDecoration","cursor","color","palette","info","main","fontFamily","children","rest","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","variant","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","tooltip","text","icon","onClick","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.80189a53.chunk.js b/portal-ui/build/static/js/4414.453618d3.chunk.js similarity index 83% rename from portal-ui/build/static/js/4414.80189a53.chunk.js rename to portal-ui/build/static/js/4414.453618d3.chunk.js index 9891ccf24..6e1fc16e7 100644 --- a/portal-ui/build/static/js/4414.80189a53.chunk.js +++ b/portal-ui/build/static/js/4414.453618d3.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(29439),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(29439),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(29439),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(93656),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.80189a53.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(29439),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),c=n(61889),o=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],K=B[1];return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.fileInputField," ").concat(n.fieldBottom," ").concat(n.fieldContainer," ").concat(""!==N?n.errorInField:""),children:[""!==a&&(0,j.jsxs)(o.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(){K(!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(){K(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,j.jsx)(m.Z,{})})]})]})})}))},56028:function(e,a,n){var t=n(29439),s=n(1413),r=n(72791),i=n(60364),l=n(13400),c=n(55646),o=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)(o.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)(c.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(29439),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),c=n(60364),o=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(93656),b=n(80184),C=(0,c.$j)(null,{setModalErrorSnackMessage:x.zb});a.default=(0,d.Z)((function(e){return(0,o.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,c=e.setModalErrorSnackMessage,o=(0,r.useState)(!1),d=(0,t.Z)(o,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),K=E[0],R=E[1],z=(0,r.useState)(""),A=(0,t.Z)(z,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),c(e)})):c({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),R(a)},value:K})}),"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}}]); +//# sourceMappingURL=4414.453618d3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4414.453618d3.chunk.js.map b/portal-ui/build/static/js/4414.453618d3.chunk.js.map new file mode 100644 index 000000000..f59b89952 --- /dev/null +++ b/portal-ui/build/static/js/4414.453618d3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4414.453618d3.chunk.js","mappings":"yUAuLA,GAAeA,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kCACRC,EAAAA,IACAC,EAAAA,IAFO,IAGVC,YAAa,CACXC,SAAU,IACVC,WAAY,SACZC,SAAU,SACVC,aAAc,WACdC,UAAW,GAEbC,eAAgB,CACdC,OAAQ,SACR,4BAA6B,CAC3BC,SAAU,YAGXC,EAAAA,IAhBO,IAiBVC,YAAW,kBACNZ,EAAAA,GAAAA,YADK,IAERa,WAAY,WAEdC,kBAAiB,kBACZd,EAAAA,GAAAA,kBADW,IAEdG,SAAU,OACVY,OAAQ,oBACRC,YAAa,cA6GnB,EAzGqB,SAAC,GAYA,IAXpBC,EAWmB,EAXnBA,MACAC,EAUmB,EAVnBA,QACAC,EASmB,EATnBA,SACAC,EAQmB,EARnBA,GACAC,EAOmB,EAPnBA,KAOmB,IANnBC,SAAAA,OAMmB,aALnBC,QAAAA,OAKmB,MALT,GAKS,EAJnBC,EAImB,EAJnBA,SAImB,IAHnBC,MAAAA,OAGmB,MAHX,GAGW,MAFnBC,OAAAA,OAEmB,MAFV,GAEU,MADnBC,MAAAA,OACmB,MADX,GACW,EACnB,GAA4CC,EAAAA,EAAAA,WAAS,GAArD,eAAOC,EAAP,KAAyBC,EAAzB,KAEA,OACE,SAAC,WAAD,WACE,UAACC,EAAA,GAAD,CACEC,MAAI,EACJC,GAAI,GACJC,UAAS,UAAKhB,EAAQV,eAAb,YAA+BU,EAAQiB,YAAvC,YACPjB,EAAQkB,eADD,YAEK,KAAVX,EAAeP,EAAQmB,aAAe,IAL5C,UAOa,KAAVpB,IACC,UAACqB,EAAA,EAAD,CACEC,QAASnB,EACTc,UAAS,UAAe,KAAVT,EAAeP,EAAQsB,gBAAkB,GAA9C,YACPtB,EAAQN,YAHZ,WAME,4BACGK,EACAO,EAAW,IAAM,MAEP,KAAZD,IACC,gBAAKW,UAAWhB,EAAQuB,iBAAxB,UACE,SAACC,EAAA,EAAD,CAASC,MAAOpB,EAASqB,UAAU,YAAnC,UACE,gBAAKV,UAAWhB,EAAQK,QAAxB,UACE,SAACsB,EAAA,EAAD,aAQXhB,GAA8B,KAAVF,GACnB,iBAAKO,UAAWhB,EAAQJ,iBAAxB,WACE,kBACEgC,KAAK,OACLzB,KAAMA,EACNF,SAAU,SAAC4B,GACT,IAAMC,EAAWC,GAAAA,CAAIF,EAAG,uBAAwB,KCnHrC,SAACG,EAAUC,GACpC,IAAMC,EAAOF,EAAIG,OAAOC,MAAM,GACxBC,EAAS,IAAIC,WACnBD,EAAOE,cAAcL,GAErBG,EAAOG,OAAS,WAGd,IAAMC,EAAaJ,EAAOK,OAC1B,GAAID,EAAY,CACd,IAAME,EAAYF,EAAWG,WAAWC,MAAM,WAErB,IAArBF,EAAUG,QACZb,EAASU,EAAU,MDuGXI,CAAYlB,GAAG,SAACmB,GACd/C,EAAS+C,EAAMlB,OAGnBtB,OAAQA,EACRF,SAAUA,EACVF,SAAUA,EACVY,UAAWhB,EAAQV,iBAGV,KAAVmB,IACC,SAACwC,EAAA,EAAD,CACEC,MAAM,UACN,aAAW,iBACXC,UAAU,OACVC,QAAS,WACPxC,GAAgB,IAElByC,eAAe,EACfC,oBAAoB,EACpBC,KAAK,QATP,UAWE,SAACC,EAAA,EAAD,MAIO,KAAVjD,IAAgB,SAACkD,EAAA,EAAD,CAAYC,aAAcnD,QAG7C,iBAAKS,UAAWhB,EAAQ2D,aAAxB,WACE,gBAAK3C,UAAWhB,EAAQhB,YAAxB,SAAsCyB,KACtC,SAACwC,EAAA,EAAD,CACEC,MAAM,UACN,aAAW,iBACXC,UAAU,OACVC,QAAS,WACPxC,GAAgB,IAElByC,eAAe,EACfC,oBAAoB,EACpBC,KAAK,QATP,UAWE,SAACK,EAAA,EAAD,kB,wMEGRC,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAexF,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRuF,EAAAA,IADO,IAEVC,QAAS,CACPC,QAAS,GACTC,cAAe,GAEjBC,iBAAkB,CAChBC,MAAO,OACPxF,SAAU,MAETyF,EAAAA,OA4HP,CAAkCb,GAzHb,SAAC,GAWF,IAVlBc,EAUiB,EAVjBA,QACAC,EASiB,EATjBA,UACAnD,EAQiB,EARjBA,MACAoD,EAOiB,EAPjBA,SACA7E,EAMiB,EANjBA,QAMiB,IALjB8E,UAAAA,OAKiB,SAJjBd,EAIiB,EAJjBA,kBACAe,EAGiB,EAHjBA,iBACAZ,EAEiB,EAFjBA,qBAEiB,IADjBa,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCtE,EAAAA,EAAAA,WAAkB,GAA1D,eAAOuE,EAAP,KAAqBC,EAArB,MAEAC,EAAAA,EAAAA,YAAU,WACRhB,EAAqB,MACpB,CAACA,KAEJgB,EAAAA,EAAAA,YAAU,WACR,GAAInB,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBoB,QAEpB,YADAF,GAAgB,GAIa,UAA3BlB,EAAkBpC,MACpBsD,GAAgB,MAGnB,CAAClB,IAEJ,IAKMqB,EAAaP,EACf,CACE9E,QAAS,CACPsF,MAAOtF,EAAQwE,mBAGnB,CAAEvF,SAAU,KAAesG,WAAW,GAEtCH,EAAU,GAYd,OAVIpB,IACFoB,EAAUpB,EAAkBwB,kBAEa,KAAvCxB,EAAkBwB,kBAClBxB,EAAkBwB,iBAAiB1C,OAAS,KAE5CsC,EAAUpB,EAAkBoB,WAK9B,UAAC,KAAD,gBACEK,KAAMb,EACN5E,QAASA,GACLqF,GAHN,IAIEK,OAAQ,QACRf,QAAS,SAACgB,EAAOC,GACA,kBAAXA,GACFjB,KAGJ3D,UAAWhB,EAAQ6F,KAVrB,WAYE,UAAC,IAAD,CAAa7E,UAAWhB,EAAQyB,MAAhC,WACE,iBAAKT,UAAWhB,EAAQ8F,UAAxB,UACGd,EADH,IACevD,MAEf,gBAAKT,UAAWhB,EAAQ+F,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACX7F,GAAI,QACJc,UAAWhB,EAAQgG,YACnB5C,QAASuB,EACTtB,eAAa,EACbE,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAW0C,SAAS,KACpB,SAAC,IAAD,CACER,KAAMR,EACNjE,UAAWhB,EAAQkG,cACnBvB,QAAS,WA3DbO,GAAgB,GAChBf,EAAqB,KA6DjBiB,QAASA,EACTe,aAAc,CACZnF,UAAU,GAAD,OAAKhB,EAAQoG,SAAb,YACPpC,GAAgD,UAA3BA,EAAkBpC,KACnC5B,EAAQqG,cACR,KAGRC,iBACEtC,GAAgD,UAA3BA,EAAkBpC,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAeZ,UAAW+D,EAAmB,GAAK/E,EAAQqE,QAA1D,SACGQ,a,+OCsEHhB,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9ByC,0BAAAA,EAAAA,KAGF,WAAe5H,EAAAA,EAAAA,IApMA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX2H,gBAAiB,CACfC,UAAW,UAEVC,EAAAA,IACAC,EAAAA,OA8LP,CAAkC9C,GA3LC,SAAC,GAMN,IAL5B4B,EAK2B,EAL3BA,KACAmB,EAI2B,EAJ3BA,qBACA5G,EAG2B,EAH3BA,QACA6G,EAE2B,EAF3BA,SACAN,EAC2B,EAD3BA,0BAEA,GAAsC7F,EAAAA,EAAAA,WAAkB,GAAxD,eAAOoG,EAAP,KAAoBC,EAApB,KACA,GAAkCrG,EAAAA,EAAAA,UAAiB,IAAnD,eAAOsG,EAAP,KAAkBC,EAAlB,KACA,GAAkCvG,EAAAA,EAAAA,UAAiB,IAAnD,eAAOwG,EAAP,KAAkBC,EAAlB,KAEA,GAA0BzG,EAAAA,EAAAA,UAAiB,IAA3C,eAAO0G,EAAP,KAAcC,EAAd,KACA,GAAwC3G,EAAAA,EAAAA,UAAiB,IAAzD,eAAO4G,EAAP,KAAqBC,EAArB,KAEA,GAAsC7G,EAAAA,EAAAA,UAAiB,IAAvD,eAAO8G,EAAP,KAAoBC,EAApB,KACA,GAAoC/G,EAAAA,EAAAA,UAAiB,IAArD,eAAOgH,EAAP,KAAmBC,EAAnB,KAGA,GAAsCjH,EAAAA,EAAAA,WAAkB,GAAxD,eAAOkH,EAAP,KAAoBC,EAApB,KAEMjG,EAAOG,GAAAA,CAAI8E,EAAU,OAAQ,IAC7B1G,EAAO4B,GAAAA,CAAI8E,EAAD,UAAcjF,EAAd,SAA2B,KAE3CuD,EAAAA,EAAAA,YAAU,WACR,IAAI2C,GAAQ,EAEC,OAATlG,GAA0B,UAATA,EACC,KAAhB4F,GAAqC,KAAfE,IACxBI,GAAQ,GAEQ,QAATlG,GACY,KAAjB0F,IACFQ,GAAQ,GAGZD,EAAeC,KACd,CAACJ,EAAYF,EAAaF,EAAc1F,IAkC3C,OACE,SAAC,IAAD,CACEgD,UAAWa,EACXT,WAAW,SAAC,KAAD,IACXL,QAAS,WACPiC,GAAqB,IAEvBnF,MAAK,+BAA0BG,EAA1B,cAAoCzB,GAN3C,UAQE,iBACE4H,YAAU,EACVC,aAAa,MACbC,SAAU,SAACpG,GACTA,EAAEqG,iBACFnB,GAAe,GA9CL,WAChB,IAAIoB,EAAQ,GAEC,OAATvG,GAA0B,UAATA,EACnBuG,EAAQ,CACNC,WAAYZ,EACZa,WAAYX,GAEI,QAAT9F,IACTuG,EAAQ,CACNf,MAAOE,IAGE,KAATnH,EACFmI,EAAAA,EAAAA,OACU,MADV,8BACwC1G,EADxC,YACgDzB,EADhD,gBACoEgI,GACjEI,MAAK,WACJxB,GAAe,GACfH,GAAqB,MAEtB4B,OAAM,SAACC,GACN1B,GAAe,GACfR,EAA0BkC,MAG9BlC,EAA0B,CACxB7C,aAAc,iDACdgF,cAAe,KAoBbC,IANJ,UASE,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,UAAC,KAAD,CAAM9H,MAAI,EAACC,GAAI,GAAf,UACY,OAATa,IACC,UAAC,EAAAiH,SAAD,YACE,gBAAK7H,UAAWhB,EAAQ8I,aAAxB,UACE,SAAC,IAAD,CACE5I,GAAG,YACHC,KAAK,YACLJ,MAAM,aACNgJ,YAAY,mBACZtI,MAAOuG,EACP/G,SAAU,SAAC4B,GACToF,EAAapF,EAAEM,OAAO1B,aAI5B,gBAAKO,UAAWhB,EAAQ8I,aAAxB,UACE,SAAC,IAAD,CACE5I,GAAG,YACHC,KAAK,YACLJ,MAAM,aACNgJ,YAAY,mBACZtI,MAAOyG,EACPjH,SAAU,SAAC4B,GACTsF,EAAatF,EAAEM,OAAO1B,eAMtB,QAATmB,IACC,SAAC,EAAAiH,SAAD,WACE,SAAC,IAAD,CACErI,OAAO,QACPN,GAAG,QACHH,MAAM,cACNI,KAAK,QACLF,SAAU,SAAC+I,EAAclH,GACvByF,EAAgByB,GAChB3B,EAASvF,IAEXrB,MAAO2G,MAIH,UAATxF,IACC,UAAC,EAAAiH,SAAD,YACE,gBAAK7H,UAAWhB,EAAQ8I,aAAxB,UACE,SAAC,IAAD,CACE5I,GAAG,cACHC,KAAK,cACLJ,MAAM,eACNgJ,YAAY,qBACZtI,MAAO+G,EACPvH,SAAU,SAAC4B,GACT4F,EAAe5F,EAAEM,OAAO1B,aAI9B,gBAAKO,UAAWhB,EAAQ8I,aAAxB,UACE,SAAC,IAAD,CACE5I,GAAG,aACHC,KAAK,aACLJ,MAAM,cACNgJ,YAAY,oBACZtI,MAAOiH,EACPzH,SAAU,SAAC4B,GACT8F,EAAc9F,EAAEM,OAAO1B,mBAOnC,SAAC,KAAD,CAAMK,MAAI,EAACC,GAAI,GAAIC,UAAWhB,EAAQwG,gBAAtC,UACE,SAAC,IAAD,CACE5E,KAAK,SACLqH,QAAQ,YACR/F,MAAM,UACN9C,SAAU0G,IAAgBc,EAJ5B,oBASDd,IACC,SAAC,KAAD,CAAMhG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,kB,iFCjMd,KAAepC,EAAAA,EAAAA,IA5BA,SAACC,GAAD,aACbC,EAAAA,EAAAA,GAAa,CACXqK,WAAY,CACVhG,OAAO,UAAAtE,EAAMuK,eAAN,eAAe5I,MAAM6I,OAAQ,eAyB1C,EAfmB,SAAC,GAIK,IAHvBpJ,EAGsB,EAHtBA,QACA0D,EAEsB,EAFtBA,aAEsB,IADtB2F,UAAAA,OACsB,SACtB,OACE,UAAC,WAAD,WACGA,IAAa,mBACd,SAAC,IAAD,CAAYlG,UAAU,IAAI8F,QAAQ,QAAQjI,UAAWhB,EAAQkJ,WAA7D,SACGxF,W,0BC3BL4F,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,iQACD,cAEJN,EAAQ,EAAUG,G,0BCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,oLACD,UAEJN,EAAQ,EAAUG","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"],"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;"],"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/4414.80189a53.chunk.js.map b/portal-ui/build/static/js/4414.80189a53.chunk.js.map deleted file mode 100644 index 0ee53509d..000000000 --- a/portal-ui/build/static/js/4414.80189a53.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4414.80189a53.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/4455.b20c0c9c.chunk.js b/portal-ui/build/static/js/4455.b20c0c9c.chunk.js new file mode 100644 index 000000000..d8d4ca5d1 --- /dev/null +++ b/portal-ui/build/static/js/4455.b20c0c9c.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4455],{76272:function(e,t,n){"use strict";n.r(t);var o=n(29439),c=n(1413),r=n(72791),a=n(4834),i=n(61889),s=n(68096),l=n(58406),u=n(23786),d=n(27391),f=n(36151),h=n(95087),p=n(60364),m=n(11135),b=n(25787),v=n(21352),x=n(45248),g=n(26824),Z=n(23814),w=n(92983),k=n(32291),j=n(81207),y=n(74794),S=n(80184),C=(0,b.Z)((function(e){return(0,m.Z)({root:{lineHeight:"50px","label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(a.ZP),z=(0,p.$j)((function(e){return{messages:e.watch.messages}}),{watchMessageReceived:v.pG,watchResetMessages:v.uE});t.default=z((0,b.Z)((function(e){return(0,m.Z)((0,c.Z)((0,c.Z)((0,c.Z)((0,c.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,c=e.watchResetMessages,a=e.messages,p=(0,r.useState)(!1),m=(0,o.Z)(p,2),b=m[0],v=m[1],Z=(0,r.useState)("Select Bucket"),z=(0,o.Z)(Z,2),P=z[0],T=z[1],M=(0,r.useState)(""),_=(0,o.Z)(M,2),E=_[0],H=_[1],N=(0,r.useState)(""),I=(0,o.Z)(N,2),O=I[0],F=I[1],R=(0,r.useState)([]),V=(0,o.Z)(R,2),B=V[0],L=V[1];(0,r.useEffect)((function(){j.Z.invoke("GET","/api/v1/buckets").then((function(e){var t=[];null!==e.buckets&&(t=e.buckets),L(t)})).catch((function(e){console.log(e)}))}),[]),(0,r.useEffect)((function(){if(c(),b&&B.some((function(e){return e.name===P}))){var e=new URL(window.location.toString()),t=e.port,o=(0,g.x2)(e.protocol),r=new h.w3cwebsocket("".concat(o,"://").concat(e.hostname,":").concat(t,"/ws/watch/").concat(P,"?prefix=").concat(E,"&suffix=").concat(O)),a=null;if(null!==r)return r.onopen=function(){console.log("WebSocket Client Connected"),r.send("ok"),a=setInterval((function(){r.send("ok")}),1e4)},r.onmessage=function(e){var t=JSON.parse(e.data.toString());t.Time=new Date(t.Time.toString()),t.key=Math.random(),n(t)},r.onclose=function(){clearInterval(a),console.log("connection closed by server"),v(!1)},function(){r.close(1e3),clearInterval(a),console.log("closing websockets")}}else v(!1)}),[n,b,B,P,E,O,c]);var G=B.map((function(e){return{label:e.name,value:e.name}}));return(0,S.jsxs)(r.Fragment,{children:[(0,S.jsx)(k.Z,{label:"Watch"}),(0,S.jsx)(y.Z,{children:(0,S.jsxs)(i.ZP,{item:!0,xs:12,children:[(0,S.jsxs)(i.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:P,onChange:function(e){T(e.target.value)},className:t.searchField,disabled:b,input:(0,S.jsx)(C,{}),children:[(0,S.jsx)(u.Z,{value:P,disabled:!0,children:"Select Bucket"},"select-bucket-name-default"),G.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){H(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 v(!0)},children:"Start"})]}),(0,S.jsx)("div",{className:t.tableBlock,children:(0,S.jsx)(w.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:a,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 r},V9:function(){return o},ci:function(){return c},x2:function(){return a}});var o=1006,c=1008,r=1011,a=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 c=o(n(45649)),r=n(80184),a=(0,c.default)((0,r.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 c=o(n(45649)),r=n(80184),a=(0,c.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var c=o(n(45649)),r=n(80184),a=(0,c.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var o=n(4942),c=n(63366),r=n(87462),a=n(72791),i=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"),p=(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"),m=n(14036),b=n(93736),v=n(47630),x=n(95159);function g(e){return(0,x.Z)("MuiCheckbox",e)}var Z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),w=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],k=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.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,c=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!c.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===c.color?n.palette.action.active:n.palette[c.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==c.color&&(t={},(0,o.Z)(t,"&.".concat(Z.checked,", &.").concat(Z.indeterminate),{color:n.palette[c.color].main}),(0,o.Z)(t,"&.".concat(Z.disabled),{color:n.palette.action.disabled}),t))})),j=(0,d.jsx)(h,{}),y=(0,d.jsx)(f,{}),S=(0,d.jsx)(p,{}),C=a.forwardRef((function(e,t){var n,o,s=(0,b.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,u=void 0===l?j:l,f=s.color,h=void 0===f?"primary":f,p=s.icon,v=void 0===p?y:p,x=s.indeterminate,Z=void 0!==x&&x,C=s.indeterminateIcon,z=void 0===C?S:C,P=s.inputProps,T=s.size,M=void 0===T?"medium":T,_=(0,c.Z)(s,w),E=Z?z:v,H=Z?z:u,N=(0,r.Z)({},s,{color:h,indeterminate:Z,size:M}),I=function(e){var t=e.classes,n=e.indeterminate,o=e.color,c={root:["root",n&&"indeterminate","color".concat((0,m.Z)(o))]},a=(0,i.Z)(c,g,t);return(0,r.Z)({},t,a)}(N);return(0,d.jsx)(k,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":Z},P),icon:a.cloneElement(E,{fontSize:null!=(n=E.props.fontSize)?n:M}),checkedIcon:a.cloneElement(H,{fontSize:null!=(o=H.props.fontSize)?o:M}),ownerState:N,ref:t},_,{classes:I}))}))},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),c=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!c(e)&&r(e)&&"[object String]"==o(e)}},95087:function(e,t,n){var o;if("object"===typeof globalThis)o=globalThis;else try{o=n(94210)}catch(i){}finally{if(o||"undefined"===typeof window||(o=window),!o)throw new Error("Could not determine global this")}var c=o.WebSocket||o.MozWebSocket,r=n(51496);function a(e,t){return t?new c(e,t):new c(e)}c&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(a,e,{get:function(){return c[e]}})})),e.exports={w3cwebsocket:c?a:null,version:r}},51496:function(e,t,n){e.exports=n(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=4455.b20c0c9c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4455.b20c0c9c.chunk.js.map b/portal-ui/build/static/js/4455.b20c0c9c.chunk.js.map new file mode 100644 index 000000000..2c51cbc32 --- /dev/null +++ b/portal-ui/build/static/js/4455.b20c0c9c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4455.b20c0c9c.chunk.js","mappings":"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","sources":["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"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { 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"],"names":["SelectStyled","withStyles","theme","createStyles","root","lineHeight","marginTop","spacing","backgroundColor","input","height","fontSize","InputBase","connector","connect","state","messages","watch","watchMessageReceived","watchResetMessages","searchPrefix","flexGrow","marginLeft","watchTableHeight","bucketField","minWidth","tableStyles","actionsTray","searchField","containerForHeader","classes","useState","start","setStart","bucketName","setBucketName","prefix","setPrefix","suffix","setSuffix","bucketList","setBucketList","useEffect","api","then","res","buckets","catch","err","console","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","label","value","item","xs","className","variant","id","onChange","e","target","disabled","option","InputProps","disableUnderline","type","color","onClick","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","palette","text","secondary","disableRipple","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4509.0cb642e8.chunk.js b/portal-ui/build/static/js/4509.0cb642e8.chunk.js new file mode 100644 index 000000000..35e84a6a3 --- /dev/null +++ b/portal-ui/build/static/js/4509.0cb642e8.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4509],{26759:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");e.Z=a},70366:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");e.Z=a},13901:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z"}),"CallToAction");e.Z=a},31292:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"}),"Code");e.Z=a},61809:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z"}),"Compress");e.Z=a},67055:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"}),"FindReplace");e.Z=a},98095:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"}),"LocalHospital");e.Z=a},61248:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"}),"LockOpen");e.Z=a},50521:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"}),"Login");e.Z=a},36909:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"}),"PendingActions");e.Z=a},87569:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.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-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"}),"Public");e.Z=a},59314:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"}),"SdStorage");e.Z=a},97911:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");e.Z=a},21141:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var i=o(n(45649)),r=n(80184),a=(0,i.default)((0,r.jsx)("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),"VpnKey");e.Z=a},94454:function(t,e,n){"use strict";n.d(e,{Z:function(){return k}});var o=n(4942),i=n(63366),r=n(87462),a=n(72791),c=n(90767),s=n(12065),d=n(97278),v=n(76189),l=n(80184),h=(0,v.Z)((0,l.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"),u=(0,v.Z)((0,l.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"),p=(0,v.Z)((0,l.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),f=n(93736),Z=n(47630),z=n(95159);function x(t){return(0,z.Z)("MuiCheckbox",t)}var b=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),H=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],V=(0,Z.ZP)(d.Z,{shouldForwardProp:function(t){return(0,Z.FO)(t)||"classes"===t},name:"MuiCheckbox",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,n.indeterminate&&e.indeterminate,"default"!==n.color&&e["color".concat((0,m.Z)(n.color))]]}})((function(t){var e,n=t.theme,i=t.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===i.color?n.palette.action.active:n.palette[i.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(e={},(0,o.Z)(e,"&.".concat(b.checked,", &.").concat(b.indeterminate),{color:n.palette[i.color].main}),(0,o.Z)(e,"&.".concat(b.disabled),{color:n.palette.action.disabled}),e))})),j=(0,l.jsx)(u,{}),M=(0,l.jsx)(h,{}),L=(0,l.jsx)(p,{}),k=a.forwardRef((function(t,e){var n,o,s=(0,f.Z)({props:t,name:"MuiCheckbox"}),d=s.checkedIcon,v=void 0===d?j:d,h=s.color,u=void 0===h?"primary":h,p=s.icon,Z=void 0===p?M:p,z=s.indeterminate,b=void 0!==z&&z,k=s.indeterminateIcon,C=void 0===k?L:k,S=s.inputProps,P=s.size,g=void 0===P?"medium":P,w=(0,i.Z)(s,H),y=b?C:Z,E=b?C:v,I=(0,r.Z)({},s,{color:u,indeterminate:b,size:g}),R=function(t){var e=t.classes,n=t.indeterminate,o=t.color,i={root:["root",n&&"indeterminate","color".concat((0,m.Z)(o))]},a=(0,c.Z)(i,x,e);return(0,r.Z)({},e,a)}(I);return(0,l.jsx)(V,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":b},S),icon:a.cloneElement(y,{fontSize:null!=(n=y.props.fontSize)?n:g}),checkedIcon:a.cloneElement(E,{fontSize:null!=(o=E.props.fontSize)?o:g}),ownerState:I,ref:e},w,{classes:R}))}))},63466:function(t,e,n){"use strict";n.d(e,{Z:function(){return V}});var o=n(4942),i=n(63366),r=n(87462),a=n(72791),c=n(28182),s=n(90767),d=n(14036),v=n(20890),l=n(93840),h=n(52930),u=n(47630),p=n(95159);function m(t){return(0,p.Z)("MuiInputAdornment",t)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),z=n(93736),x=n(80184),b=["children","className","component","disablePointerEvents","disableTypography","position","variant"],H=(0,u.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,e["position".concat((0,d.Z)(n.position))],!0===n.disablePointerEvents&&e.disablePointerEvents,e[n.variant]]}})((function(t){var e=t.theme,n=t.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:e.palette.action.active},"filled"===n.variant&&(0,o.Z)({},"&.".concat(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),V=a.forwardRef((function(t,e){var n=(0,z.Z)({props:t,name:"MuiInputAdornment"}),o=n.children,u=n.className,p=n.component,Z=void 0===p?"div":p,V=n.disablePointerEvents,j=void 0!==V&&V,M=n.disableTypography,L=void 0!==M&&M,k=n.position,C=n.variant,S=(0,i.Z)(n,b),P=(0,h.Z)()||{},g=C;C&&P.variant,P&&!g&&(g=P.variant);var w=(0,r.Z)({},n,{hiddenLabel:P.hiddenLabel,size:P.size,disablePointerEvents:j,position:k,variant:g}),y=function(t){var e=t.classes,n=t.disablePointerEvents,o=t.hiddenLabel,i=t.position,r=t.size,a=t.variant,c={root:["root",n&&"disablePointerEvents",i&&"position".concat((0,d.Z)(i)),a,o&&"hiddenLabel",r&&"size".concat((0,d.Z)(r))]};return(0,s.Z)(c,m,e)}(w);return(0,x.jsx)(l.Z.Provider,{value:null,children:(0,x.jsx)(H,(0,r.Z)({as:Z,ownerState:w,className:(0,c.Z)(y.root,u),ref:e},S,{children:"string"!==typeof o||L?(0,x.jsxs)(a.Fragment,{children:["start"===k?f||(f=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(v.Z,{color:"text.secondary",children:o})}))})}))},26769:function(t,e,n){var o=n(39066),i=n(93629),r=n(43141);t.exports=function(t){return"string"==typeof t||!i(t)&&r(t)&&"[object String]"==o(t)}}}]); +//# sourceMappingURL=4509.0cb642e8.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4509.0cb642e8.chunk.js.map b/portal-ui/build/static/js/4509.0cb642e8.chunk.js.map new file mode 100644 index 000000000..0a631fde0 --- /dev/null +++ b/portal-ui/build/static/js/4509.0cb642e8.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4509.0cb642e8.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/CallToAction.js","../node_modules/@mui/icons-material/Code.js","../node_modules/@mui/icons-material/Compress.js","../node_modules/@mui/icons-material/FindReplace.js","../node_modules/@mui/icons-material/LocalHospital.js","../node_modules/@mui/icons-material/LockOpen.js","../node_modules/@mui/icons-material/Login.js","../node_modules/@mui/icons-material/PendingActions.js","../node_modules/@mui/icons-material/Public.js","../node_modules/@mui/icons-material/SdStorage.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/icons-material/VpnKey.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":["\"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: \"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z\"\n}), 'CallToAction');\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.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"\n}), 'Code');\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: \"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z\"\n}), 'Compress');\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 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\"\n}), 'FindReplace');\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 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z\"\n}), 'LocalHospital');\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 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z\"\n}), 'LockOpen');\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 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"\n}), 'Login');\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: \"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"\n}), 'PendingActions');\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.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n}), 'Public');\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: \"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\"\n}), 'SdStorage');\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.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"\n}), 'VpnKey');\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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/455.1720a69d.chunk.js b/portal-ui/build/static/js/455.1720a69d.chunk.js new file mode 100644 index 000000000..36e16dea6 --- /dev/null +++ b/portal-ui/build/static/js/455.1720a69d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[455],{80455:function(e,n,t){t.r(n);var r=t(29439),u=(t(72791),t(26181)),i=t.n(u),o=t(60364),c=t(51691),s=t(42649),f=t(9505),a=t(2148),l=t(93656),v=t(80184),k=(0,o.$j)(null,{setErrorSnackMessage:s.Ih});n.default=k((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,u=e.selectedBucket,o=e.bucketEvent,s=e.setErrorSnackMessage,k=(0,f.Z)((function(){return n(!0)}),(function(e){return s(e)})),p=(0,r.Z)(k,2),h=p[0],d=p[1];if(!u)return null;return(0,v.jsx)(a.Z,{title:"Delete Event",confirmText:"Delete",isOpen:t,titleIcon:(0,v.jsx)(l.Nv,{}),isLoading:h,onConfirm:function(){if(null!==o){var e=i()(o,"events",[]),n=i()(o,"prefix",""),t=i()(o,"suffix","");d("DELETE","/api/v1/buckets/".concat(u,"/events/").concat(o.arn),{events:e,prefix:n,suffix:t})}},onClose:function(){return n(!1)},confirmationContent:(0,v.jsx)(c.Z,{children:"Are you sure you want to delete this event?"})})}))},9505:function(e,n,t){var r=t(29439),u=t(72791),i=t(81207);n.Z=function(e,n){var t=(0,u.useState)(!1),o=(0,r.Z)(t,2),c=o[0],s=o[1];return[c,function(t,r,u){s(!0),i.Z.invoke(t,r,u).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}}}]); +//# sourceMappingURL=455.1720a69d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/455.1720a69d.chunk.js.map b/portal-ui/build/static/js/455.1720a69d.chunk.js.map new file mode 100644 index 000000000..d384c9a35 --- /dev/null +++ b/portal-ui/build/static/js/455.1720a69d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/455.1720a69d.chunk.js","mappings":"4OA0FMA,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,qBAAAA,EAAAA,KAGF,UAAeF,GA3DK,SAAC,GAMK,IALxBG,EAKuB,EALvBA,2BACAC,EAIuB,EAJvBA,WACAC,EAGuB,EAHvBA,eACAC,EAEuB,EAFvBA,YACAJ,EACuB,EADvBA,qBAMA,GAAyCK,EAAAA,EAAAA,IAJpB,kBAAMJ,GAA2B,MACnC,SAACK,GAAD,OAA+BN,EAAqBM,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKL,EACH,OAAO,KAuBT,OACE,SAAC,IAAD,CACEM,MAAK,eACLC,YAAa,SACbC,OAAQT,EACRU,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UA3BoB,WACtB,GAAoB,OAAhBV,EAAJ,CAIA,IAAMW,EAASC,GAAAA,CAAIZ,EAAa,SAAU,IACpCa,EAASD,GAAAA,CAAIZ,EAAa,SAAU,IACpCc,EAASF,GAAAA,CAAIZ,EAAa,SAAU,IAE1CI,EACE,SADa,0BAEML,EAFN,mBAE+BC,EAAYe,KACxD,CACEJ,OAAAA,EACAE,OAAAA,EACAC,OAAAA,MAaFE,QApCY,kBAAMnB,GAA2B,IAqC7CoB,qBACE,SAAC,IAAD,gE,0DCnDR,IAvBe,SACbC,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAApD,eAAOX,EAAP,KAAkBY,EAAlB,KAgBA,MAAO,CAACZ,EAdQ,SAACa,EAAgBC,EAAaC,GAC5CH,GAAa,GACbI,EAAAA,EAAAA,OACUH,EAAQC,EAAKC,GACpBE,MAAK,SAACC,GACLN,GAAa,GACbH,EAAUS,MAEXC,OAAM,SAAC1B,GACNmB,GAAa,GACbF,EAAQjB","sources":["screens/Console/Buckets/BucketDetails/DeleteEvent.tsx","screens/Console/Common/Hooks/useApi.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 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"],"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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/455.855a38c2.chunk.js b/portal-ui/build/static/js/455.855a38c2.chunk.js deleted file mode 100644 index 6c51eadf8..000000000 --- a/portal-ui/build/static/js/455.855a38c2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[455],{80455:function(n,e,t){t.r(e);var o=t(29439),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(93656),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(29439),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.855a38c2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/455.855a38c2.chunk.js.map b/portal-ui/build/static/js/455.855a38c2.chunk.js.map deleted file mode 100644 index a8bd7d9f3..000000000 --- a/portal-ui/build/static/js/455.855a38c2.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/455.855a38c2.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.c13fce95.chunk.js b/portal-ui/build/static/js/4619.c13fce95.chunk.js new file mode 100644 index 000000000..cd0609172 --- /dev/null +++ b/portal-ui/build/static/js/4619.c13fce95.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4619],{94619:function(e,s,a){a.r(s);var n=a(29439),t=a(1413),l=a(72791),o=a(56028),i=a(61889),r=a(36151),c=a(21435),d=a(11135),u=a(25787),m=a(23814),f=a(60364),p=a(81207),Z=a(42649),x=a(90673),h=a(93656),g=a(80184),v=(0,f.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:Z.Ih});s.default=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)({},m.DF),m.ID))}))(v((function(e){var s=e.modalOpen,a=e.onClose,t=e.classes,d=e.bucket,u=(0,l.useState)(""),m=(0,n.Z)(u,2),f=m[0],v=m[1],j=(0,l.useState)("readonly"),k=(0,n.Z)(j,2),C=k[0],b=k[1];return(0,g.jsx)(o.Z,{modalOpen:s,title:"Add Access Rule",onClose:a,titleIcon:(0,g.jsx)(h.sR,{}),children:(0,g.jsxs)(i.ZP,{container:!0,children:[(0,g.jsx)(i.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,g.jsx)(c.Z,{value:f,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:function(e){v(e.target.value)}})}),(0,g.jsx)(i.ZP,{item:!0,xs:12,children:(0,g.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,g.jsxs)(i.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,g.jsx)(r.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){v(""),b("readonly")},children:"Clear"}),(0,g.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){a()})).catch((function(e){(0,Z.Ih)(e),a()}))},children:"Save"})]})]})})})))},56028:function(e,s,a){var n=a(29439),t=a(1413),l=a(72791),o=a(60364),i=a(13400),r=a(55646),c=a(5574),d=a(65661),u=a(39157),m=a(11135),f=a(25787),p=a(23814),Z=a(42649),x=a(29823),h=a(28057),g=a(80184),v=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});s.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))}))(v((function(e){var s=e.onClose,a=e.modalOpen,o=e.title,m=e.children,f=e.classes,p=e.wideLimit,Z=void 0===p||p,v=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(v){if(""===v.message)return void N(!1);"error"!==v.type&&N(!0)}}),[v]);var w=Z?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return v&&(P=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(P=v.message)),(0,g.jsxs)(c.Z,(0,t.Z)((0,t.Z)({open:a,classes:f},w),{},{scroll:"paper",onClose:function(e,a){"backdropClick"!==a&&s()},className:f.root,children:[(0,g.jsxs)(d.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[b," ",o]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(i.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:s,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(h.Z,{isModal:!0}),(0,g.jsx)(r.Z,{open:S,className:f.snackBarModal,onClose:function(){N(!1),k("")},message:P,ContentProps:{className:"".concat(f.snackBar," ").concat(v&&"error"===v.type?f.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:j?"":f.content,children:m})]}))})))}}]); +//# sourceMappingURL=4619.c13fce95.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4619.c13fce95.chunk.js.map b/portal-ui/build/static/js/4619.c13fce95.chunk.js.map new file mode 100644 index 000000000..c788acc71 --- /dev/null +++ b/portal-ui/build/static/js/4619.c13fce95.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4619.c13fce95.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.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 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"],"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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4619.c6ef5989.chunk.js b/portal-ui/build/static/js/4619.c6ef5989.chunk.js deleted file mode 100644 index d7e89396d..000000000 --- a/portal-ui/build/static/js/4619.c6ef5989.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4619],{94619:function(e,a,s){s.r(a);var n=s(29439),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(93656),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(29439),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.c6ef5989.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4619.c6ef5989.chunk.js.map b/portal-ui/build/static/js/4619.c6ef5989.chunk.js.map deleted file mode 100644 index 2025558bc..000000000 --- a/portal-ui/build/static/js/4619.c6ef5989.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4619.c6ef5989.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.957113df.chunk.js b/portal-ui/build/static/js/4653.957113df.chunk.js deleted file mode 100644 index 24467474a..000000000 --- a/portal-ui/build/static/js/4653.957113df.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(29439),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(93656),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.957113df.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4653.957113df.chunk.js.map b/portal-ui/build/static/js/4653.957113df.chunk.js.map deleted file mode 100644 index 993ab8c71..000000000 --- a/portal-ui/build/static/js/4653.957113df.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4653.957113df.chunk.js","mappings":"sKA+GA,KAAeA,EAAAA,EAAAA,IA/EA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,cAAe,CACbC,YAAa,QACbC,MAAOJ,EAAMK,QAAQC,QAAQC,KAC7B,cAAe,CACbC,MAAO,GACPC,OAAQ,KAGZC,mBAAoB,CAClBN,MAAO,OACP,4BAA6B,CAC3BO,SAAU,MAGdC,YAAa,CACXC,QAAS,OACTC,WAAY,SACZC,eAAgB,gBAChBC,QAAS,OAETC,aAAc,oBACd,4BAA6B,CAC3BC,SAAU,WAGdC,YAAa,CACXV,OAAQ,OACRM,eAAgB,SAChBF,QAAS,OACTK,SAAU,SACVJ,WAAY,aACZ,OAAQ,CACNM,SAAU,KAGdC,UAAW,CACTR,QAAS,OACTC,WAAY,SACZ,4BAA6B,CAC3BI,SAAU,WAGdI,WAAY,CACVT,QAAS,OACTC,WAAY,cAiClB,EA7BoB,SAAC,GAOA,IANnBS,EAMkB,EANlBA,QACAC,EAKkB,EALlBA,KACAC,EAIkB,EAJlBA,MACAC,EAGkB,EAHlBA,SACAC,EAEkB,EAFlBA,QACAC,EACkB,EADlBA,UAEA,OACE,SAAC,KAAD,CAAMC,WAAS,EAAf,UACE,UAAC,KAAD,CACEC,MAAI,EACJC,GAAI,GACJH,UAAS,UAAKL,EAAQX,YAAb,YAA4BgB,GAAwB,IAH/D,WAKE,iBAAKA,UAAWL,EAAQF,UAAxB,UACGG,GAAO,gBAAKI,UAAWL,EAAQrB,cAAxB,SAAwCsB,IAAc,MAC9D,iBAAKI,UAAWL,EAAQJ,YAAxB,WACE,eAAIa,MAAO,CAAEC,OAAQ,GAArB,SAA2BR,KAC3B,iBAAMG,UAAWL,EAAQb,mBAAzB,SAA8CgB,WAIlD,gBAAKE,UAAWL,EAAQD,WAAxB,SAAqCK,a,2HClGvCO,EAAuBC,EAAAA,cAAoB,MAclC,SAASC,EAAWC,GACjC,IACEC,EAEED,EAFFC,SACAC,EACEF,EADFE,MAEIC,EAbR,WACE,MAAoBL,EAAAA,SAAe,MAAnC,eAAOM,EAAP,KAAWC,EAAX,KAIA,OAHAP,EAAAA,WAAgB,WACdO,EAAM,SAAD,OAAUC,KAAKC,MAAsB,IAAhBD,KAAKE,cAC9B,IACIJ,EAQUK,GACXC,EAAUZ,EAAAA,SAAc,WAC5B,MAAO,CACLK,SAAAA,EACAD,MAAAA,KAED,CAACC,EAAUD,IACd,OAAoBS,EAAAA,EAAAA,KAAKd,EAAQe,SAAU,CACzCV,MAAOQ,EACPT,SAAUA,IAyBP,SAASY,IACd,OAAOf,EAAAA,WAAiBD,GAEnB,SAASiB,EAAWJ,EAASR,GAKlC,OAAiB,OAFbQ,EADFP,SAIO,KAGT,UAAUO,EAAQP,SAAlB,cAAgCD,GAE3B,SAASa,EAASL,EAASR,GAKhC,OAAiB,OAFbQ,EADFP,SAIO,KAGT,UAAUO,EAAQP,SAAlB,cAAgCD,G,qCCjF5Bc,EAAY,CAAC,YAgDnB,EA1C6BlB,EAAAA,YAAiB,SAAiBE,EAAOiB,GAC9D,IACMC,EACRlB,EADFC,SAEIkB,GAAQC,EAAAA,EAAAA,GAA8BpB,EAAOgB,GAE7CN,EAAUG,IAEhB,GAAgB,OAAZH,EACF,MAAM,IAAIW,UAAU,0BAGtB,IAAMpB,EAAWH,EAAAA,SAAAA,IAAmBoB,GAAc,SAAAI,GAChD,OAAmBxB,EAAAA,eAAqBwB,GAIpBxB,EAAAA,aAAmBwB,EAAO,CAE5C,gBAAiBR,EAAWJ,EAASY,EAAMtB,MAAME,OACjDE,GAAIW,EAASL,EAASY,EAAMtB,MAAME,SAN3B,QASX,OAAoBS,EAAAA,EAAAA,KAAKY,EAAAA,GAAMC,EAAAA,EAAAA,GAAS,GAAIL,EAAO,CACjDF,IAAKA,EACLf,MAAOQ,EAAQR,MACfD,SAAUA,Q,uDCjCP,SAASwB,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,SAAChC,EAAOiC,GAAR,OAAmBA,EAAOC,OAH1BJ,EAIlB,kBAEI,CACLnD,QAHC,EACDhB,MAEewE,QAAQ,OAwEzB,EAtE8BrC,EAAAA,YAAiB,SAAkBsC,EAASnB,GACxE,IAAMjB,GAAQqC,EAAAA,EAAAA,GAAc,CAC1BrC,MAAOoC,EACPL,KAAM,gBAIN9B,EAGED,EAHFC,SACAV,EAEES,EAFFT,UACAW,EACEF,EADFE,MAEIiB,GAAQC,EAAAA,EAAAA,GAA8BpB,EAAOgB,GAE7CsB,GAAad,EAAAA,EAAAA,GAAS,GAAIxB,GAE1Bd,EAlCkB,SAAAoD,GACxB,IACEpD,EACEoD,EADFpD,QAKF,OAAOqD,EAAAA,EAAAA,GAHO,CACZL,KAAM,CAAC,SAEoBT,EAAyBvC,GA2BtCsD,CAAkBF,GAC5B5B,EAAUG,IAEhB,GAAgB,OAAZH,EACF,MAAM,IAAIW,UAAU,0BAGtB,IAAMjB,EAAKU,EAAWJ,EAASR,GACzBuC,EAAQ1B,EAASL,EAASR,GAChC,OAAoBS,EAAAA,EAAAA,KAAKkB,GAAcL,EAAAA,EAAAA,GAAS,CAC9C,kBAAmBiB,EACnBlD,WAAWmD,EAAAA,EAAAA,GAAKxD,EAAQgD,KAAM3C,GAC9BoD,OAAQzC,IAAUQ,EAAQR,MAC1BE,GAAIA,EACJa,IAAKA,EACL2B,KAAM,WACNN,WAAYA,GACXnB,EAAO,CACRlB,SAAUC,IAAUQ,EAAQR,OAASD,Q,4CCkBnC4C,EAAgB,CACpBC,UAAW,IAmFb,GAAepF,EAAAA,EAAAA,IAjJA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXmF,cAAe,CACbvE,QAAS,OACTJ,OAAQ,OACRD,MAAO,QAET6E,oBAAqB,CACnB7E,MAAO,QACP8E,WAAY,UACZC,YAAa,oBACb,kBAAmB,CACjB,uBAAwB,CACtB1E,QAAS,QAEX,iBAAkB,CAChBA,QAAS,OACTK,SAAU,MACVJ,WAAY,SACZC,eAAgB,aAChBE,aAAc,oBACd,qBAAsB,CACpBd,YAAa,EACbqF,aAAc,GAEhB,iBAAkB,CAChBF,WAAY,UACZG,WAAY,MAIhB,sBAAuB,CACrB5E,QAAS,UAIf6E,oBAAqB,CACnBlF,MAAO,OACP,sBAAuB,CACrBC,OAAQ,SAGZkF,SAAU,CACRlF,OAAQ,QAGV,4BAA6B,CAC3B2E,cAAe,CACblE,SAAU,SACV0E,cAAe,UAEjBP,oBAAqB,CACnB7E,MAAO,OACPS,aAAc,qBACd,wDAAyD,CACvDA,aAAc,cA0FxB,EAhFqB,SAAC,GAMI,IALxBqB,EAKuB,EALvBA,SACAf,EAIuB,EAJvBA,QAIuB,IAHvBsE,YAAAA,OAGuB,MAHT,IAGS,EAFvBC,EAEuB,EAFvBA,OACAC,EACuB,EADvBA,YAEA,EAA0B5D,EAAAA,SAAe0D,GAAzC,eAAOtD,EAAP,KAAcyD,EAAd,KAEMhG,GAAQiG,EAAAA,EAAAA,KACRC,GAAgBC,EAAAA,EAAAA,GAAcnG,EAAMoG,YAAYC,KAAK,OAMrDC,EAAyB,GACzBC,EAAiC,GAEvC,OAAKjE,GAELA,EAASkE,SAAQ,SAAC7C,GAChB2C,EAAWG,KAAK9C,EAAM+C,WACtBH,EAAYE,KAAK9C,EAAMgD,aAIvB,SAACvE,EAAD,CAAYG,MAAK,UAAKA,GAAtB,UACE,UAACqE,EAAA,EAAD,CAAKhF,UAAWL,EAAQ6D,cAAxB,WACE,SAACwB,EAAA,EAAD,CAAKhF,UAAWL,EAAQ8D,oBAAxB,UACE,SAAC,EAAD,CACEwB,SAnBW,SAACC,EAA6BC,GACjDf,EAASe,IAmBDC,YAAad,EAAgB,aAAe,WAC5Ce,QAASf,EAAgB,aAAe,WACxCgB,cAAc,OACdtF,UAAWL,EAAQ4F,QALrB,SAOGb,EAAWc,KAAI,SAACtF,EAAMuF,GACrB,OAAIvF,GAEA,SAACwF,EAAA,GAAD,gBACE1F,UAAWL,EAAQgG,UAEnBhF,MAAK,UAAK8E,GACVrF,MAAOkD,GACHpD,GALN,IAME0F,eAAa,EACbC,oBAAkB,EAClBC,aAAa,IARf,gBAEgBL,IAUb,aAKb,UAACT,EAAA,EAAD,CAAKhF,UAAWL,EAAQmE,oBAAxB,UACIK,EAYE,KAXAQ,EAAYa,KAAI,SAACtF,EAAMuF,GACrB,OACE,SAAC,EAAD,CACE9F,SAAO,UAAOA,EAAQoE,UAEtBpD,MAAK,UAAK8E,GAHZ,SAKGvF,GAAc,MALjB,kBAEkBuF,OAQzBtB,GACC,gBAAKnE,UAAWL,EAAQoE,SAAxB,SAAmCG,IACjC,cAtDU,S,qQChElB6B,GAAoBC,EAAAA,EAAAA,GACxBzF,EAAAA,MAAW,kBAAM,uEA8GnB,WAAepC,EAAAA,EAAAA,IAtGA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wBACX4H,yBAA0B,CACxBhH,QAAS,OACT+E,cAAe,MACf7E,eAAgB,aAChB+G,SAAU,OACVC,OAAQ,oBACRC,aAAc,EACdC,gBAAiB,SAEhBC,EAAAA,IACAC,EAAAA,KACAC,EAAAA,EAAAA,IAAmBpI,EAAMwE,QAAQ,QAyFxC,EAlF6B,SAAC,GAA+C,IAA7CjD,EAA4C,EAA5CA,QAAS8G,EAAmC,EAAnCA,MACjCC,EAAoBC,GAAAA,CAAIF,EAAO,MAAO,IACxCG,EAAeF,EAAkBG,UACnCH,EAAkBI,YAAY,KAAO,GAIvC,OAFAF,EAAgC,aAAjBA,EAA8B,SAAWA,GAGtD,UAAC,EAAAG,SAAD,YACE,SAAC,IAAD,CAAYC,MAAO,cAEnB,UAAC,IAAD,YACE,SAAC,KAAD,CAAM9G,MAAI,EAACC,GAAI,GAAf,UACE,iBACEU,GAAG,qBACHb,UAAWL,EAAQsG,yBAFrB,WAIE,SAAC,IAAD,CAAarG,MAAM,SAAC,KAAD,IAAkBC,MAAO,oBAC5C,SAAC,IAAD,CACEoE,YAAa2C,EACbzC,aAAW,EACXD,QACE,SAAC,KAAD,CAAQ+C,QAASA,EAAAA,EAAjB,UACE,UAAC,KAAD,WACGC,EAAAA,GAAAA,KAA0B,SAACC,GAAD,OACzB,SAAC,KAAD,CACEC,OAAK,EAELC,KAAI,UAAKC,EAAAA,GAAAA,SAAL,YAA2BH,EAAQI,kBACvCC,UAAWzB,GAJb,qBAEqBoB,EAAQM,0BAK/B,SAAC,KAAD,CAAOL,OAAK,EAACC,KAAMC,EAAAA,GAAAA,SAAnB,UACE,SAAC,KAAD,CAAUI,GAAE,UAAKJ,EAAAA,GAAAA,SAAL,oBAftB,SAqBGJ,EAAAA,GAAAA,KAA0B,SAACC,GAC1B,IA5CME,EA4CEE,EAAgDJ,EAAhDI,iBACR,MAAO,CACLzC,UAAW,CACTkC,MAHoDG,EAA9BM,oBAItB9G,MAAO4G,EACP3H,KALoDuH,EAATvH,KAM3C4H,UAAWG,EAAAA,GACXD,IAnDEL,EAmDeE,EAlD7B,GAAN,OAAUD,EAAAA,GAAAA,SAAV,YAAgCD,iBAyD1B,SAAC,KAAD,CAAMnH,MAAI,EAACC,GAAI,GAAIyH,GAAI,CAAEC,WAAY,QAArC,UACE,SAAC,IAAD,CACEhI,MAAO,4BACPiI,eAAe,SAAC,KAAD,IACfC,MACE,UAAC,EAAAhB,SAAD,2HAGE,mBACA,kBAJF,4BAK4B,KAC1B,cACEiB,KAAK,0GACLC,OAAO,SACPC,IAAI,aAHN,2BANF","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/4653.a6dfdf0c.chunk.js b/portal-ui/build/static/js/4653.a6dfdf0c.chunk.js new file mode 100644 index 000000000..d43b03156 --- /dev/null +++ b/portal-ui/build/static/js/4653.a6dfdf0c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4653],{23804:function(e,t,n){n(72791);var r=n(11135),o=n(25787),i=n(61889),a=n(80184);t.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 t=e.classes,n=e.iconComponent,r=e.title,o=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:[n,r]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:t.helpText,children:o})]})})}))},75578:function(e,t,n){var r=n(1413),o=n(72791),i=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,i.jsx)(o.Suspense,{fallback:t,children:(0,i.jsx)(e,(0,r.Z)({},n))})}return n}},50276:function(e,t,n){var r=n(1413),o=n(29439),i=n(72791),a=n(64554),l=n(43896),c=n(83449),s=n(47283),d=n(82851),u=n(25787),p=n(13967),m=n(11135),h=n(95193),f=n(80184),b={minHeight:60};t.Z=(0,u.Z)((function(e){return(0,m.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,u=e.selectedTab,m=void 0===u?"0":u,g=e.routes,v=e.isRouteTabs,x=i.useState(m),y=(0,o.Z)(x,2),_=y[0],Z=y[1],E=(0,p.Z)(),w=(0,h.Z)(E.breakpoints.down("md")),C=[],j=[];return t?(t.forEach((function(e){C.push(e.tabConfig),j.push(e.content)})),(0,f.jsx)(c.ZP,{value:"".concat(_),children:(0,f.jsxs)(a.Z,{className:n.tabsContainer,children:[(0,f.jsx)(a.Z,{className:n.tabsHeaderContainer,children:(0,f.jsx)(s.Z,{onChange:function(e,t){Z(t)},orientation:w?"horizontal":"vertical",variant:w?"scrollable":"standard",scrollButtons:"auto",className:n.tabList,children:C.map((function(e,t){return e?(0,f.jsx)(l.Z,(0,r.Z)((0,r.Z)({className:n.tabHeader,value:"".concat(t),style:b},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(t)):null}))})}),(0,f.jsxs)(a.Z,{className:n.tabContentContainer,children:[v?null:j.map((function(e,t){return(0,f.jsx)(d.Z,{classes:(0,r.Z)({},n.tabPanel),value:"".concat(t),children:e||null},"v-tab-p-".concat(t))})),v?(0,f.jsx)("div",{className:n.tabPanel,children:g}):null]})]})})):null}))},34653:function(e,t,n){n.r(t);var r=n(1413),o=n(72791),i=n(11135),a=n(25787),l=n(61889),c=n(58493),s=n(23814),d=n(32291),u=n(23804),p=n(93656),m=n(79271),h=n(91523),f=n(62666),b=n(50276),g=n(74794),v=n(26181),x=n.n(v),y=n(14917),_=n(75578),Z=n(56087),E=n(80184),w=(0,_.Z)(o.lazy((function(){return n.e(7659).then(n.bind(n,67659))})));t.default=(0,a.Z)((function(e){return(0,i.Z)((0,r.Z)((0,r.Z)((0,r.Z)({settingsOptionsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",border:"#E5E5E5 1px solid",borderRadius:2,backgroundColor:"#fff"}},s.qg),s.OR),(0,s.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.match,r=x()(n,"url",""),i=r.substring(r.lastIndexOf("/")+1);return i="settings"===i?"region":i,(0,E.jsxs)(o.Fragment,{children:[(0,E.jsx)(d.Z,{label:"Settings"}),(0,E.jsxs)(g.Z,{children:[(0,E.jsx)(l.ZP,{item:!0,xs:12,children:(0,E.jsxs)("div",{id:"settings-container",className:t.settingsOptionsContainer,children:[(0,E.jsx)(y.Z,{icon:(0,E.jsx)(p.ew,{}),title:"Configuration:"}),(0,E.jsx)(b.Z,{selectedTab:i,isRouteTabs:!0,routes:(0,E.jsx)(m.F0,{history:f.Z,children:(0,E.jsxs)(m.rs,{children:[c.bx.map((function(e){return(0,E.jsx)(m.AW,{exact:!0,path:"".concat(Z.gA.SETTINGS,"/").concat(e.configuration_id),component:w},"configItem-".concat(e.configuration_label))})),(0,E.jsx)(m.AW,{exact:!0,path:Z.gA.SETTINGS,children:(0,E.jsx)(m.l_,{to:"".concat(Z.gA.SETTINGS,"/region")})})]})}),children:c.bx.map((function(e){var t,n=e.configuration_id;return{tabConfig:{label:e.configuration_label,value:n,icon:e.icon,component:h.rU,to:(t=n,"".concat(Z.gA.SETTINGS,"/").concat(t))}}}))})]})}),(0,E.jsx)(l.ZP,{item:!0,xs:12,sx:{paddingTop:"15px"},children:(0,E.jsx)(u.Z,{title:"Learn more about SETTINGS",iconComponent:(0,E.jsx)(p.ew,{}),help:(0,E.jsxs)(o.Fragment,{children:["MinIO supports a variety of configurations ranging from encryption, compression, region, notifications, etc.",(0,E.jsx)("br",{}),(0,E.jsx)("br",{}),"You can learn more at our"," ",(0,E.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"}),"."]})})})]})]})}))},58493:function(e,t,n){n.d(t,{DD:function(){return v},DP:function(){return g},_0:function(){return x},bx:function(){return b}});var r=n(93433),o=(n(72791),n(87569)),i=n(59314),a=n(61809),l=n(31292),c=n(98095),s=n(67055),d=n(21141),u=n(61248),p=n(50521),m=n(36909),h=n(13901),f=n(80184),b=[{icon:(0,f.jsx)(o.Z,{}),configuration_id:"region",configuration_label:"Region"},{icon:(0,f.jsx)(i.Z,{}),configuration_id:"cache",configuration_label:"Cache"},{icon:(0,f.jsx)(a.Z,{}),configuration_id:"compression",configuration_label:"Compression"},{icon:(0,f.jsx)(l.Z,{}),configuration_id:"api",configuration_label:"API"},{icon:(0,f.jsx)(c.Z,{}),configuration_id:"heal",configuration_label:"Heal"},{icon:(0,f.jsx)(s.Z,{}),configuration_id:"scanner",configuration_label:"Scanner"},{icon:(0,f.jsx)(d.Z,{}),configuration_id:"etcd",configuration_label:"Etcd"},{icon:(0,f.jsx)(u.Z,{}),configuration_id:"identity_openid",configuration_label:"Identity Openid"},{icon:(0,f.jsx)(p.Z,{}),configuration_id:"identity_ldap",configuration_label:"Identity LDAP"},{icon:(0,f.jsx)(h.Z,{}),configuration_id:"logger_webhook",configuration_label:"Logger Webhook"},{icon:(0,f.jsx)(m.Z,{}),configuration_id:"audit_webhook",configuration_label:"Audit Webhook"}],g={region:[{name:"name",required:!0,label:"Server Location",tooltip:'Name of the location of the server e.g. "us-west-rack2"',type:"string",placeholder:"e.g. us-west-rack-2"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],cache:[{name:"drives",required:!0,label:"Drives",tooltip:'Mountpoints e.g. "/optane1" or "/optane2", you can write one per field',type:"csv",placeholder:"Enter Mount Point"},{name:"expiry",required:!1,label:"Expiry",tooltip:'Cache expiry duration in days e.g. "90"',type:"number",placeholder:"Enter Number of Days"},{name:"quota",required:!1,label:"Quota",tooltip:'Limit cache drive usage in percentage e.g. "90"',type:"number",placeholder:"Enter in %"},{name:"exclude",required:!1,label:"Exclude",tooltip:'Wildcard exclusion patterns e.g. "bucket/*.tmp" or "*.exe", you can write one per field',type:"csv",placeholder:"Enter Wildcard Exclusion Patterns"},{name:"after",required:!1,label:"After",tooltip:"Minimum number of access before caching an object",type:"number",placeholder:"Enter Number of Attempts"},{name:"watermark_low",required:!1,label:"Watermark Low",tooltip:"Watermark Low",type:"number",placeholder:"Enter Watermark Low"},{name:"watermark_high",required:!1,label:"Watermark High",tooltip:"Watermark High",type:"number",placeholder:"Enter Watermark High"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],compression:[{name:"extensions",required:!1,label:"Extensions",tooltip:'Extensions to compress e.g. ".txt",".log" or ".csv", you can write one per field',type:"csv",placeholder:"Enter an Extension",withBorder:!0},{name:"mime_types",required:!1,label:"Mime Types",tooltip:'Mime types e.g. "text/*","application/json" or "application/xml", you can write one per field',type:"csv",placeholder:"Enter a Mime Type",withBorder:!0}],api:[{name:"requests_max",required:!1,label:"Requests Max",tooltip:"Maximum number of concurrent requests, e.g. '1600'",type:"number",placeholder:"Enter Requests Max"},{name:"cors_allow_origin",required:!1,label:"Cors Allow Origin",tooltip:"list of origins allowed for CORS requests",type:"csv",placeholder:"Enter allowed origin e.g. https://example.com"},{name:"replication_workers",required:!1,label:"Replication Workers",tooltip:"Number of replication workers, defaults to 100",type:"number",placeholder:"Enter Replication Workers"},{name:"replication_failed_workers",required:!1,label:"Replication Failed Workers",tooltip:"Number of replication workers for recently failed replicas, defaults to 4",type:"number",placeholder:"Enter Replication Failed Workers"}],heal:[{name:"bitrotscan",required:!1,label:"Bitrot Scan",tooltip:"Perform bitrot scan on disks when checking objects during scanner",type:"on|off"},{name:"max_sleep",required:!1,label:"Max Sleep",tooltip:"Maximum sleep duration between objects to slow down heal operation. eg. 2s",type:"duration",placeholder:"Enter Max Sleep duration"},{name:"max_io",required:!1,label:"Max IO",tooltip:"Maximum IO requests allowed between objects to slow down heal operation. eg. 3",type:"number",placeholder:"Enter Max IO"}],scanner:[{name:"delay",required:!1,label:"Delay multiplier",tooltip:"Scanner delay multiplier, defaults to '10.0'",type:"number",placeholder:"Enter Delay"},{name:"max_wait",required:!1,label:"Max Wait",tooltip:"Maximum wait time between operations, defaults to '15s'",type:"duration",placeholder:"Enter Max Wait"},{name:"cycle",required:!1,label:"Cycle",tooltip:"Time duration between scanner cycles, defaults to '1m'",type:"duration",placeholder:"Enter Cycle"}],etcd:[{name:"endpoints",required:!0,label:"Endpoints",tooltip:'List of etcd endpoints e.g. "http://localhost:2379", you can write one per field',type:"csv",placeholder:"Enter Endpoint"},{name:"path_prefix",required:!1,label:"Path Prefix",tooltip:'namespace prefix to isolate tenants e.g. "customer1/"',type:"string",placeholder:"Enter Path Prefix"},{name:"coredns_path",required:!1,label:"Coredns Path",tooltip:'Shared bucket DNS records, default is "/skydns"',type:"string",placeholder:"Enter Coredns Path"},{name:"client_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_cert_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],identity_openid:[{name:"config_url",required:!1,label:"Config URL",tooltip:"Config URL for identity provider configuration",type:"string",placeholder:"https://identity-provider-url/.well-known/openid-configuration"},{name:"client_id",required:!1,label:"Client ID",type:"string",placeholder:"Enter Client ID"},{name:"client_secret",required:!1,label:"Secret ID",type:"string",placeholder:"Enter Secret ID"},{name:"claim_name",required:!1,label:"Claim Name",tooltip:"Claim from which MinIO will read the policy or role to use",type:"string",placeholder:"Enter Claim Name"},{name:"claim_prefix",required:!1,label:"Claim Prefix",tooltip:"Claim Prefix",type:"string",placeholder:"Enter Claim Prefix"},{name:"claim_userinfo",required:!1,label:"Claim UserInfo",type:"on|off"},{name:"redirect_uri",required:!1,label:"Redirect URI",type:"string",placeholder:"https://console-endpoint-url/oauth_callback"},{name:"scopes",required:!1,label:"Scopes",type:"string",placeholder:"openid,profile,email"}],identity_ldap:[{name:"server_addr",required:!0,label:"Server Addr",tooltip:'AD/LDAP server address e.g. "myldapserver.com:636"',type:"string",placeholder:"myldapserver.com:636"},{name:"tls_skip_verify",required:!1,label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "off" (verify)',type:"on|off"},{name:"server_insecure",required:!1,label:"Server Insecure",tooltip:'Allow plain text connection to AD/LDAP server, defaults to "off"',type:"on|off"},{name:"server_starttls",required:!1,label:"Start TLS connection to AD/LDAP server",tooltip:"Use StartTLS connection to AD/LDAP server",type:"on|off"},{name:"lookup_bind_dn",required:!0,label:"Lookup Bind DN",tooltip:"DN for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"cn=admin,dc=min,dc=io"},{name:"lookup_bind_password",required:!1,label:"Lookup Bind Password",tooltip:"Password for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"admin"},{name:"user_dn_search_base_dn",required:!1,label:"User DN Search Base DN",tooltip:"Base LDAP DN to search for user DN",type:"csv",placeholder:"dc=myldapserver"},{name:"user_dn_search_filter",required:!1,label:"User DN Search Filter",tooltip:"Search filter to lookup user DN",type:"string",placeholder:"(sAMAcountName=%s)"},{name:"group_search_filter",required:!1,label:"Group Search Filter",tooltip:"Search filter for groups",type:"string",placeholder:"(&(objectclass=groupOfNames)(member=%d))"},{name:"group_search_base_dn",required:!1,label:"Group Search Base DN",tooltip:"list of group search base DNs",type:"csv",placeholder:"dc=minioad,dc=local"},{name:"comment",required:!1,label:"Comment",tooltip:"Optionally add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],logger_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}]},v=function(e){return e.filter((function(e){return""!==e.value}))},x=function(e,t,n){var o=e.target,i=o.value,a=o.checked,l=(0,r.Z)(n);return a?l.push(i):l=l.filter((function(e){return e!==i})),t(l),l}},13901:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z"}),"CallToAction");t.Z=a},31292:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"}),"Code");t.Z=a},61809:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z"}),"Compress");t.Z=a},67055:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"}),"FindReplace");t.Z=a},98095:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"}),"LocalHospital");t.Z=a},61248:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"}),"LockOpen");t.Z=a},50521:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"}),"Login");t.Z=a},36909:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"}),"PendingActions");t.Z=a},87569:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.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-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"}),"Public");t.Z=a},59314:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"}),"SdStorage");t.Z=a},21141:function(e,t,n){var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),"VpnKey");t.Z=a},83449:function(e,t,n){n.d(t,{ZP:function(){return l},_i:function(){return c},pQ:function(){return d},uU:function(){return s}});var r=n(29439),o=n(72791),i=n(80184),a=o.createContext(null);function l(e){var t=e.children,n=e.value,l=function(){var e=o.useState(null),t=(0,r.Z)(e,2),n=t[0],i=t[1];return o.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),n}(),c=o.useMemo((function(){return{idPrefix:l,value:n}}),[l,n]);return(0,i.jsx)(a.Provider,{value:c,children:t})}function c(){return o.useContext(a)}function s(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(t)}function d(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(t)}},47283:function(e,t,n){var r=n(87462),o=n(63366),i=n(72791),a=n(18073),l=n(83449),c=n(80184),s=["children"],d=i.forwardRef((function(e,t){var n=e.children,d=(0,o.Z)(e,s),u=(0,l._i)();if(null===u)throw new TypeError("No TabContext provided");var p=i.Children.map(n,(function(e){return i.isValidElement(e)?i.cloneElement(e,{"aria-controls":(0,l.uU)(u,e.props.value),id:(0,l.pQ)(u,e.props.value)}):null}));return(0,c.jsx)(a.Z,(0,r.Z)({},d,{ref:t,value:u.value,children:p}))}));t.Z=d},82851:function(e,t,n){n.d(t,{Z:function(){return b}});var r=n(87462),o=n(63366),i=n(72791),a=n(28182),l=n(47630),c=n(93736),s=n(90767),d=n(95159);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,n(30208).Z)("MuiTabPanel",["root"]);var p=n(83449),m=n(80184),h=["children","className","value"],f=(0,l.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(3)}})),b=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiTabPanel"}),i=n.children,l=n.className,d=n.value,b=(0,o.Z)(n,h),g=(0,r.Z)({},n),v=function(e){var t=e.classes;return(0,s.Z)({root:["root"]},u,t)}(g),x=(0,p._i)();if(null===x)throw new TypeError("No TabContext provided");var y=(0,p.uU)(x,d),_=(0,p.pQ)(x,d);return(0,m.jsx)(f,(0,r.Z)({"aria-labelledby":_,className:(0,a.Z)(v.root,l),hidden:d!==x.value,id:y,ref:t,role:"tabpanel",ownerState:g},b,{children:d===x.value&&i}))}))}}]); +//# sourceMappingURL=4653.a6dfdf0c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4653.a6dfdf0c.chunk.js.map b/portal-ui/build/static/js/4653.a6dfdf0c.chunk.js.map new file mode 100644 index 000000000..861c594b9 --- /dev/null +++ b/portal-ui/build/static/js/4653.a6dfdf0c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4653.a6dfdf0c.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationOptions.tsx","screens/Console/Configurations/utils.tsx","../node_modules/@mui/icons-material/CallToAction.js","../node_modules/@mui/icons-material/Code.js","../node_modules/@mui/icons-material/Compress.js","../node_modules/@mui/icons-material/FindReplace.js","../node_modules/@mui/icons-material/LocalHospital.js","../node_modules/@mui/icons-material/LockOpen.js","../node_modules/@mui/icons-material/Login.js","../node_modules/@mui/icons-material/PendingActions.js","../node_modules/@mui/icons-material/Public.js","../node_modules/@mui/icons-material/SdStorage.js","../node_modules/@mui/icons-material/VpnKey.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js"],"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, { 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 { 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 PublicIcon from \"@mui/icons-material/Public\";\nimport SdStorageIcon from \"@mui/icons-material/SdStorage\";\nimport CompressIcon from \"@mui/icons-material/Compress\";\nimport CodeIcon from \"@mui/icons-material/Code\";\nimport LocalHospitalIcon from \"@mui/icons-material/LocalHospital\";\nimport FindReplaceIcon from \"@mui/icons-material/FindReplace\";\nimport VpnKeyIcon from \"@mui/icons-material/VpnKey\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nimport LoginIcon from \"@mui/icons-material/Login\";\nimport PendingActionsIcon from \"@mui/icons-material/PendingActions\";\nimport CallToActionIcon from \"@mui/icons-material/CallToAction\";\nimport { IElement, IElementValue } from \"./types\";\n\nexport const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"region\",\n configuration_label: \"Region\",\n },\n {\n icon: ,\n configuration_id: \"cache\",\n configuration_label: \"Cache\",\n },\n {\n icon: ,\n configuration_id: \"compression\",\n configuration_label: \"Compression\",\n },\n {\n icon: ,\n configuration_id: \"api\",\n configuration_label: \"API\",\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n },\n {\n icon: ,\n configuration_id: \"scanner\",\n configuration_label: \"Scanner\",\n },\n {\n icon: ,\n configuration_id: \"etcd\",\n configuration_label: \"Etcd\",\n },\n {\n icon: ,\n configuration_id: \"identity_openid\",\n configuration_label: \"Identity Openid\",\n },\n {\n icon: ,\n configuration_id: \"identity_ldap\",\n configuration_label: \"Identity LDAP\",\n },\n {\n icon: ,\n configuration_id: \"logger_webhook\",\n configuration_label: \"Logger Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_webhook\",\n configuration_label: \"Audit Webhook\",\n },\n];\n\nexport const fieldsConfigurations: any = {\n region: [\n {\n name: \"name\",\n required: true,\n label: \"Server Location\",\n tooltip: 'Name of the location of the server e.g. \"us-west-rack2\"',\n type: \"string\",\n placeholder: \"e.g. us-west-rack-2\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n cache: [\n {\n name: \"drives\",\n required: true,\n label: \"Drives\",\n tooltip:\n 'Mountpoints e.g. \"/optane1\" or \"/optane2\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Mount Point\",\n },\n {\n name: \"expiry\",\n required: false,\n label: \"Expiry\",\n tooltip: 'Cache expiry duration in days e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter Number of Days\",\n },\n {\n name: \"quota\",\n required: false,\n label: \"Quota\",\n tooltip: 'Limit cache drive usage in percentage e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter in %\",\n },\n {\n name: \"exclude\",\n required: false,\n label: \"Exclude\",\n tooltip:\n 'Wildcard exclusion patterns e.g. \"bucket/*.tmp\" or \"*.exe\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Wildcard Exclusion Patterns\",\n },\n {\n name: \"after\",\n required: false,\n label: \"After\",\n tooltip: \"Minimum number of access before caching an object\",\n type: \"number\",\n placeholder: \"Enter Number of Attempts\",\n },\n {\n name: \"watermark_low\",\n required: false,\n label: \"Watermark Low\",\n tooltip: \"Watermark Low\",\n type: \"number\",\n placeholder: \"Enter Watermark Low\",\n },\n {\n name: \"watermark_high\",\n required: false,\n label: \"Watermark High\",\n tooltip: \"Watermark High\",\n type: \"number\",\n placeholder: \"Enter Watermark High\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n compression: [\n {\n name: \"extensions\",\n required: false,\n label: \"Extensions\",\n tooltip:\n 'Extensions to compress e.g. \".txt\",\".log\" or \".csv\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter an Extension\",\n withBorder: true,\n },\n {\n name: \"mime_types\",\n required: false,\n label: \"Mime Types\",\n tooltip:\n 'Mime types e.g. \"text/*\",\"application/json\" or \"application/xml\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter a Mime Type\",\n withBorder: true,\n },\n ],\n api: [\n {\n name: \"requests_max\",\n required: false,\n label: \"Requests Max\",\n tooltip: \"Maximum number of concurrent requests, e.g. '1600'\",\n type: \"number\",\n placeholder: \"Enter Requests Max\",\n },\n {\n name: \"cors_allow_origin\",\n required: false,\n label: \"Cors Allow Origin\",\n tooltip: \"list of origins allowed for CORS requests\",\n type: \"csv\",\n placeholder: \"Enter allowed origin e.g. https://example.com\",\n },\n {\n name: \"replication_workers\",\n required: false,\n label: \"Replication Workers\",\n tooltip: \"Number of replication workers, defaults to 100\",\n type: \"number\",\n placeholder: \"Enter Replication Workers\",\n },\n {\n name: \"replication_failed_workers\",\n required: false,\n label: \"Replication Failed Workers\",\n tooltip:\n \"Number of replication workers for recently failed replicas, defaults to 4\",\n type: \"number\",\n placeholder: \"Enter Replication Failed Workers\",\n },\n ],\n heal: [\n {\n name: \"bitrotscan\",\n required: false,\n label: \"Bitrot Scan\",\n tooltip:\n \"Perform bitrot scan on disks when checking objects during scanner\",\n type: \"on|off\",\n },\n {\n name: \"max_sleep\",\n required: false,\n label: \"Max Sleep\",\n tooltip:\n \"Maximum sleep duration between objects to slow down heal operation. eg. 2s\",\n type: \"duration\",\n placeholder: \"Enter Max Sleep duration\",\n },\n {\n name: \"max_io\",\n required: false,\n label: \"Max IO\",\n tooltip:\n \"Maximum IO requests allowed between objects to slow down heal operation. eg. 3\",\n type: \"number\",\n placeholder: \"Enter Max IO\",\n },\n ],\n scanner: [\n {\n name: \"delay\",\n required: false,\n label: \"Delay multiplier\",\n tooltip: \"Scanner delay multiplier, defaults to '10.0'\",\n type: \"number\",\n placeholder: \"Enter Delay\",\n },\n {\n name: \"max_wait\",\n required: false,\n label: \"Max Wait\",\n tooltip: \"Maximum wait time between operations, defaults to '15s'\",\n type: \"duration\",\n placeholder: \"Enter Max Wait\",\n },\n {\n name: \"cycle\",\n required: false,\n label: \"Cycle\",\n tooltip: \"Time duration between scanner cycles, defaults to '1m'\",\n type: \"duration\",\n placeholder: \"Enter Cycle\",\n },\n ],\n etcd: [\n {\n name: \"endpoints\",\n required: true,\n label: \"Endpoints\",\n tooltip:\n 'List of etcd endpoints e.g. \"http://localhost:2379\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"path_prefix\",\n required: false,\n label: \"Path Prefix\",\n tooltip: 'namespace prefix to isolate tenants e.g. \"customer1/\"',\n type: \"string\",\n placeholder: \"Enter Path Prefix\",\n },\n {\n name: \"coredns_path\",\n required: false,\n label: \"Coredns Path\",\n tooltip: 'Shared bucket DNS records, default is \"/skydns\"',\n type: \"string\",\n placeholder: \"Enter Coredns Path\",\n },\n {\n name: \"client_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_cert_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n identity_openid: [\n {\n name: \"config_url\",\n required: false,\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n type: \"string\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n },\n {\n name: \"client_id\",\n required: false,\n label: \"Client ID\",\n type: \"string\",\n placeholder: \"Enter Client ID\",\n },\n {\n name: \"client_secret\",\n required: false,\n label: \"Secret ID\",\n type: \"string\",\n placeholder: \"Enter Secret ID\",\n },\n {\n name: \"claim_name\",\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n type: \"string\",\n placeholder: \"Enter Claim Name\",\n },\n {\n name: \"claim_prefix\",\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"Claim Prefix\",\n type: \"string\",\n placeholder: \"Enter Claim Prefix\",\n },\n {\n name: \"claim_userinfo\",\n required: false,\n label: \"Claim UserInfo\",\n type: \"on|off\",\n },\n {\n name: \"redirect_uri\",\n required: false,\n label: \"Redirect URI\",\n type: \"string\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n },\n {\n name: \"scopes\",\n required: false,\n label: \"Scopes\",\n type: \"string\",\n placeholder: \"openid,profile,email\",\n },\n ],\n identity_ldap: [\n {\n name: \"server_addr\",\n required: true,\n label: \"Server Addr\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n type: \"string\",\n placeholder: \"myldapserver.com:636\",\n },\n {\n name: \"tls_skip_verify\",\n required: false,\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"off\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"server_insecure\",\n required: false,\n label: \"Server Insecure\",\n tooltip:\n 'Allow plain text connection to AD/LDAP server, defaults to \"off\"',\n type: \"on|off\",\n },\n {\n name: \"server_starttls\",\n required: false,\n label: \"Start TLS connection to AD/LDAP server\",\n tooltip: \"Use StartTLS connection to AD/LDAP server\",\n type: \"on|off\",\n },\n {\n name: \"lookup_bind_dn\",\n required: true,\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n },\n {\n name: \"lookup_bind_password\",\n required: false,\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"admin\",\n },\n {\n name: \"user_dn_search_base_dn\",\n required: false,\n label: \"User DN Search Base DN\",\n tooltip: \"Base LDAP DN to search for user DN\",\n type: \"csv\",\n placeholder: \"dc=myldapserver\",\n },\n {\n name: \"user_dn_search_filter\",\n required: false,\n label: \"User DN Search Filter\",\n tooltip: \"Search filter to lookup user DN\",\n type: \"string\",\n placeholder: \"(sAMAcountName=%s)\",\n },\n {\n name: \"group_search_filter\",\n required: false,\n label: \"Group Search Filter\",\n tooltip: \"Search filter for groups\",\n type: \"string\",\n placeholder: \"(&(objectclass=groupOfNames)(member=%d))\",\n },\n {\n name: \"group_search_base_dn\",\n required: false,\n label: \"Group Search Base DN\",\n tooltip: \"list of group search base DNs\",\n type: \"csv\",\n placeholder: \"dc=minioad,dc=local\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"Optionally add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n logger_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n};\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const selectSAs = (\n e: React.ChangeEvent,\n setSelectedSAs: Function,\n selectedSAs: string[]\n) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedSAs]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedSAs(elements);\n return elements;\n};\n","\"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: \"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z\"\n}), 'CallToAction');\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.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"\n}), 'Code');\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: \"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z\"\n}), 'Compress');\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 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\"\n}), 'FindReplace');\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 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z\"\n}), 'LocalHospital');\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 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z\"\n}), 'LockOpen');\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 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"\n}), 'Login');\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: \"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"\n}), 'PendingActions');\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.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n}), 'Public');\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: \"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\"\n}), 'SdStorage');\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.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"\n}), 'VpnKey');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;"],"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","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","background","borderRight","flexFlow","justifyContent","borderBottom","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","value","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","onChange","event","newValue","orientation","variant","scrollButtons","tabList","map","index","tabHeader","style","disableRipple","disableTouchRipple","focusRipple","ConfigurationForm","withSuspense","settingsOptionsContainer","flexWrap","searchField","actionsTray","containerForHeader","spacing","match","configurationName","get","selConfigTab","substring","lastIndexOf","Fragment","label","id","icon","history","configurationElements","element","exact","path","IAM_PAGES","configuration_id","component","configuration_label","to","Link","sx","href","target","rel","fieldsConfigurations","region","name","required","tooltip","type","placeholder","cache","multiline","compression","withBorder","api","heal","scanner","etcd","identity_openid","identity_ldap","logger_webhook","audit_webhook","removeEmptyFields","formFields","filter","field","selectSAs","e","setSelectedSAs","selectedSAs","targetD","checked","elements","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","padding","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/471.3ac500ed.chunk.js b/portal-ui/build/static/js/471.3ac500ed.chunk.js deleted file mode 100644 index 24e351a7f..000000000 --- a/portal-ui/build/static/js/471.3ac500ed.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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(93656),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.3ac500ed.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/471.3ac500ed.chunk.js.map b/portal-ui/build/static/js/471.3ac500ed.chunk.js.map deleted file mode 100644 index 26a71518e..000000000 --- a/portal-ui/build/static/js/471.3ac500ed.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/471.3ac500ed.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/471.bc12301a.chunk.js b/portal-ui/build/static/js/471.bc12301a.chunk.js new file mode 100644 index 000000000..2b58e3f9a --- /dev/null +++ b/portal-ui/build/static/js/471.bc12301a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[471],{80471:function(e,n,t){t.r(n),t.d(n,{default:function(){return O}});var i=t(29439),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(93656),h=t(3579),m=t(20165),j=t(12590),Z=t(55335),b=t(21435),y=t(68733),v=t(81207),S=t(30403),k=t(90673),w=t(38442),C=t(56087),z=t(60364),T=t(42649),I=t(95792),R=t(37516),N=t(80184),E=function(e){var n=e.icon,t=e.description;return(0,N.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,N.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},B=function(e){var n=e.hasMargin,t=void 0===n||n;return(0,N.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,N.jsxs)(l.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,N.jsx)(f.M9,{}),(0,N.jsx)("div",{children:"Why should I register?"})]}),(0,N.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,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,N.jsx)(E,{icon:(0,N.jsx)(f._q,{}),description:"Call Home Monitoring"}),(0,N.jsx)(E,{icon:(0,N.jsx)(f.to,{}),description:"Health Diagnostics"}),(0,N.jsx)(E,{icon:(0,N.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,N.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[t,(0,N.jsx)("div",{className:"title-text",children:i})]})},A=(0,z.$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],z=r[1],T=(0,u.useState)(""),E=(0,i.Z)(T,2),A=E[0],O=E[1],P=(0,u.useState)(""),_=(0,i.Z)(P,2),W=_[0],U=_[1],V=(0,u.useState)(""),H=(0,i.Z)(V,2),D=H[0],G=H[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],ye=(0,u.useState)(!1),ve=(0,i.Z)(ye,2),Se=ve[0],ke=ve[1],we=(0,u.useState)(!1),Ce=(0,i.Z)(we,2),ze=Ce[0],Te=Ce[1],Ie=(0,u.useState)(!1),Re=(0,i.Z)(Ie,2),Ne=Re[0],Ee=Re[1],Be=(0,u.useState)(),Le=(0,i.Z)(Be,2),Fe=Le[0],Me=Le[1],Ae=(0,u.useState)(!0),Oe=(0,i.Z)(Ae,2),Pe=Oe[0],_e=Oe[1],We=(0,u.useState)(!1),Ue=(0,i.Z)(We,2),Ve=Ue[0],He=Ue[1],De=function(){ee(""),se(""),le(""),he(!1),be(!0),pe([]),z(""),O(""),U(""),G(""),J("")},Ge=(0,w.F)(C.C3,C.LC[C.gA.LICENSE],!0),qe=(0,u.useCallback)((function(){ze||(Ge?(Te(!0),v.Z.invoke("GET","/api/v1/subnet/info").then((function(e){Me(e),Ee(!0),Te(!1)})).catch((function(e){"License not found"!==e.errorMessage&&t(e),Ee(!1),Te(!1)}))):Te(!1))}),[ze,Ge,t]),Ke=function(){Se||ae||(ke(!0),v.Z.invoke("GET","/api/v1/subnet/registration-token").then((function(e){ke(!1),e&&e.regToken&&le(e.regToken)})).catch((function(e){console.log(e),t(e),ke(!1)})))},$e=function(e,n){var i={token:e,account_id:n};v.Z.invoke("POST","/api/v1/subnet/register",i).then((function(){ke(!1),De(),qe()})).catch((function(e){t(e),ke(!1)}))},Je=function(){if(!Se){ke(!0);var e={username:W,password:A,apiKey:a};v.Z.invoke("POST","/api/v1/subnet/login",e).then((function(e){ke(!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),ke(!1),De()}))}};(0,u.useEffect)((function(){Pe&&(qe(),_e(!1))}),[qe,Pe,_e]);var Qe,Xe=Ze?(0,N.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,N.jsx)(M,{icon:(0,N.jsx)(j.Z,{}),title:"Register with MinIO Subscription Network"})}):(0,N.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,N.jsx)(M,{icon:(0,N.jsx)(Z.Z,{}),title:" Offline Activation of SUBNET License"})});Qe=Ze?Y&&de.length>0?(0,N.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,N.jsx)(l.Z,{sx:{marginTop:"15px",marginBottom:"15px","& .title-text":{marginLeft:"0px"}},children:(0,N.jsx)(M,{title:"Register MinIO cluster"})}),(0,N.jsxs)(l.Z,{children:[(0,N.jsx)(k.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,N.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,N.jsx)(c.Z,{className:n.button,color:"primary",onClick:function(){Se||(ke(!0),Y&&ie&&$e(Y,ie))},disabled:Se||0===Y.trim().length,variant:"contained",children:"Register"})})]})]}),(0,N.jsx)(B,{})]}):D?(0,N.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,N.jsx)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,N.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,N.jsx)(l.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,N.jsx)(b.Z,{overlayIcon:(0,N.jsx)(S.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return J(e.target.value)},placeholder:"",label:"",value:$})}),(0,N.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,N.jsx)(c.Z,{color:"primary",onClick:function(){return function(){if(!Se){ke(!0);var e={username:W,otp:$,mfa_token:D};v.Z.invoke("POST","/api/v1/subnet/login/mfa",e).then((function(e){ke(!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),ke(!1),J("")}))}}()},disabled:Se||0===$.trim().length||0===D.trim().length,variant:"contained",children:"Verify"})})]}),(0,N.jsx)(B,{})]}):(0,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,N.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,N.jsxs)(l.Z,{sx:{flex:"1"},children:[(0,N.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:W,overlayIcon:(0,N.jsx)(f.oy,{})}),(0,N.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,N.jsx)(m.Z,{}):(0,N.jsx)(h.Z,{}),overlayAction:function(){return he(!fe)}}),(0,N.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,N.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,N.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:Se||0===W.trim().length||0===A.trim().length,onClick:function(){return Je()},children:"Register"})]})]})]}),(0,N.jsx)(B,{})]}):(0,N.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,N.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,N.jsxs)(l.Z,{children:[(0,N.jsxs)(l.Z,{className:"step-row",children:[(0,N.jsx)("div",{className:"step-number",children:"1"})," ",(0,N.jsx)("div",{className:"step-text",children:"Copy the following registration token"})]}),(0,N.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px","& input":{color:"#737373"}},children:(0,N.jsx)(b.Z,{id:"registration-token",name:"registration-token",placeholder:"",label:"",type:"text",onChange:function(){},value:ae,overlayIcon:(0,N.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(ae)}})})]}),(0,N.jsxs)(l.Z,{children:[(0,N.jsxs)(l.Z,{className:"step-row",children:[(0,N.jsx)("div",{className:"step-number",children:"2"}),(0,N.jsx)("div",{className:"step-text",children:"Navigate to SUBNET and register your cluster"})]}),(0,N.jsx)(l.Z,{sx:{flex:"1",marginLeft:"35px"},children:(0,N.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,N.jsxs)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"15px",marginBottom:"15px"},children:[(0,N.jsxs)(l.Z,{className:"step-row",children:[(0,N.jsx)("div",{className:"step-number",children:"3"})," ",(0,N.jsx)("div",{className:"step-text",children:"Enter the API key generated by SUBNET"})]}),(0,N.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px"},children:(0,N.jsx)(b.Z,{value:a,onChange:function(e){return z(e.target.value)},id:"api-key",name:"api-key",placeholder:"",label:"",type:"text"})})]}),(0,N.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,N.jsx)(c.Z,{variant:"contained",color:"primary",onClick:function(){return Je()},disabled:Se||0===a.trim().length,children:"Register"})})]}),(0,N.jsx)(B,{})]});var Ye="mc admin config set {alias} subnet proxy={proxy}",en=(0,N.jsxs)(u.Fragment,{children:[(0,N.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:[Ne&&(0,N.jsx)(L.Z,{email:null===Fe||void 0===Fe?void 0:Fe.email}),Ne?(0,N.jsx)(d.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,N.jsxs)(l.Z,{sx:{padding:"20px","& a":{color:"#2781B0",cursor:"pointer"}},children:["Login to"," ",(0,N.jsx)(x.Z,{href:"https://subnet.min.io",target:"_blank",className:n.link,children:"SUBNET"})," ","to avail support for this MinIO cluster"]})}):null,Ne?null:Xe,Ne?null:Qe]}),!Ne&&Ze&&(0,N.jsxs)(u.Fragment,{children:[(0,N.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"space-between"},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,N.jsx)(I.Z,{}),(0,N.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,N.jsxs)(l.Z,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,N.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,N.jsx)(l.Z,{children:Ve&&(0,N.jsx)(b.Z,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:function(){},label:"",value:Ye,overlayIcon:(0,N.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(Ye)}})})]}),(0,N.jsx)(l.Z,{sx:{display:"flex"},children:(0,N.jsx)(R.Z,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:Ve,onChange:function(e){He(e.target.checked)}})})]}),(0,N.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"center"},children:[(0,N.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,N.jsx)(y.Z,{})," Cluster does not have internet access? Use"," "]}),(0,N.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",marginLeft:"8px"},children:(0,N.jsx)(x.Z,{className:n.link,onClick:function(){Ke(),be(!Ze)},children:"Offline Activation."})})]})]})]}),nn=ze?(0,N.jsx)("div",{children:"Loading.."}):en;return(0,N.jsxs)(u.Fragment,{children:[(0,N.jsx)(p.Z,{label:(0,N.jsx)(u.Fragment,{children:Ze?"Register":(0,N.jsx)(F.Z,{to:C.gA.REGISTER_SUPPORT,label:"Offline Registration",executeOnClick:function(){Ke(),be(!Ze)}})}),actions:(0,N.jsx)(u.Fragment,{})}),(0,N.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.bc12301a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/471.bc12301a.chunk.js.map b/portal-ui/build/static/js/471.bc12301a.chunk.js.map new file mode 100644 index 000000000..3597554ac --- /dev/null +++ b/portal-ui/build/static/js/471.bc12301a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/471.bc12301a.chunk.js","mappings":"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","sources":["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":["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":["FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","color","hasMargin","flex","border","borderRadius","flexFlow","padding","marginLeft","xs","sm","md","marginTop","fontWeight","alignItems","FormTitle","title","justifyContent","className","connector","connect","state","operatorMode","system","displayErrorMessage","setErrorSnackMessage","withStyles","theme","createStyles","loading","paddingTop","paddingLeft","buttons","gap","localMessage","textAlign","headerStyle","palette","primary","main","registerActivationIcon","verticalAlign","registerActivationMode","cursor","subnetDescription","Font","letterSpacing","registeredStatus","backgroundColor","offlineRegisterButton","paddingRight","copyInputBox","link","smallBoxy","sizedLabel","minWidth","actionsTray","searchField","spacingUtils","containerForHeader","spacing","classes","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","label","options","map","organization","company","Button","button","onClick","disabled","trim","variant","InputBoxWrapper","overlayIcon","LockOutlined","event","placeholder","otp","subnetLoginWithMFA","spacerBottom","inputLabel","type","VisibilityOff","RemoveRedEye","overlayAction","spacerRight","preventDefault","window","open","background","extraInputProps","readOnly","navigator","clipboard","writeText","Link","href","proxyConfigurationCommand","regUi","Fragment","RegistrationStatusBanner","email","Grid","item","SettingsIcon","FormSwitchWrapper","checked","OfflineRegistrationBackIcon","uiToShow","PageHeader","BackLink","to","executeOnClick","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/4781.785d14ba.chunk.js b/portal-ui/build/static/js/4781.785d14ba.chunk.js new file mode 100644 index 000000000..c237d3663 --- /dev/null +++ b/portal-ui/build/static/js/4781.785d14ba.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4781],{57314:function(e,t,n){var a=n(1413),s=n(72791),l=n(61889),i=n(30829),r=n(20068),o=n(27391),c=n(11135),u=n(25787),d=n(23814),m=n(84570),x=n(80184);t.Z=(0,u.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},d.YI),d.Hr),{},{inputLabel:(0,a.Z)((0,a.Z)({},d.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,a.Z)((0,a.Z)({},d.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,n=e.onChange,a=e.value,c=e.id,u=e.name,d=e.disabled,h=void 0!==d&&d,p=e.tooltip,f=void 0===p?"":p,Z=e.index,g=void 0===Z?0:Z,v=e.error,j=void 0===v?"":v,b=e.required,C=void 0!==b&&b,N=e.placeholder,P=void 0===N?"":N,w=e.classes,S={"data-index":g};return(0,x.jsx)(s.Fragment,{children:(0,x.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(w.fieldContainer," ").concat(""!==j?w.errorInField:""),children:[""!==t&&(0,x.jsxs)(i.Z,{htmlFor:c,className:w.inputLabel,children:[(0,x.jsxs)("span",{children:[t,C?"*":""]}),""!==f&&(0,x.jsx)("div",{className:w.tooltipContainer,children:(0,x.jsx)(r.Z,{title:f,placement:"top-start",children:(0,x.jsx)("div",{className:w.tooltip,children:(0,x.jsx)(m.Z,{})})})})]}),(0,x.jsx)("div",{className:w.textBoxContainer,children:(0,x.jsx)(o.Z,{id:c,name:u,fullWidth:!0,value:a,disabled:h,onChange:n,multiline:!0,rows:5,inputProps:S,error:""!==j,helperText:j,placeholder:P,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:w.cssOutlinedInput,root:w.rootContainer}},variant:"outlined"})})]})})}))},64163:function(e,t,n){var a=n(1413),s=n(72791),l=n(61889),i=n(11135),r=n(25787),o=n(23814),c=n(80184);t.Z=(0,r.Z)((function(e){return(0,i.Z)((0,a.Z)({},o.xx))}))((function(e){var t=e.classes,n=e.label,a=void 0===n?"":n,i=e.content,r=e.multiLine,o=void 0!==r&&r;return(0,c.jsx)(s.Fragment,{children:(0,c.jsxs)(l.ZP,{className:t.prefinedContainer,children:[""!==a&&(0,c.jsx)(l.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:a}),(0,c.jsx)(l.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(l.ZP,{item:!0,xs:12,className:o?t.innerContentMultiline:t.innerContent,children:i})})]})})}))},84781:function(e,t,n){n.r(t);var a=n(29439),s=n(1413),l=n(72791),i=n(11135),r=n(25787),o=n(61889),c=n(21435),u=n(83679),d=n(23814),m=n(57314),x=n(37516),h=n(64163),p=n(80184);t.default=(0,r.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)({},d.oO),d.DF))}))((function(e){var t=e.onChange,n=e.classes,s=(0,l.useState)(!1),i=(0,a.Z)(s,2),r=i[0],d=i[1],f=(0,l.useState)(""),Z=(0,a.Z)(f,2),g=Z[0],v=Z[1],j=(0,l.useState)(""),b=(0,a.Z)(j,2),C=b[0],N=b[1],P=(0,l.useState)(""),w=(0,a.Z)(P,2),S=w[0],F=w[1],k=(0,l.useState)(""),E=(0,a.Z)(k,2),I=E[0],y=E[1],R=(0,l.useState)(""),L=(0,a.Z)(R,2),O=L[0],_=L[1],q=(0,l.useState)(""),D=(0,a.Z)(q,2),B=D[0],M=D[1],T=(0,l.useState)(""),W=(0,a.Z)(T,2),A=W[0],Q=W[1],z=(0,l.useState)("namespace"),H=(0,a.Z)(z,2),Y=H[0],G=H[1],U=(0,l.useState)(""),$=(0,a.Z)(U,2),J=$[0],K=$[1],V=(0,l.useState)(""),X=(0,a.Z)(V,2),ee=X[0],te=X[1],ne=(0,l.useState)(""),ae=(0,a.Z)(ne,2),se=ae[0],le=ae[1],ie=(0,l.useCallback)((function(){return"".concat(O,":").concat(B,"@tcp(").concat(C,":").concat(I,")/").concat(S)}),[O,B,C,I,S]);(0,l.useEffect)((function(){""!==g&&t([{key:"dsn_string",value:g},{key:"table",value:A},{key:"format",value:Y},{key:"queue_dir",value:J},{key:"queue_limit",value:ee},{key:"comment",value:se}])}),[g,A,Y,J,ee,se,t]),(0,l.useEffect)((function(){var e=ie();v(e)}),[O,S,B,I,C,v,ie]);return(0,p.jsxs)(o.ZP,{container:!0,children:[(0,p.jsx)(o.ZP,{item:!0,xs:12,children:(0,p.jsx)(x.Z,{label:"Enter DNS String",checked:r,id:"checkedB",name:"checkedB",onChange:function(e){if(e.target.checked){var t=ie();v(t)}else{var n=function(e,t){for(var n,a=new Map,s=/(.*?):(.*?)@tcp\((.*?):(.*?)\)\/(.*?)$/gm;null!==(n=s.exec(e));)n.index===s.lastIndex&&s.lastIndex++,a.set("user",n[1]),a.set("password",n[2]),a.set("host",n[3]),a.set("port",n[4]),a.set("dbname",n[5]);return a}(g);N(n.get("host")?n.get("host")+"":""),y(n.get("port")?n.get("port")+"":""),F(n.get("dbname")?n.get("dbname")+"":""),_(n.get("user")?n.get("user")+"":""),M(n.get("password")?n.get("password")+"":"")}d(e.target.checked)},value:"dnsString"})}),r?(0,p.jsx)(l.Fragment,{children:(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"dsn-string",name:"dsn_string",label:"DSN String",value:g,onChange:function(e){v(e.target.value)}})})}):(0,p.jsxs)(l.Fragment,{children:[(0,p.jsx)(o.ZP,{item:!0,xs:12,children:(0,p.jsxs)(o.ZP,{item:!0,xs:12,className:n.configureString,children:[(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"host",name:"host",label:"",placeholder:"Enter Host",value:C,onChange:function(e){N(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"db-name",name:"db-name",label:"",placeholder:"Enter DB Name",value:S,onChange:function(e){F(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"port",name:"port",label:"",placeholder:"Enter Port",value:I,onChange:function(e){y(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"user",name:"user",label:"",placeholder:"Enter User",value:O,onChange:function(e){_(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"password",name:"password",label:"",placeholder:"Enter Password",type:"password",value:B,onChange:function(e){M(e.target.value)}})})]})}),(0,p.jsx)(h.Z,{label:"Connection String",content:g}),(0,p.jsx)(o.ZP,{item:!0,xs:12,children:(0,p.jsx)("br",{})})]}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"table",name:"table",label:"Table",placeholder:"Enter Table Name",value:A,tooltip:"DB table name to store/update events, table is auto-created",onChange:function(e){Q(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(u.Z,{currentSelection:Y,id:"format",name:"format",label:"Format",onChange:function(e){G(e.target.value)},tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",selectorOptions:[{label:"Namespace",value:"namespace"},{label:"Access",value:"access"}]})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"queue-dir",name:"queue_dir",label:"Queue Dir",placeholder:"Enter Queue Dir",value:J,tooltip:"staging dir for undelivered messages e.g. '/home/events'",onChange:function(e){K(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"queue-limit",name:"queue_limit",label:"Queue Limit",placeholder:"Enter Queue Limit",type:"number",value:ee,tooltip:"maximum limit for undelivered messages, defaults to '10000'",onChange:function(e){te(e.target.value)}})}),(0,p.jsx)(o.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(m.Z,{id:"comment",name:"comment",label:"Comment",placeholder:"Enter custom notes if any",value:se,onChange:function(e){le(e.target.value)}})})]})}))}}]); +//# sourceMappingURL=4781.785d14ba.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4781.785d14ba.chunk.js.map b/portal-ui/build/static/js/4781.785d14ba.chunk.js.map new file mode 100644 index 000000000..5e89a889a --- /dev/null +++ b/portal-ui/build/static/js/4781.785d14ba.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4781.785d14ba.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/NotificationEndpoints/CustomForms/ConfMySql.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, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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 .\n\nimport React, { useCallback, useEffect, useState } 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\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { IElementValue } from \"../../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport CommentBoxWrapper from \"../../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface IConfMySqlProps {\n onChange: (newValue: IElementValue[]) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst ConfMySql = ({ onChange, classes }: IConfMySqlProps) => {\n //Local States\n const [useDsnString, setUseDsnString] = useState(false);\n const [dsnString, setDsnString] = useState(\"\");\n const [host, setHostname] = useState(\"\");\n const [dbName, setDbName] = useState(\"\");\n const [port, setPort] = useState(\"\");\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n\n const [table, setTable] = useState(\"\");\n const [format, setFormat] = useState(\"namespace\");\n const [queueDir, setQueueDir] = useState(\"\");\n const [queueLimit, setQueueLimit] = useState(\"\");\n const [comment, setComment] = useState(\"\");\n\n // dsn_string* (string) MySQL data-source-name connection string e.g. \":@tcp(:)/\"\n // table* (string) DB table name to store/update events, table is auto-created\n // format* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\n // queue_dir (path) staging dir for undelivered messages e.g. '/home/events'\n // queue_limit (number) maximum limit for undelivered messages, defaults to '100000'\n // comment (sentence) optionally add a comment to this setting\n\n const parseDsnString = (\n input: string,\n keys: string[]\n ): Map => {\n let kvFields: Map = new Map();\n const regex = /(.*?):(.*?)@tcp\\((.*?):(.*?)\\)\\/(.*?)$/gm;\n let m;\n\n while ((m = regex.exec(input)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n kvFields.set(\"user\", m[1]);\n kvFields.set(\"password\", m[2]);\n kvFields.set(\"host\", m[3]);\n kvFields.set(\"port\", m[4]);\n kvFields.set(\"dbname\", m[5]);\n }\n\n return kvFields;\n };\n\n const configToDsnString = useCallback((): string => {\n return `${user}:${password}@tcp(${host}:${port})/${dbName}`;\n }, [user, password, host, port, dbName]);\n\n useEffect(() => {\n if (dsnString !== \"\") {\n const formValues = [\n { key: \"dsn_string\", value: dsnString },\n { key: \"table\", value: table },\n { key: \"format\", value: format },\n { key: \"queue_dir\", value: queueDir },\n { key: \"queue_limit\", value: queueLimit },\n { key: \"comment\", value: comment },\n ];\n\n onChange(formValues);\n }\n }, [dsnString, table, format, queueDir, queueLimit, comment, onChange]);\n\n useEffect(() => {\n const cs = configToDsnString();\n setDsnString(cs);\n }, [user, dbName, password, port, host, setDsnString, configToDsnString]);\n\n const switcherChangeEvt = (event: React.ChangeEvent) => {\n if (event.target.checked) {\n // build dsn_string\n const cs = configToDsnString();\n setDsnString(cs);\n } else {\n // parse dsn_string\n const kv = parseDsnString(dsnString, [\n \"host\",\n \"port\",\n \"dbname\",\n \"user\",\n \"password\",\n ]);\n setHostname(kv.get(\"host\") ? kv.get(\"host\") + \"\" : \"\");\n setPort(kv.get(\"port\") ? kv.get(\"port\") + \"\" : \"\");\n setDbName(kv.get(\"dbname\") ? kv.get(\"dbname\") + \"\" : \"\");\n setUser(kv.get(\"user\") ? kv.get(\"user\") + \"\" : \"\");\n setPassword(kv.get(\"password\") ? kv.get(\"password\") + \"\" : \"\");\n }\n\n setUseDsnString(event.target.checked);\n };\n\n return (\n \n \n \n \n {useDsnString ? (\n \n \n ) => {\n setDsnString(e.target.value);\n }}\n />\n \n \n ) : (\n \n \n \n \n ) => {\n setHostname(e.target.value);\n }}\n />\n \n \n ) => {\n setDbName(e.target.value);\n }}\n />\n \n \n ) => {\n setPort(e.target.value);\n }}\n />\n \n\n \n ) => {\n setUser(e.target.value);\n }}\n />\n \n \n ) => {\n setPassword(e.target.value);\n }}\n />\n \n \n \n \n \n
    \n
    \n
    \n )}\n \n ) => {\n setTable(e.target.value);\n }}\n />\n \n \n {\n setFormat(e.target.value);\n }}\n tooltip=\"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\"\n selectorOptions={[\n { label: \"Namespace\", value: \"namespace\" },\n { label: \"Access\", value: \"access\" },\n ]}\n />\n \n \n ) => {\n setQueueDir(e.target.value);\n }}\n />\n \n \n ) => {\n setQueueLimit(e.target.value);\n }}\n />\n \n \n ) => {\n setComment(e.target.value);\n }}\n />\n \n
    \n );\n};\n\nexport default withStyles(styles)(ConfMySql);\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","predefinedList","content","multiLine","Fragment","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","modalBasic","formFieldStyles","useState","useDsnString","setUseDsnString","dsnString","setDsnString","host","setHostname","dbName","setDbName","port","setPort","user","setUser","password","setPassword","table","setTable","format","setFormat","queueDir","setQueueDir","queueLimit","setQueueLimit","comment","setComment","configToDsnString","useCallback","useEffect","key","cs","container","checked","event","target","kv","input","keys","m","kvFields","Map","regex","exec","lastIndex","set","parseDsnString","get","formFieldRow","e","configureString","type","currentSelection","selectorOptions"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4781.ca99434f.chunk.js b/portal-ui/build/static/js/4781.ca99434f.chunk.js deleted file mode 100644 index 6c9067f3d..000000000 --- a/portal-ui/build/static/js/4781.ca99434f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4781],{57314:function(e,t,n){var a=n(1413),l=n(72791),s=n(61889),i=n(30829),o=n(20068),r=n(27391),c=n(11135),d=n(25787),u=n(23814),m=n(84570),x=n(80184);t.Z=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},u.YI),u.Hr),{},{inputLabel:(0,a.Z)((0,a.Z)({},u.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,a.Z)((0,a.Z)({},u.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,n=e.onChange,a=e.value,c=e.id,d=e.name,u=e.disabled,h=void 0!==u&&u,p=e.tooltip,Z=void 0===p?"":p,f=e.index,v=void 0===f?0:f,g=e.error,b=void 0===g?"":g,j=e.required,C=void 0!==j&&j,N=e.placeholder,P=void 0===N?"":N,S=e.classes,w={"data-index":v};return(0,x.jsx)(l.Fragment,{children:(0,x.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(S.fieldContainer," ").concat(""!==b?S.errorInField:""),children:[""!==t&&(0,x.jsxs)(i.Z,{htmlFor:c,className:S.inputLabel,children:[(0,x.jsxs)("span",{children:[t,C?"*":""]}),""!==Z&&(0,x.jsx)("div",{className:S.tooltipContainer,children:(0,x.jsx)(o.Z,{title:Z,placement:"top-start",children:(0,x.jsx)("div",{className:S.tooltip,children:(0,x.jsx)(m.Z,{})})})})]}),(0,x.jsx)("div",{className:S.textBoxContainer,children:(0,x.jsx)(r.Z,{id:c,name:d,fullWidth:!0,value:a,disabled:h,onChange:n,multiline:!0,rows:5,inputProps:w,error:""!==b,helperText:b,placeholder:P,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:S.cssOutlinedInput,root:S.rootContainer}},variant:"outlined"})})]})})}))},64163:function(e,t,n){var a=n(1413),l=n(72791),s=n(61889),i=n(11135),o=n(25787),r=n(23814),c=n(80184);t.Z=(0,o.Z)((function(e){return(0,i.Z)((0,a.Z)({},r.xx))}))((function(e){var t=e.classes,n=e.label,a=void 0===n?"":n,i=e.content,o=e.multiLine,r=void 0!==o&&o;return(0,c.jsx)(l.Fragment,{children:(0,c.jsxs)(s.ZP,{className:t.prefinedContainer,children:[""!==a&&(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:a}),(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(s.ZP,{item:!0,xs:12,className:r?t.innerContentMultiline:t.innerContent,children:i})})]})})}))},83679:function(e,t,n){var a=n(4942),l=n(1413),s=(n(72791),n(28182)),i=n(61889),o=n(10765),r=n(85523),c=n(61419),d=n(30829),u=n(20068),m=n(11135),x=n(25787),h=n(72455),p=n(23814),Z=n(84570),f=n(80184),v=(0,h.Z)((0,l.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),g=function(e){var t=v();return(0,f.jsx)(c.Z,(0,l.Z)({className:t.root,disableRipple:!0,color:"default",checkedIcon:(0,f.jsx)("span",{className:t.radioSelectedIcon}),icon:(0,f.jsx)("span",{className:t.radioUnselectedIcon})},e))};t.Z=(0,x.Z)((function(e){return(0,m.Z)((0,l.Z)((0,l.Z)((0,l.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 t=e.selectorOptions,n=void 0===t?[]:t,l=e.currentSelection,c=e.label,m=e.id,x=e.name,h=e.onChange,p=e.tooltip,v=void 0===p?"":p,b=e.disableOptions,j=void 0!==b&&b,C=e.classes,N=e.displayInColumn,P=void 0!==N&&N;return(0,f.jsxs)(i.ZP,{container:!0,alignItems:"center",children:[(0,f.jsx)(i.ZP,{item:!0,xs:!0,children:(0,f.jsxs)(d.Z,{htmlFor:m,className:C.inputLabel,children:[(0,f.jsx)("span",{children:c}),""!==v&&(0,f.jsx)("div",{className:C.tooltipContainer,children:(0,f.jsx)(u.Z,{title:v,placement:"top-start",children:(0,f.jsx)("div",{children:(0,f.jsx)(Z.Z,{})})})})]})}),(0,f.jsx)(i.ZP,{item:!0,xs:!0,className:C.radioOptionsLayout,children:(0,f.jsx)(o.Z,{"aria-label":m,id:m,name:x,value:l,onChange:h,row:!P,style:{display:"block",textAlign:"right"},children:n.map((function(e){return(0,f.jsx)(r.Z,{value:e.value,control:(0,f.jsx)(g,{}),label:e.label,disabled:j,className:(0,s.Z)(C.optionLabel,(0,a.Z)({},C.checkedOption,e.value===l))},"rd-".concat(x,"-").concat(e.value))}))})})]})}))},84781:function(e,t,n){n.r(t);var a=n(29439),l=n(1413),s=n(72791),i=n(11135),o=n(25787),r=n(61889),c=n(21435),d=n(83679),u=n(23814),m=n(57314),x=n(37516),h=n(64163),p=n(80184);t.default=(0,o.Z)((function(e){return(0,i.Z)((0,l.Z)((0,l.Z)({},u.oO),u.DF))}))((function(e){var t=e.onChange,n=e.classes,l=(0,s.useState)(!1),i=(0,a.Z)(l,2),o=i[0],u=i[1],Z=(0,s.useState)(""),f=(0,a.Z)(Z,2),v=f[0],g=f[1],b=(0,s.useState)(""),j=(0,a.Z)(b,2),C=j[0],N=j[1],P=(0,s.useState)(""),S=(0,a.Z)(P,2),w=S[0],F=S[1],k=(0,s.useState)(""),E=(0,a.Z)(k,2),I=E[0],L=E[1],y=(0,s.useState)(""),O=(0,a.Z)(y,2),R=O[0],M=O[1],_=(0,s.useState)(""),q=(0,a.Z)(_,2),D=q[0],B=q[1],W=(0,s.useState)(""),z=(0,a.Z)(W,2),A=z[0],T=z[1],H=(0,s.useState)("namespace"),Q=(0,a.Z)(H,2),Y=Q[0],U=Q[1],G=(0,s.useState)(""),$=(0,a.Z)(G,2),J=$[0],K=$[1],V=(0,s.useState)(""),X=(0,a.Z)(V,2),ee=X[0],te=X[1],ne=(0,s.useState)(""),ae=(0,a.Z)(ne,2),le=ae[0],se=ae[1],ie=(0,s.useCallback)((function(){return"".concat(R,":").concat(D,"@tcp(").concat(C,":").concat(I,")/").concat(w)}),[R,D,C,I,w]);(0,s.useEffect)((function(){""!==v&&t([{key:"dsn_string",value:v},{key:"table",value:A},{key:"format",value:Y},{key:"queue_dir",value:J},{key:"queue_limit",value:ee},{key:"comment",value:le}])}),[v,A,Y,J,ee,le,t]),(0,s.useEffect)((function(){var e=ie();g(e)}),[R,w,D,I,C,g,ie]);return(0,p.jsxs)(r.ZP,{container:!0,children:[(0,p.jsx)(r.ZP,{item:!0,xs:12,children:(0,p.jsx)(x.Z,{label:"Enter DNS String",checked:o,id:"checkedB",name:"checkedB",onChange:function(e){if(e.target.checked){var t=ie();g(t)}else{var n=function(e,t){for(var n,a=new Map,l=/(.*?):(.*?)@tcp\((.*?):(.*?)\)\/(.*?)$/gm;null!==(n=l.exec(e));)n.index===l.lastIndex&&l.lastIndex++,a.set("user",n[1]),a.set("password",n[2]),a.set("host",n[3]),a.set("port",n[4]),a.set("dbname",n[5]);return a}(v);N(n.get("host")?n.get("host")+"":""),L(n.get("port")?n.get("port")+"":""),F(n.get("dbname")?n.get("dbname")+"":""),M(n.get("user")?n.get("user")+"":""),B(n.get("password")?n.get("password")+"":"")}u(e.target.checked)},value:"dnsString"})}),o?(0,p.jsx)(s.Fragment,{children:(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"dsn-string",name:"dsn_string",label:"DSN String",value:v,onChange:function(e){g(e.target.value)}})})}):(0,p.jsxs)(s.Fragment,{children:[(0,p.jsx)(r.ZP,{item:!0,xs:12,children:(0,p.jsxs)(r.ZP,{item:!0,xs:12,className:n.configureString,children:[(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"host",name:"host",label:"",placeholder:"Enter Host",value:C,onChange:function(e){N(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"db-name",name:"db-name",label:"",placeholder:"Enter DB Name",value:w,onChange:function(e){F(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"port",name:"port",label:"",placeholder:"Enter Port",value:I,onChange:function(e){L(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"user",name:"user",label:"",placeholder:"Enter User",value:R,onChange:function(e){M(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"password",name:"password",label:"",placeholder:"Enter Password",type:"password",value:D,onChange:function(e){B(e.target.value)}})})]})}),(0,p.jsx)(h.Z,{label:"Connection String",content:v}),(0,p.jsx)(r.ZP,{item:!0,xs:12,children:(0,p.jsx)("br",{})})]}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"table",name:"table",label:"Table",placeholder:"Enter Table Name",value:A,tooltip:"DB table name to store/update events, table is auto-created",onChange:function(e){T(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(d.Z,{currentSelection:Y,id:"format",name:"format",label:"Format",onChange:function(e){U(e.target.value)},tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",selectorOptions:[{label:"Namespace",value:"namespace"},{label:"Access",value:"access"}]})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"queue-dir",name:"queue_dir",label:"Queue Dir",placeholder:"Enter Queue Dir",value:J,tooltip:"staging dir for undelivered messages e.g. '/home/events'",onChange:function(e){K(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(c.Z,{id:"queue-limit",name:"queue_limit",label:"Queue Limit",placeholder:"Enter Queue Limit",type:"number",value:ee,tooltip:"maximum limit for undelivered messages, defaults to '10000'",onChange:function(e){te(e.target.value)}})}),(0,p.jsx)(r.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,p.jsx)(m.Z,{id:"comment",name:"comment",label:"Comment",placeholder:"Enter custom notes if any",value:le,onChange:function(e){se(e.target.value)}})})]})}))}}]); -//# sourceMappingURL=4781.ca99434f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4781.ca99434f.chunk.js.map b/portal-ui/build/static/js/4781.ca99434f.chunk.js.map deleted file mode 100644 index 2003feadd..000000000 --- a/portal-ui/build/static/js/4781.ca99434f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4781.ca99434f.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/NotificationEndpoints/CustomForms/ConfMySql.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, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { IElementValue } from \"../../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport CommentBoxWrapper from \"../../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface IConfMySqlProps {\n onChange: (newValue: IElementValue[]) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst ConfMySql = ({ onChange, classes }: IConfMySqlProps) => {\n //Local States\n const [useDsnString, setUseDsnString] = useState(false);\n const [dsnString, setDsnString] = useState(\"\");\n const [host, setHostname] = useState(\"\");\n const [dbName, setDbName] = useState(\"\");\n const [port, setPort] = useState(\"\");\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n\n const [table, setTable] = useState(\"\");\n const [format, setFormat] = useState(\"namespace\");\n const [queueDir, setQueueDir] = useState(\"\");\n const [queueLimit, setQueueLimit] = useState(\"\");\n const [comment, setComment] = useState(\"\");\n\n // dsn_string* (string) MySQL data-source-name connection string e.g. \":@tcp(:)/\"\n // table* (string) DB table name to store/update events, table is auto-created\n // format* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\n // queue_dir (path) staging dir for undelivered messages e.g. '/home/events'\n // queue_limit (number) maximum limit for undelivered messages, defaults to '100000'\n // comment (sentence) optionally add a comment to this setting\n\n const parseDsnString = (\n input: string,\n keys: string[]\n ): Map => {\n let kvFields: Map = new Map();\n const regex = /(.*?):(.*?)@tcp\\((.*?):(.*?)\\)\\/(.*?)$/gm;\n let m;\n\n while ((m = regex.exec(input)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n kvFields.set(\"user\", m[1]);\n kvFields.set(\"password\", m[2]);\n kvFields.set(\"host\", m[3]);\n kvFields.set(\"port\", m[4]);\n kvFields.set(\"dbname\", m[5]);\n }\n\n return kvFields;\n };\n\n const configToDsnString = useCallback((): string => {\n return `${user}:${password}@tcp(${host}:${port})/${dbName}`;\n }, [user, password, host, port, dbName]);\n\n useEffect(() => {\n if (dsnString !== \"\") {\n const formValues = [\n { key: \"dsn_string\", value: dsnString },\n { key: \"table\", value: table },\n { key: \"format\", value: format },\n { key: \"queue_dir\", value: queueDir },\n { key: \"queue_limit\", value: queueLimit },\n { key: \"comment\", value: comment },\n ];\n\n onChange(formValues);\n }\n }, [dsnString, table, format, queueDir, queueLimit, comment, onChange]);\n\n useEffect(() => {\n const cs = configToDsnString();\n setDsnString(cs);\n }, [user, dbName, password, port, host, setDsnString, configToDsnString]);\n\n const switcherChangeEvt = (event: React.ChangeEvent) => {\n if (event.target.checked) {\n // build dsn_string\n const cs = configToDsnString();\n setDsnString(cs);\n } else {\n // parse dsn_string\n const kv = parseDsnString(dsnString, [\n \"host\",\n \"port\",\n \"dbname\",\n \"user\",\n \"password\",\n ]);\n setHostname(kv.get(\"host\") ? kv.get(\"host\") + \"\" : \"\");\n setPort(kv.get(\"port\") ? kv.get(\"port\") + \"\" : \"\");\n setDbName(kv.get(\"dbname\") ? kv.get(\"dbname\") + \"\" : \"\");\n setUser(kv.get(\"user\") ? kv.get(\"user\") + \"\" : \"\");\n setPassword(kv.get(\"password\") ? kv.get(\"password\") + \"\" : \"\");\n }\n\n setUseDsnString(event.target.checked);\n };\n\n return (\n \n \n \n \n {useDsnString ? (\n \n \n ) => {\n setDsnString(e.target.value);\n }}\n />\n \n \n ) : (\n \n \n \n \n ) => {\n setHostname(e.target.value);\n }}\n />\n \n \n ) => {\n setDbName(e.target.value);\n }}\n />\n \n \n ) => {\n setPort(e.target.value);\n }}\n />\n \n\n \n ) => {\n setUser(e.target.value);\n }}\n />\n \n \n ) => {\n setPassword(e.target.value);\n }}\n />\n \n \n \n \n \n
    \n
    \n
    \n )}\n \n ) => {\n setTable(e.target.value);\n }}\n />\n \n \n {\n setFormat(e.target.value);\n }}\n tooltip=\"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\"\n selectorOptions={[\n { label: \"Namespace\", value: \"namespace\" },\n { label: \"Access\", value: \"access\" },\n ]}\n />\n \n \n ) => {\n setQueueDir(e.target.value);\n }}\n />\n \n \n ) => {\n setQueueLimit(e.target.value);\n }}\n />\n \n \n ) => {\n setComment(e.target.value);\n }}\n />\n \n
    \n );\n};\n\nexport default withStyles(styles)(ConfMySql);\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","predefinedList","content","multiLine","Fragment","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","radioStyles","makeStyles","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","icon","radioUnselectedIcon","optionLabel","marginRight","checkedOption","selectorOptions","currentSelection","disableOptions","displayInColumn","container","radioOptionsLayout","row","style","textAlign","map","selectorOption","control","clsx","modalBasic","formFieldStyles","useState","useDsnString","setUseDsnString","dsnString","setDsnString","host","setHostname","dbName","setDbName","port","setPort","user","setUser","password","setPassword","table","setTable","format","setFormat","queueDir","setQueueDir","queueLimit","setQueueLimit","comment","setComment","configToDsnString","useCallback","useEffect","key","cs","checked","event","target","kv","input","keys","m","kvFields","Map","regex","exec","lastIndex","set","parseDsnString","get","formFieldRow","e","configureString","type"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4874.80bf31e6.chunk.js b/portal-ui/build/static/js/4874.80bf31e6.chunk.js deleted file mode 100644 index 32700b983..000000000 --- a/portal-ui/build/static/js/4874.80bf31e6.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","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(93656),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(29439),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(93656),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/5026.0b30f6e2.chunk.js b/portal-ui/build/static/js/5026.0b30f6e2.chunk.js new file mode 100644 index 000000000..0234993c9 --- /dev/null +++ b/portal-ui/build/static/js/5026.0b30f6e2.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5026],{56028:function(e,t,n){"use strict";var a=n(29439),o=n(1413),r=n(72791),i=n(60364),l=n(13400),c=n(55646),s=n(5574),d=n(65661),u=n(39157),v=n(11135),m=n(25787),f=n(23814),h=n(42649),p=n(29823),g=n(28057),Z=n(80184),x=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});t.Z=(0,m.Z)((function(e){return(0,v.Z)((0,o.Z)((0,o.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(x((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,v=e.children,m=e.classes,f=e.wideLimit,h=void 0===f||f,x=e.modalSnackMessage,k=e.noContentPadding,y=e.setModalSnackMessage,b=e.titleIcon,j=void 0===b?null:b,S=(0,r.useState)(!1),z=(0,a.Z)(S,2),C=z[0],M=z[1];(0,r.useEffect)((function(){y("")}),[y]),(0,r.useEffect)((function(){if(x){if(""===x.message)return void M(!1);"error"!==x.type&&M(!0)}}),[x]);var E=h?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return x&&(I=x.detailedErrorMsg,(""===x.detailedErrorMsg||x.detailedErrorMsg.length<5)&&(I=x.message)),(0,Z.jsxs)(s.Z,(0,o.Z)((0,o.Z)({open:n,classes:m},E),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:m.root,children:[(0,Z.jsxs)(d.Z,{className:m.title,children:[(0,Z.jsxs)("div",{className:m.titleText,children:[j," ",i]}),(0,Z.jsx)("div",{className:m.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(p.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(c.Z,{open:C,className:m.snackBarModal,onClose:function(){M(!1),y("")},message:I,ContentProps:{className:"".concat(m.snackBar," ").concat(x&&"error"===x.type?m.errorSnackBar:"")},autoHideDuration:x&&"error"===x.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:k?"":m.content,children:v})]}))})))},32509:function(e,t,n){"use strict";var a=n(93433),o=n(1413),r=n(72791),i=n(11135),l=n(25787),c=n(23814),s=n(21435),d=n(20068),u=n(13400),v=n(42419),m=n(27247),f=n(40968),h=n(84741),p=n(80184);t.Z=(0,l.Z)((function(e){return(0,i.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,i=e.setNewValues,l=e.error,c=e.setError,g=function(e){c((0,h.h)(l,e))};(0,r.useEffect)((function(){for(var e=[],t=0;t1){var e=(0,a.Z)(o);e.splice(c,1),i(e)}},children:(0,p.jsx)(m.Z,{})})})]})},"keyvalue-".concat(c.toString()))}));return(0,p.jsx)(r.Fragment,{children:Z})}))},47879:function(e,t,n){"use strict";var a=n(1413),o=n(72791),r=n(60364),i=n(26181),l=n.n(i),c=n(11135),s=n(25787),d=n(23814),u=n(92983),v=n(80184),m=(0,r.$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))))}))(m((function(e){var t=e.classes,n=e.records,a=e.recordName;return(0,v.jsx)(o.Fragment,{children:(0,v.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)),r=n(80184),i=(0,o.default)((0,r.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.Z=i},26759:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),i=(0,o.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=i},70366:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),i=(0,o.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=i},27247:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),i=(0,o.default)((0,r.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=i},97911:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),i=(0,o.default)((0,r.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 a=n(4942),o=n(63366),r=n(87462),i=n(72791),l=n(90767),c=n(12065),s=n(97278),d=n(76189),u=n(80184),v=(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"),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"),h=n(14036),p=n(93736),g=n(47630),Z=n(95159);function x(e){return(0,Z.Z)("MuiCheckbox",e)}var k=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),y=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],b=(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,h.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,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(k.checked,", &.").concat(k.indeterminate),{color:n.palette[o.color].main}),(0,a.Z)(t,"&.".concat(k.disabled),{color:n.palette.action.disabled}),t))})),j=(0,u.jsx)(m,{}),S=(0,u.jsx)(v,{}),z=(0,u.jsx)(f,{}),C=i.forwardRef((function(e,t){var n,a,c=(0,p.Z)({props:e,name:"MuiCheckbox"}),s=c.checkedIcon,d=void 0===s?j:s,v=c.color,m=void 0===v?"primary":v,f=c.icon,g=void 0===f?S:f,Z=c.indeterminate,k=void 0!==Z&&Z,C=c.indeterminateIcon,M=void 0===C?z:C,E=c.inputProps,I=c.size,w=void 0===I?"medium":I,D=(0,o.Z)(c,y),H=k?M:g,N=k?M:d,V=(0,r.Z)({},c,{color:m,indeterminate:k,size:w}),A=function(e){var t=e.classes,n=e.indeterminate,a=e.color,o={root:["root",n&&"indeterminate","color".concat((0,h.Z)(a))]},i=(0,l.Z)(o,x,t);return(0,r.Z)({},t,i)}(V);return(0,u.jsx)(b,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":k},E),icon:i.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:w}),checkedIcon:i.cloneElement(N,{fontSize:null!=(a=N.props.fontSize)?a:w}),ownerState:V,ref:t},D,{classes:A}))}))},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)}}}]); +//# sourceMappingURL=5026.0b30f6e2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5026.0b30f6e2.chunk.js.map b/portal-ui/build/static/js/5026.0b30f6e2.chunk.js.map new file mode 100644 index 000000000..813d2f9d2 --- /dev/null +++ b/portal-ui/build/static/js/5026.0b30f6e2.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5026.0b30f6e2.chunk.js","mappings":"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","sources":["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/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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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: \"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":["connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","withStyles","theme","createStyles","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","children","classes","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","className","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","buttonContainer","textAlign","multiContainer","display","alignItems","justifyContent","sizeFactorContainer","marginLeft","bottomContainer","flexGrow","factorElements","sizeNumber","fontSize","fontWeight","sizeDescription","color","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","isLoading","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","props","styles","ownerState","indeterminate","capitalize","_extends","palette","text","secondary","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","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/5085.49076139.chunk.js b/portal-ui/build/static/js/5085.49076139.chunk.js new file mode 100644 index 000000000..9c9ca73fd --- /dev/null +++ b/portal-ui/build/static/js/5085.49076139.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5085],{26759:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},97911:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},82422:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),c=n(28182),l=function(e){var t=a.useRef({});return a.useEffect((function(){t.current=e})),t.current},u=n(30208),s=n(95159);function f(e){return(0,s.Z)("MuiBadge",e)}var p=(0,u.Z)("MuiBadge",["root","badge","dot","standard","anchorOriginTopLeft","anchorOriginTopRight","anchorOriginBottomLeft","anchorOriginBottomRight","invisible"]),d=n(27312),v=n(90767),g=n(90183);var m=n(80184),b=["anchorOrigin","classes","badgeContent","component","children","className","components","componentsProps","invisible","max","showZero","variant"],h=a.forwardRef((function(e,t){var n=e.anchorOrigin,r=void 0===n?{vertical:"top",horizontal:"right"}:n,a=e.classes,u=e.component,s=e.children,p=e.className,h=e.components,y=void 0===h?{}:h,O=e.componentsProps,w=void 0===O?{}:O,x=e.max,D=void 0===x?99:x,C=e.showZero,j=void 0!==C&&C,Z=e.variant,P=void 0===Z?"standard":Z,k=(0,o.Z)(e,b),S=function(e){var t=e.anchorOrigin,n=void 0===t?{vertical:"top",horizontal:"right"}:t,r=e.badgeContent,o=e.invisible,i=void 0!==o&&o,a=e.max,c=void 0===a?99:a,u=e.showZero,s=void 0!==u&&u,f=e.variant,p=void 0===f?"standard":f,d=l({anchorOrigin:n,badgeContent:r,max:c,variant:p}),v=i;!1===i&&(0===r&&!s||null==r&&"dot"!==p)&&(v=!0);var g=v?d:e,m=g.anchorOrigin,b=void 0===m?n:m,h=g.badgeContent,y=g.max,O=void 0===y?c:y,w=g.variant,x=void 0===w?p:w,D="";return"dot"!==x&&(D=h&&Number(h)>O?"".concat(O,"+"):h),{anchorOrigin:b,badgeContent:h,invisible:v,max:O,variant:x,displayValue:D}}((0,i.Z)({},e,{anchorOrigin:r,max:D,variant:P})),z=S.anchorOrigin,A=S.badgeContent,F=S.max,E=S.variant,R=S.displayValue,T=S.invisible,I=(0,i.Z)({},e,{anchorOrigin:z,badgeContent:A,classes:a,invisible:T,max:F,variant:E,showZero:j}),B=function(e){var t=e.variant,n=e.anchorOrigin,r=e.invisible,o=e.classes,i={root:["root"],badge:["badge",t,"anchorOrigin".concat((0,d.Z)(n.vertical)).concat((0,d.Z)(n.horizontal)),r&&"invisible"]};return(0,v.Z)(i,f,o)}(I),M=u||y.Root||"span",L=(0,g.Z)(M,(0,i.Z)({},k,w.root),I),_=y.Badge||"span",N=(0,g.Z)(_,w.badge,I);return(0,m.jsxs)(M,(0,i.Z)({},L,{ref:t},k,{className:(0,c.Z)(B.root,L.className,p),children:[s,(0,m.jsx)(_,(0,i.Z)({},N,{className:(0,c.Z)(B.badge,N.className),children:R}))]}))})),y=h,O=n(47630),w=n(93736),x=n(20627),D=function(e){return!e||!(0,x.Z)(e)},C=n(14036),j=["anchorOrigin","component","components","componentsProps","overlap","color","invisible","badgeContent","showZero","variant"],Z=(0,i.Z)({},p,(0,u.Z)("MuiBadge",["colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"])),P=(0,O.ZP)("span",{name:"MuiBadge",slot:"Root",overridesResolver:function(e,t){return t.root}})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),k=(0,O.ZP)("span",{name:"MuiBadge",slot:"Badge",overridesResolver:function(e,t){var n=e.ownerState;return[t.badge,t[n.variant],t["anchorOrigin".concat((0,C.Z)(n.anchorOrigin.vertical)).concat((0,C.Z)(n.anchorOrigin.horizontal)).concat((0,C.Z)(n.overlap))],"default"!==n.color&&t["color".concat((0,C.Z)(n.color))],n.invisible&&t.invisible]}})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:20,lineHeight:1,padding:"0 6px",height:20,borderRadius:10,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen})},"default"!==n.color&&{backgroundColor:t.palette[n.color].main,color:t.palette[n.color].contrastText},"dot"===n.variant&&{borderRadius:4,height:8,minWidth:8,padding:0},"top"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, 50%)"}),n.invisible&&{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})})})),S=a.forwardRef((function(e,t){var n,r,a=(0,w.Z)({props:e,name:"MuiBadge"}),u=a.anchorOrigin,s=void 0===u?{vertical:"top",horizontal:"right"}:u,p=a.component,d=void 0===p?"span":p,v=a.components,g=void 0===v?{}:v,b=a.componentsProps,h=void 0===b?{}:b,O=a.overlap,x=void 0===O?"rectangular":O,Z=a.color,S=void 0===Z?"default":Z,z=a.invisible,A=void 0!==z&&z,F=a.badgeContent,E=a.showZero,R=void 0!==E&&E,T=a.variant,I=void 0===T?"standard":T,B=(0,o.Z)(a,j),M=l({anchorOrigin:s,color:S,overlap:x}),L=A;!1===A&&(0===F&&!R||null==F&&"dot"!==I)&&(L=!0);var _=L?M:a,N=_.color,H=void 0===N?S:N,K=_.overlap,V=void 0===K?x:K,U=_.anchorOrigin,W=void 0===U?s:U,$=function(e){var t=e.color,n=e.anchorOrigin,r=e.overlap,o=e.classes,a=void 0===o?{}:o;return(0,i.Z)({},a,{badge:(0,c.Z)(a.badge,f("anchorOrigin".concat((0,C.Z)(n.vertical)).concat((0,C.Z)(n.horizontal)).concat((0,C.Z)(r))),f("overlap".concat((0,C.Z)(r))),"default"!==t&&[f("color".concat((0,C.Z)(t))),a["color".concat((0,C.Z)(t))]])})}((0,i.Z)({},a,{anchorOrigin:W,invisible:L,color:H,overlap:V}));return(0,m.jsx)(y,(0,i.Z)({anchorOrigin:W,invisible:A,badgeContent:F,showZero:R,variant:I},B,{components:(0,i.Z)({Root:P,Badge:k},g),componentsProps:{root:(0,i.Z)({},h.root,D(g.Root)&&{as:d,ownerState:(0,i.Z)({},null==(n=h.root)?void 0:n.ownerState,{color:H,overlap:V})}),badge:(0,i.Z)({},h.badge,D(g.Badge)&&{ownerState:(0,i.Z)({},null==(r=h.badge)?void 0:r.ownerState,{color:H,overlap:V})})},classes:$,ref:t}))}))},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),c=n(90767),l=n(12065),u=n(97278),s=n(76189),f=n(80184),p=(0,s.Z)((0,f.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"),d=(0,s.Z)((0,f.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,s.Z)((0,f.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"),g=n(14036),m=n(93736),b=n(47630),h=n(95159);function y(e){return(0,h.Z)("MuiCheckbox",e)}var O=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),w=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],x=(0,b.ZP)(u.Z,{shouldForwardProp:function(e){return(0,b.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,g.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,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,r.Z)(t,"&.".concat(O.checked,", &.").concat(O.indeterminate),{color:n.palette[o.color].main}),(0,r.Z)(t,"&.".concat(O.disabled),{color:n.palette.action.disabled}),t))})),D=(0,f.jsx)(d,{}),C=(0,f.jsx)(p,{}),j=(0,f.jsx)(v,{}),Z=a.forwardRef((function(e,t){var n,r,l=(0,m.Z)({props:e,name:"MuiCheckbox"}),u=l.checkedIcon,s=void 0===u?D:u,p=l.color,d=void 0===p?"primary":p,v=l.icon,b=void 0===v?C:v,h=l.indeterminate,O=void 0!==h&&h,Z=l.indeterminateIcon,P=void 0===Z?j:Z,k=l.inputProps,S=l.size,z=void 0===S?"medium":S,A=(0,o.Z)(l,w),F=O?P:b,E=O?P:s,R=(0,i.Z)({},l,{color:d,indeterminate:O,size:z}),T=function(e){var t=e.classes,n=e.indeterminate,r=e.color,o={root:["root",n&&"indeterminate","color".concat((0,g.Z)(r))]},a=(0,c.Z)(o,y,t);return(0,i.Z)({},t,a)}(R);return(0,f.jsx)(x,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":O},k),icon:a.cloneElement(F,{fontSize:null!=(n=F.props.fontSize)?n:z}),checkedIcon:a.cloneElement(E,{fontSize:null!=(r=E.props.fontSize)?r:z}),ownerState:R,ref:t},A,{classes:T}))}))},69998:function(e,t){"use strict";t.Z=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),i=o.replace(/\/.*$/,"");return n.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?r.toLowerCase().endsWith(t):t.endsWith("/*")?i===t.replace(/\/.*$/,""):o===t}))}return!0}},76998:function(e,t,n){"use strict";var r=n(42458),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,c,l,u,s=!1;t||(t={}),n=t.debug||!1;try{if(a=r(),c=document.createRange(),l=document.getSelection(),(u=document.createElement("span")).textContent=e,u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),c.selectNodeContents(u),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");s=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),u&&document.body.removeChild(u),a()}return s}},26769:function(e,t,n){var r=n(39066),o=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&"[object String]"==r(e)}},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n(72791)),o=i(n(76998));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="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},a(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(c){o={error:c}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}Object.create;var u=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function s(e,t){var n=function(e){var t=e.name;if(t&&-1!==t.lastIndexOf(".")&&!e.type){var n=t.split(".").pop().toLowerCase(),r=u.get(n);r&&Object.defineProperty(e,"type",{value:r,writable:!1,configurable:!1,enumerable:!0})}return e}(e);if("string"!==typeof n.path){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:"string"===typeof t?t:"string"===typeof r&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}var f=[".DS_Store","Thumbs.db"];function p(e){return"object"===typeof e&&null!==e}function d(e){return b(e.target.files).map((function(e){return s(e)}))}function v(e){return a(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return e.getFile()})))];case 1:return[2,t.sent().map((function(e){return s(e)}))]}}))}))}function g(e,t){return a(this,void 0,void 0,(function(){var n;return c(this,(function(r){switch(r.label){case 0:return null===e?[2,[]]:e.items?(n=b(e.items).filter((function(e){return"file"===e.kind})),"drop"!==t?[2,n]:[4,Promise.all(n.map(h))]):[3,2];case 1:return[2,m(y(r.sent()))];case 2:return[2,m(b(e.files).map((function(e){return s(e)})))]}}))}))}function m(e){return e.filter((function(e){return-1===f.indexOf(e.name)}))}function b(e){if(null===e)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,T(n)];if(e.sizen)return[!1,T(n)]}return[!0,null]}function _(e){return void 0!==e&&null!==e}function N(e){var t=e.files,n=e.accept,r=e.minSize,o=e.maxSize,i=e.multiple,a=e.maxFiles;return!(!i&&t.length>1||i&&a>=1&&t.length>a)&&t.every((function(e){var t=k(M(e,n),1)[0],i=k(L(e,r,o),1)[0];return t&&i}))}function H(e){return"function"===typeof e.isPropagationStopped?e.isPropagationStopped():"undefined"!==typeof e.cancelBubble&&e.cancelBubble}function K(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,(function(e){return"Files"===e||"application/x-moz-file"===e})):!!e.target&&!!e.target.files}function V(e){e.preventDefault()}function U(e){return-1!==e.indexOf("MSIE")||-1!==e.indexOf("Trident/")}function W(e){return-1!==e.indexOf("Edge/")}function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator.userAgent;return U(e)||W(e)}function q(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ue=(0,r.forwardRef)((function(e,t){var n=e.children,o=pe(le(e,J)),i=o.open,a=le(o,Q);return(0,r.useImperativeHandle)(t,(function(){return{open:i}}),[i]),r.createElement(r.Fragment,null,n(ae(ae({},a),{},{open:i})))}));ue.displayName="Dropzone";var se={disabled:!1,getFilesFromEvent:function(e){return a(this,void 0,void 0,(function(){return c(this,(function(t){return p(e)&&p(e.dataTransfer)?[2,g(e.dataTransfer,e.type)]:function(e){return p(e)&&p(e.target)}(e)?[2,d(e)]:Array.isArray(e)&&e.every((function(e){return"getFile"in e&&"function"===typeof e.getFile}))?[2,v(e)]:[2,[]]}))}))},maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};ue.defaultProps=se,ue.propTypes={children:i().func,accept:i().oneOfType([i().string,i().arrayOf(i().string)]),multiple:i().bool,preventDropOnDocument:i().bool,noClick:i().bool,noKeyboard:i().bool,noDrag:i().bool,noDragEventsBubbling:i().bool,minSize:i().number,maxSize:i().number,maxFiles:i().number,disabled:i().bool,getFilesFromEvent:i().func,onFileDialogCancel:i().func,onFileDialogOpen:i().func,useFsAccessApi:i().bool,onDragEnter:i().func,onDragLeave:i().func,onDragOver:i().func,onDrop:i().func,onDropAccepted:i().func,onDropRejected:i().func,validator:i().func};var fe={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function pe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ae(ae({},se),e),n=t.accept,o=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,c=t.minSize,l=t.multiple,u=t.maxFiles,s=t.onDragEnter,f=t.onDragLeave,p=t.onDragOver,d=t.onDrop,v=t.onDropAccepted,g=t.onDropRejected,m=t.onFileDialogCancel,b=t.onFileDialogOpen,h=t.useFsAccessApi,y=t.preventDropOnDocument,O=t.noClick,w=t.noKeyboard,x=t.noDrag,D=t.noDragEventsBubbling,C=t.validator,j=(0,r.useMemo)((function(){return"function"===typeof b?b:ve}),[b]),Z=(0,r.useMemo)((function(){return"function"===typeof m?m:ve}),[m]),P=(0,r.useRef)(null),k=(0,r.useRef)(null),S=(0,r.useReducer)(de,fe),z=ne(S,2),A=z[0],F=z[1],E=A.isFocused,R=A.isFileDialogActive,T=A.draggedFiles,I=function(){R&&setTimeout((function(){k.current&&(k.current.files.length||(F({type:"closeDialog"}),Z()))}),300)};(0,r.useEffect)((function(){return h&&G()?function(){}:(window.addEventListener("focus",I,!1),function(){window.removeEventListener("focus",I,!1)})}),[k,R,Z,h]);var _=(0,r.useRef)([]),U=function(e){P.current&&P.current.contains(e.target)||(e.preventDefault(),_.current=[])};(0,r.useEffect)((function(){return y&&(document.addEventListener("dragover",V,!1),document.addEventListener("drop",U,!1)),function(){y&&(document.removeEventListener("dragover",V),document.removeEventListener("drop",U))}}),[P,y]);var W=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e),_.current=[].concat(te(_.current),[e.target]),K(e)&&Promise.resolve(i(e)).then((function(t){H(e)&&!D||(F({draggedFiles:t,isDragActive:!0,type:"setDraggedFiles"}),s&&s(e))}))}),[i,s,D]),J=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e);var t=K(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(n){}return t&&p&&p(e),!1}),[p,D]),Q=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e);var t=_.current.filter((function(e){return P.current&&P.current.contains(e)})),n=t.indexOf(e.target);-1!==n&&t.splice(n,1),_.current=t,t.length>0||(F({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),K(e)&&f&&f(e))}),[P,f,D]),re=(0,r.useCallback)((function(e,t){var r=[],o=[];e.forEach((function(e){var t=ne(M(e,n),2),i=t[0],l=t[1],u=ne(L(e,c,a),2),s=u[0],f=u[1],p=C?C(e):null;if(i&&s&&!p)r.push(e);else{var d=[l,f];p&&(d=d.concat(p)),o.push({file:e,errors:d.filter((function(e){return e}))})}})),(!l&&r.length>1||l&&u>=1&&r.length>u)&&(r.forEach((function(e){o.push({file:e,errors:[B]})})),r.splice(0)),F({acceptedFiles:r,fileRejections:o,type:"setFiles"}),d&&d(r,o,t),o.length>0&&g&&g(o,t),r.length>0&&v&&v(r,t)}),[F,l,n,c,a,u,d,v,g,C]),oe=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e),_.current=[],K(e)&&Promise.resolve(i(e)).then((function(t){H(e)&&!D||re(t,e)})),F({type:"reset"})}),[i,re,D]),ie=(0,r.useCallback)((function(){if(h&&G()){F({type:"openDialog"}),j();var e={multiple:l,types:X(n)};window.showOpenFilePicker(e).then((function(e){return i(e)})).then((function(e){return re(e,null)})).catch((function(e){return Z(e)})).finally((function(){return F({type:"closeDialog"})}))}else k.current&&(F({type:"openDialog"}),j(),k.current.value=null,k.current.click())}),[F,j,Z,h,re,n,l]),ue=(0,r.useCallback)((function(e){P.current&&P.current.isEqualNode(e.target)&&(32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),ie()))}),[P,k,ie]),pe=(0,r.useCallback)((function(){F({type:"focus"})}),[]),ge=(0,r.useCallback)((function(){F({type:"blur"})}),[]),me=(0,r.useCallback)((function(){O||($()?setTimeout(ie,0):ie())}),[k,O,ie]),be=function(e){return o?null:e},he=function(e){return w?null:be(e)},ye=function(e){return x?null:be(e)},Oe=function(e){D&&e.stopPropagation()},we=(0,r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,n=void 0===t?"ref":t,r=e.role,i=e.onKeyDown,a=e.onFocus,c=e.onBlur,l=e.onClick,u=e.onDragEnter,s=e.onDragOver,f=e.onDragLeave,p=e.onDrop,d=le(e,Y);return ae(ae(ce({onKeyDown:he(q(i,ue)),onFocus:he(q(a,pe)),onBlur:he(q(c,ge)),onClick:be(q(l,me)),onDragEnter:ye(q(u,W)),onDragOver:ye(q(s,J)),onDragLeave:ye(q(f,Q)),onDrop:ye(q(p,oe)),role:"string"===typeof r&&""!==r?r:"button"},n,P),o||w?{}:{tabIndex:0}),d)}}),[P,ue,pe,ge,me,W,J,Q,oe,w,x,o]),xe=(0,r.useCallback)((function(e){e.stopPropagation()}),[]),De=(0,r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,r=void 0===t?"ref":t,o=e.onChange,i=e.onClick,a=le(e,ee),c=ce({accept:n,multiple:l,type:"file",style:{display:"none"},onChange:be(q(o,oe)),onClick:be(q(i,xe)),autoComplete:"off",tabIndex:-1},r,k);return ae(ae({},c),a)}}),[k,n,l,oe,o]),Ce=T.length,je=Ce>0&&N({files:T,accept:n,minSize:c,maxSize:a,multiple:l,maxFiles:u}),Ze=Ce>0&&!je;return ae(ae({},A),{},{isDragAccept:je,isDragReject:Ze,isFocused:E&&!o,getRootProps:we,getInputProps:De,rootRef:P,inputRef:k,open:be(ie)})}function de(e,t){switch(t.type){case"focus":return ae(ae({},e),{},{isFocused:!0});case"blur":return ae(ae({},e),{},{isFocused:!1});case"openDialog":return ae(ae({},fe),{},{isFileDialogActive:!0});case"closeDialog":return ae(ae({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=t.isDragActive,r=t.draggedFiles;return ae(ae({},e),{},{draggedFiles:r,isDragActive:n});case"setFiles":return ae(ae({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return ae({},fe);default:return e}}function ve(){}},42458:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport default usePreviousProps;","import generateUtilityClasses from '../generateUtilityClasses';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass('MuiBadge', slot);\n}\nconst badgeUnstyledClasses = generateUtilityClasses('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopLeft', 'anchorOriginTopRight', 'anchorOriginBottomLeft', 'anchorOriginBottomRight', 'invisible']);\nexport default badgeUnstyledClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorOrigin\", \"classes\", \"badgeContent\", \"component\", \"children\", \"className\", \"components\", \"componentsProps\", \"invisible\", \"max\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nimport composeClasses from '../composeClasses';\nimport appendOwnerState from '../utils/appendOwnerState';\nimport useBadge from './useBadge';\nimport { getBadgeUtilityClass } from './badgeUnstyledClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n anchorOrigin,\n invisible,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', variant, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, invisible && 'invisible']\n };\n return composeClasses(slots, getBadgeUtilityClass, classes);\n};\n\nconst BadgeUnstyled = /*#__PURE__*/React.forwardRef(function BadgeUnstyled(props, ref) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n classes: classesProp,\n component,\n children,\n className,\n components = {},\n componentsProps = {},\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n anchorOrigin,\n badgeContent,\n max,\n variant,\n displayValue,\n invisible\n } = useBadge(_extends({}, props, {\n anchorOrigin: anchorOriginProp,\n max: maxProp,\n variant: variantProp\n }));\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n badgeContent,\n classes: classesProp,\n invisible,\n max,\n variant,\n showZero\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = component || components.Root || 'span';\n const rootProps = appendOwnerState(Root, _extends({}, other, componentsProps.root), ownerState);\n const Badge = components.Badge || 'span';\n const badgeProps = appendOwnerState(Badge, componentsProps.badge, ownerState);\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n ref: ref\n }, other, {\n className: clsx(classes.root, rootProps.className, className),\n children: [children, /*#__PURE__*/_jsx(Badge, _extends({}, badgeProps, {\n className: clsx(classes.badge, badgeProps.className),\n children: displayValue\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? BadgeUnstyled.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes.string\n} : void 0;\nexport default BadgeUnstyled;","import { usePreviousProps } from '@mui/utils';\nexport default function useBadge(props) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props;\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n badgeContent: badgeContentProp,\n max: maxProp,\n variant: variantProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n anchorOrigin = anchorOriginProp,\n badgeContent,\n max = maxProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n let displayValue = '';\n\n if (variant !== 'dot') {\n displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n }\n\n return {\n anchorOrigin,\n badgeContent,\n invisible,\n max,\n variant,\n displayValue\n };\n}","import { isHostComponent } from '@mui/base';\n\nconst shouldSpreadAdditionalProps = Slot => {\n return !Slot || !isHostComponent(Slot);\n};\n\nexport default shouldSpreadAdditionalProps;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"anchorOrigin\", \"component\", \"components\", \"componentsProps\", \"overlap\", \"color\", \"invisible\", \"badgeContent\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { usePreviousProps } from '@mui/utils';\nimport { generateUtilityClasses } from '@mui/base';\nimport BadgeUnstyled, { badgeUnstyledClasses, getBadgeUtilityClass } from '@mui/base/BadgeUnstyled';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport shouldSpreadAdditionalProps from '../utils/shouldSpreadAdditionalProps';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const badgeClasses = _extends({}, badgeUnstyledClasses, generateUtilityClasses('MuiBadge', ['colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular', // TODO: v6 remove the overlap value from these class keys\n'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']));\nconst RADIUS_STANDARD = 10;\nconst RADIUS_DOT = 4;\n\nconst extendUtilityClasses = ownerState => {\n const {\n color,\n anchorOrigin,\n overlap,\n classes = {}\n } = ownerState;\n return _extends({}, classes, {\n badge: clsx(classes.badge, getBadgeUtilityClass(`anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`), getBadgeUtilityClass(`overlap${capitalize(overlap)}`), color !== 'default' && [getBadgeUtilityClass(`color${capitalize(color)}`), classes[`color${capitalize(color)}`]])\n });\n};\n\nconst BadgeRoot = styled('span', {\n name: 'MuiBadge',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n});\nconst BadgeBadge = styled('span', {\n name: 'MuiBadge',\n slot: 'Badge',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n })\n}, ownerState.color !== 'default' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n}, ownerState.variant === 'dot' && {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.invisible && {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n}));\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {\n var _componentsProps$root, _componentsProps$badg;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBadge'\n });\n\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n component = 'span',\n components = {},\n componentsProps = {},\n overlap: overlapProp = 'rectangular',\n color: colorProp = 'default',\n invisible: invisibleProp = false,\n badgeContent: badgeContentProp,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n color: colorProp,\n overlap: overlapProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n color = colorProp,\n overlap = overlapProp,\n anchorOrigin = anchorOriginProp\n } = invisible ? prevProps : props;\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n invisible,\n color,\n overlap\n });\n\n const classes = extendUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(BadgeUnstyled, _extends({\n anchorOrigin: anchorOrigin,\n invisible: invisibleProp,\n badgeContent: badgeContentProp,\n showZero: showZero,\n variant: variantProp\n }, other, {\n components: _extends({\n Root: BadgeRoot,\n Badge: BadgeBadge\n }, components),\n componentsProps: {\n root: _extends({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {\n as: component,\n ownerState: _extends({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {\n color,\n overlap\n })\n }),\n badge: _extends({}, componentsProps.badge, shouldSpreadAdditionalProps(components.Badge) && {\n ownerState: _extends({}, (_componentsProps$badg = componentsProps.badge) == null ? void 0 : _componentsProps$badg.ownerState, {\n color,\n overlap\n })\n })\n },\n classes: classes,\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\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 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 components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Wrapped shape the badge should overlap.\n * @default 'rectangular'\n */\n overlap: PropTypes.oneOf(['circular', 'rectangular']),\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: 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\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['dot', 'standard']), PropTypes.string])\n} : void 0;\nexport default Badge;","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;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\n\n\nexport function toFileWithPath(file: FileWithPath, path?: string): FileWithPath {\n const f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n const {webkitRelativePath} = file as FileWithWebkitPath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\ninterface DOMFile extends Blob {\n readonly lastModified: number;\n readonly name: string;\n}\n\nexport interface FileWithPath extends DOMFile {\n readonly path?: string;\n}\n\ninterface FileWithWebkitPath extends File {\n readonly webkitRelativePath?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport async function fromEvent(evt: Event | any): Promise<(FileWithPath | DataTransferItem)[]> {\n if (isObject(evt) && isDataTransfer(evt)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n } else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n } else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt)\n }\n return [];\n}\n\nfunction isDataTransfer(value: any): value is DataTransfer {\n return isObject(value.dataTransfer);\n}\n\nfunction isChangeEvt(value: any): value is Event {\n return isObject(value) && isObject(value.target);\n}\n\nfunction isObject(v: any): v is T {\n return typeof v === 'object' && v !== null\n}\n\nfunction getInputFiles(evt: Event) {\n return fromList((evt.target as HTMLInputElement).files).map(file => toFileWithPath(file));\n}\n\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nasync function getFsHandleFiles(handles: any[]) {\n const files = await Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n}\n\n\nasync function getDataTransferFiles(dt: DataTransfer | null, type: string) {\n if (dt === null) {\n return [];\n }\n\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList | null): T[] {\n if (items === null) {\n return [];\n }\n\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
    \n * \n *

    Drag 'n' drop some files here, or click to select files

    \n *
    \n * )}\n *
    \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
    \n * \n *

    Drag and drop some files here, or click to select files

    \n *
    \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","value","ref","React","current","getBadgeUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","BadgeUnstyled","props","anchorOrigin","anchorOriginProp","vertical","horizontal","classesProp","classes","component","children","className","components","componentsProps","max","maxProp","showZero","variant","variantProp","other","_objectWithoutPropertiesLoose","badgeContentProp","badgeContent","invisible","invisibleProp","prevProps","usePreviousProps","displayValue","Number","useBadge","_extends","ownerState","slots","root","badge","capitalize","composeClasses","useUtilityClasses","Root","rootProps","appendOwnerState","Badge","badgeProps","_jsxs","clsx","_jsx","Slot","isHostComponent","badgeClasses","badgeUnstyledClasses","BadgeRoot","styled","name","overridesResolver","styles","position","display","verticalAlign","flexShrink","BadgeBadge","overlap","color","theme","flexDirection","flexWrap","justifyContent","alignContent","alignItems","boxSizing","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","minWidth","RADIUS_STANDARD","lineHeight","padding","height","borderRadius","zIndex","transition","transitions","create","easing","easeInOut","duration","enteringScreen","backgroundColor","palette","main","contrastText","RADIUS_DOT","top","right","transform","transformOrigin","bottom","left","leavingScreen","inProps","_componentsProps$root","_componentsProps$badg","useThemeProps","overlapProp","colorProp","extendUtilityClasses","shouldSpreadAdditionalProps","as","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","text","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","composedClasses","type","file","acceptedFiles","acceptedFilesArray","Array","isArray","split","fileName","mimeType","toLowerCase","baseMimeType","replace","some","validType","trim","charAt","endsWith","deselectCurrent","clipboardToIE11Formatting","module","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","style","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","baseGetTag","isObjectLike","Object","defineProperty","CopyToClipboard","_react","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","length","indexOf","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","this","_len","arguments","args","_key","concat","event","_this$props","elem","Children","only","result","onClick","protoProps","staticProps","subClass","superClass","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","undefined","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","f","y","t","g","_","label","sent","trys","ops","verb","n","v","op","pop","__read","m","r","ar","COMMON_MIME_TYPES","Map","toFileWithPath","path","lastIndexOf","ext","get","withMimeType","webkitRelativePath","FILES_TO_IGNORE","isObject","getInputFiles","evt","fromList","files","map","getFsHandleFiles","handles","h","getFile","_a","getDataTransferFiles","dt","items","item","kind","toFilePromises","noIgnoredFiles","flatten","webkitGetAsEntry","fromDataTransferItem","entry","isDirectory","fromDirEntry","reduce","acc","getAsFile","fwp","fromEntry","fromFileEntry","reader","createReader","entries","readEntries","batch","err_1","fullPath","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","from","_unsupportedIterableToArray","_nonIterableRest","len","arr2","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","join","code","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","_ref","multiple","maxFiles","every","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","types","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","fns","_len2","_key2","fn","canUseFileSystemAccessAPI","filePickerOptionsTypes","description","a","b","_excluded2","_excluded3","_excluded4","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Dropzone","forwardRef","_useDropzone","useDropzone","open","useImperativeHandle","Fragment","displayName","defaultProps","getFilesFromEvent","isChangeEvt","Infinity","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","propTypes","PropTypes","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","onFileDialogOpenCb","useMemo","noop","onFileDialogCancelCb","rootRef","useRef","inputRef","_useReducer","useReducer","reducer","_useReducer2","state","dispatch","onWindowFocus","setTimeout","useEffect","removeEventListener","dragTargetsRef","onDocumentDrop","contains","onDragEnterCb","useCallback","persist","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","splice","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","errors","onDropCb","openFileDialog","opts","showOpenFilePicker","catch","finally","click","onKeyDownCb","isEqualNode","keyCode","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2","_ref2$refKey","refKey","role","onKeyDown","onFocus","onBlur","rest","tabIndex","onInputElementClick","getInputProps","_ref3","_ref3$refKey","onChange","autoComplete","fileCount","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js b/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js new file mode 100644 index 000000000..aaa33068a --- /dev/null +++ b/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5088],{23804:function(e,t,n){"use strict";n(72791);var i=n(11135),o=n(25787),s=n(61889),r=n(80184);t.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 t=e.classes,n=e.iconComponent,i=e.title,o=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(s.ZP,{container:!0,children:[(0,r.jsxs)(s.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,r.jsx)(s.ZP,{item:!0,xs:12,className:t.helpText,children:o})]})})}))},75088:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var i=n(29439),o=n(1413),s=n(72791),r=n(95087),a=n(60364),c=n(91431),l="error",d="success",u="inProgress",g=n(11135),f=n(25787),h=n(26824),m=n(23814),x=n(61889),p=n(36151),v=n(32291),b=n(42649),j=n(93385),Z=n(93656),w=n(81207),y=n(72401),S=n(80184),C=(0,f.Z)((function(e){return(0,g.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 t=e.title,n=e.children,o=e.classes,r=e.advancedVisible,a=e.advancedContent,c=(0,s.useState)("N/A"),l=(0,i.Z)(c,2),d=l[0],u=l[1],g=(0,s.useState)(0),f=(0,i.Z)(g,2),h=f[0],m=f[1],p=(0,s.useState)(0),v=(0,i.Z)(p,2),b=v[0],C=v[1],N=(0,s.useState)(!0),E=(0,i.Z)(N,2),D=E[0],k=E[1],P=(0,s.useState)(!1),I=(0,i.Z)(P,2),O=I[0],R=I[1];return(0,s.useEffect)((function(){D&&w.Z.invoke("GET","/api/v1/admin/info?defaultOnly=true").then((function(e){var t,n=null===(t=e.servers)||void 0===t?void 0:t.length;if(m(n),e.servers.length>0){u(e.servers[0].version);var i=e.servers.reduce((function(e,t){return e+t.drives.length}),0);C(i)}k(!1)})).catch((function(e){k(!1)}))}),[D]),(0,S.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,S.jsx)(x.ZP,{item:!0,xs:12,className:o.titleBar,children:t}),(0,S.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,S.jsxs)(x.ZP,{item:!0,xs:12,className:o.optionsContainer,children:[(0,S.jsx)(x.ZP,{container:!0,className:o.divisorContainer,children:D?(0,S.jsx)(s.Fragment,{children:(0,S.jsx)(x.ZP,{item:!0,xs:12,className:o.loaderAlign,children:(0,S.jsx)(y.Z,{style:{width:25,height:25}})})}):(0,S.jsxs)(s.Fragment,{children:[(0,S.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:o.serversData,children:[(0,S.jsx)(Z.FU,{})," ",(0,S.jsx)("strong",{children:h}),"\xa0nodes,\xa0",(0,S.jsx)("strong",{children:b}),"\xa0 drives"]}),(0,S.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:o.minioVersionContainer,children:[(0,S.jsx)("span",{className:o.versionIcon,children:(0,S.jsx)(Z.Db,{})})," ","MinIO VERSION\xa0",(0,S.jsx)("strong",{children:d})]}),(0,S.jsx)(x.ZP,{item:!0,xs:12,md:4,className:o.advancedContainer,children:r&&(0,S.jsxs)("button",{onClick:function(){R(!O)},className:o.advancedConfiguration,children:["Advanced configurations"," ",(0,S.jsx)("span",{className:O?o.advancedOpen:o.advancedClosed,children:(0,S.jsx)(j.Z,{})})]})})]})}),a&&(0,S.jsx)(x.ZP,{xs:12,className:"".concat(o.advancedContent," ").concat(O?"open":""),children:a})]}),n]})]})})),N=n(74794),E=n(23804),D=n(89357),k=(0,a.$j)((function(e){return{message:e.healthInfo.message,serverDiagnosticStatus:e.system.serverDiagnosticStatus}}),{healthInfoMessageReceived:c.ec,healthInfoResetMessage:c.Xp,setSnackBarMessage:b.y1,setServerDiagStat:b.KY})((0,f.Z)((function(e){return(0,g.Z)((0,o.Z)((0,o.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}},m.OR),(0,m.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.healthInfoMessageReceived,o=e.healthInfoResetMessage,a=e.message,c=e.setSnackBarMessage,g=e.setServerDiagStat,f=e.serverDiagnosticStatus,m=(0,s.useState)(!1),b=(0,i.Z)(m,2),j=b[0],Z=b[1],w=(0,s.useState)(!1),k=(0,i.Z)(w,2),P=k[0],I=k[1],O=(0,s.useState)(!0),R=(0,i.Z)(O,2),A=R[0],B=R[1],F=(0,s.useState)(""),_=(0,i.Z)(F,2),T=_[0],M=_[1],z=(0,s.useState)("New Diagnostic"),L=(0,i.Z)(z,2),V=L[0],W=L[1];return(0,s.useEffect)((function(){f!==u?f===d&&P?W("Diagnostic complete"):f!==l||W("Error"):W("Diagnostic in progress...")}),[f,j,P]),(0,s.useEffect)((function(){f===d&&a!=={}&&B(!1),f===u&&B(!0),Z(!1)}),[f,a]),(0,s.useEffect)((function(){if(j){o();var e=new URL(window.location.toString()),t=e.port,i=(0,h.x2)(e.protocol),s=new r.w3cwebsocket("".concat(i,"://").concat(e.hostname,":").concat(t,"/ws/health-info?deadline=1h")),a=null;null!==s&&(s.onopen=function(){console.log("WebSocket Client Connected"),s.send("ok"),a=setInterval((function(){s.send("ok")}),1e4),I(!0),M("Diagnostic started. Please do not refresh page during diagnosis."),g(u)},s.onmessage=function(e){var t=JSON.parse(e.data.toString());t.timestamp=new Date(t.timestamp.toString()),n(t)},s.onerror=function(e){console.log("error closing websocket:",e.message),s.close(1e3),clearInterval(a),g(l)},s.onclose=function(e){clearInterval(a),e.code===h.HE||e.code===h.ci||e.code===h.V9?(console.log("connection closed by server with code:",e.code),M("An error occurred while getting Diagnostic file."),g(l)):(console.log("connection closed by server"),M("Diagnostic file is ready to be downloaded."),g(d))})}else Z(!1)}),[n,o,j,c,g]),(0,S.jsxs)(s.Fragment,{children:[(0,S.jsx)(v.Z,{label:"Health"}),(0,S.jsxs)(N.Z,{children:[(0,S.jsx)(x.ZP,{item:!0,xs:12,className:t.boxy,children:(0,S.jsx)(C,{title:V,advancedVisible:!1,children:(0,S.jsxs)(x.ZP,{container:!0,className:t.buttons,children:[!P&&(0,S.jsx)(x.ZP,{item:!0,xs:12,className:t.startDiagnostic,children:(0,S.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:j,onClick:function(){return Z(!0)},children:"Start Diagnostic"})},"start-diag"),P&&(0,S.jsxs)(x.ZP,{item:!0,xs:12,className:t.progressResult,children:[(0,S.jsx)("div",{className:t.localMessage,children:T}),f===u?(0,S.jsx)("div",{className:t.loading,children:(0,S.jsx)(y.Z,{style:{width:25,height:25}})}):(0,S.jsxs)(s.Fragment,{children:[f!==l&&(0,S.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",onClick:function(){!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)}("diagnostic.json",JSON.stringify(a,null,2))},disabled:A,children:"Download"}),(0,S.jsx)(x.ZP,{item:!0,xs:12,className:t.diagNew,children:(0,S.jsx)(p.Z,{id:"start-new-diagnostic",type:"submit",variant:"contained",color:"primary",disabled:j,onClick:function(){return Z(!0)},children:"Start New Diagnostic"})})]})]},"start-download")]})})}),!P&&(0,S.jsxs)(s.Fragment,{children:[(0,S.jsx)("br",{}),(0,S.jsx)(E.Z,{title:"During the health diagnostics run all production traffic will be suspended.",iconComponent:(0,S.jsx)(D.Z,{}),help:(0,S.jsx)(s.Fragment,{})})]})]})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return s},V9:function(){return i},ci:function(){return o},x2:function(){return r}});var i=1006,o=1008,s=1011,r=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},93385:function(e,t,n){"use strict";var i=n(95318);t.Z=void 0;var o=i(n(45649)),s=n(80184),r=(0,o.default)((0,s.jsx)("path",{d:"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"}),"ArrowForwardIos");t.Z=r},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 i;if("object"===typeof globalThis)i=globalThis;else try{i=n(94210)}catch(a){}finally{if(i||"undefined"===typeof window||(i=window),!i)throw new Error("Could not determine global this")}var o=i.WebSocket||i.MozWebSocket,s=n(51496);function r(e,t){return t?new o(e,t):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?r:null,version:s}},51496:function(e,t,n){e.exports=n(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=5088.4c9e1b8c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js.map b/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js.map new file mode 100644 index 000000000..f8cb4f5b1 --- /dev/null +++ b/portal-ui/build/static/js/5088.4c9e1b8c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5088.4c9e1b8c.chunk.js","mappings":"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","sources":["common/HelpBox.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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\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","DiagStatError","DiagStatSuccess","DiagStatInProgress","titleBar","borderBottom","padding","color","divisorContainer","serversData","minioVersionContainer","justifyContent","alignSelf","versionIcon","loaderAlign","textAlign","advancedContainer","optionsContainer","advancedConfiguration","textDecoration","cursor","marginLeft","advancedOpen","transform","advancedClosed","advancedContent","maxHeight","transitionDuration","overflow","children","advancedVisible","useState","version","setVersion","totalNodes","setTotalNodes","totalDrives","setTotalDrives","loading","setLoading","setAdvancedOpen","useEffect","api","then","res","totalServers","servers","length","reduce","prevTotal","currentElement","drives","catch","err","Grid","Fragment","Loader","style","md","onClick","ArrowForwardIos","connect","state","message","healthInfo","serverDiagnosticStatus","system","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","console","log","send","setInterval","onmessage","m","JSON","parse","data","timestamp","Date","onerror","error","close","clearInterval","onclose","event","code","WSCloseInternalServerErr","WSClosePolicyViolation","WSCloseAbnormalClosure","PageHeader","label","PageLayout","boxy","Button","type","variant","disabled","filename","text","element","document","createElement","setAttribute","encodeURIComponent","body","appendChild","click","removeChild","download","stringify","id","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/5088.921b2534.chunk.js b/portal-ui/build/static/js/5088.921b2534.chunk.js deleted file mode 100644 index 638485598..000000000 --- a/portal-ui/build/static/js/5088.921b2534.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(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(93656),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(29439),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(93656),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.921b2534.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5088.921b2534.chunk.js.map b/portal-ui/build/static/js/5088.921b2534.chunk.js.map deleted file mode 100644 index 487564d21..000000000 --- a/portal-ui/build/static/js/5088.921b2534.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5088.921b2534.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,mHCrCX,KAAexB,EAAAA,EAAAA,IAvBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACR2B,EAAAA,OAqBP,EAZmB,SAAC,GAA4D,IAA1DR,EAAyD,EAAzDA,QAAyD,IAAhDI,UAAAA,OAAgD,MAApC,GAAoC,EAAhCK,EAAgC,EAAhCA,SAC7C,OACE,gBAAKL,UAAWJ,EAAQU,cAAxB,UACE,SAAC,KAAD,CAAML,WAAS,EAAf,UACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWA,EAA9B,SACGK,Y,0KCiJLE,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,GAAUlC,EAAAA,EAAAA,IAnIV,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACX6C,gBAAiB,CACf5B,MAAO,OACP6B,UAAW,GACXjC,QAAS,OACTT,gBAAiB,OACjB2C,KAAM,EACNC,UAAW,8BAEbC,MAAO,CACLpC,QAAS,OACTqC,eAAgB,aAChBpC,WAAY,UAEdqC,WAAY,CACVC,MAAO,OACP1C,SAAU,GACVC,WAAY,IACZ0C,WAAY,GACZC,UAAW,GAEbC,UAAW,CACTC,UAAW,SAEbC,KAAM,CACJJ,WAAY,GACZK,KAAM3D,EAAM4D,QAAQC,QAAQC,KAC5B,cAAe,CACb5C,MAAO,MAGX6C,gBAAiB,CACfjD,QAAS,OACTqC,eAAgB,SAChBpC,WAAY,cAgGOhB,EA5FN,SAAC,GAUA,IATlBqB,EASiB,EATjBA,QACA8B,EAQiB,EARjBA,MACAc,EAOiB,EAPjBA,QACA5B,EAMiB,EANjBA,YACAE,EAKiB,EALjBA,aACAC,EAIiB,EAJjBA,eACAP,EAGiB,EAHjBA,WACA+B,EAEiB,EAFjBA,gBAGA,OADiB,EADjBpB,SAEasB,SAAS,cACb,SAAC,EAAAC,SAAD,KAGP,UAAC,KAAD,CACEzC,WAAS,EACTD,UAAS,UAAKJ,EAAQ0B,gBAAb,gBACTqB,UAAU,MACVpD,WAAW,SAJb,WAME,UAAC,KAAD,CACEW,MAAI,EACJC,GAAI,GACJyC,GAAI,GACJC,GAAIN,EAAkB,EAAI,EAC1BvC,UAAWJ,EAAQ8B,MACnBoB,GAAI,CACF/D,WAAY,CAAC,OAAQ,OAAQ,IAAK,MAPtC,WAUI6B,IACA,gBAAKZ,UAAWJ,EAAQsC,KAAxB,SACGpB,GAAe,SAAC,IAAD,KAAmB,SAAC,IAAD,OAGvC,SAAC,IAAD,CAAYiC,QAAQ,KAAK/C,UAAWJ,EAAQgC,WAA5C,SACGF,OAGJa,IACC,SAAC,KAAD,CACErC,MAAI,EACJC,GAAI,GACJyC,GAAI,GACJC,GAAI,EACJ7C,UAAWJ,EAAQ2C,gBACnBO,GAAI,CAAEf,UAAW,CAAC,OAAQ,OAAQ,IAAK,MANzC,SAQGQ,KAGL,UAAC,KAAD,CACErC,MAAI,EACJC,GAAI,GACJyC,GAAI,GACJC,GAAIN,EAAkB,EAAI,EAC1BvC,UAAWJ,EAAQoC,UALrB,UAOGQ,GAAWA,EACXzB,GAAkBA,EAAeiC,OAAS,IACzC,SAAC,IAAD,CACEnB,MAAM,UACN,aAAW,eACXoB,UAAU,OACVC,QAAS,WACP1C,KAEF2C,GAAG,wBACHC,KAAK,QARP,UAUE,SAAC,KAAD,iB,qJCzICC,EAAgB,QAChBC,EAAkB,UAClBC,EAAqB,a,+ICyNlC,GAAehF,EAAAA,EAAAA,IAvMA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACX+E,SAAU,CACRC,aAAc,oBACdC,QAAS,YACTvE,SAAU,GACV0C,MAAO,UACPzC,WAAY,OACZR,aAAc,oBACdG,WAAY,GAEd4E,iBAAkB,CAChBD,QAAS,IAEXE,YAAa,CACX/B,MAAO,UACP1C,SAAU,GACVG,QAAS,OACTC,WAAY,SACZ,QAAS,CACPC,YAAa,KAGjBqE,sBAAuB,CACrB1E,SAAU,GACV0C,MAAO,UACPF,eAAgB,SAChBmC,UAAW,SACXvE,WAAY,SACZD,QAAS,QAEXyE,YAAa,CACXlC,MAAO,UACPrC,YAAa,IAEfwE,YAAa,CACX/B,UAAW,UAEbgC,kBAAmB,CACjBtC,eAAgB,WAChBrC,QAAS,QAEX4E,iBAAkB,CAChBR,QAAS,EACTrE,aAAc,IAEhB8E,sBAAuB,CACrBtC,MAAO,UACP1C,SAAU,GACViF,eAAgB,YAChBzF,OAAQ,OACRE,gBAAiB,cACjBwF,OAAQ,UACR9E,WAAY,SACZD,QAAS,OAET,UAAW,CACTuC,MAAO,WAGT,QAAS,CACPnC,MAAO,GACPoE,UAAW,SACXhC,WAAY,IAGhBwC,aAAc,CACZC,UAAW,oDAEbC,eAAgB,CACdD,UAAW,kBAEbE,gBAAiB,CACf5F,gBAAiB,UACjB6F,UAAW,EACXC,mBAAoB,OACpBC,SAAU,SACVlB,QAAS,SACT,SAAU,CACRgB,UAAW,IACXhB,QAAS,SAuHjB,EAlHoB,SAAC,GAMA,IALnB5D,EAKkB,EALlBA,MACAO,EAIkB,EAJlBA,SACAT,EAGkB,EAHlBA,QACAiF,EAEkB,EAFlBA,gBACAJ,EACkB,EADlBA,gBAEA,GAA8BK,EAAAA,EAAAA,UAAiB,OAA/C,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAoCF,EAAAA,EAAAA,UAAiB,GAArD,eAAOG,EAAP,KAAmBC,EAAnB,KACA,GAAsCJ,EAAAA,EAAAA,UAAiB,GAAvD,eAAOK,EAAP,KAAoBC,EAApB,KACA,GAA8BN,EAAAA,EAAAA,WAAkB,GAAhD,eAAOO,EAAP,KAAgBC,EAAhB,KACA,GAAwCR,EAAAA,EAAAA,WAAkB,GAA1D,eAAOR,EAAP,KAAqBiB,EAArB,KA8BA,OA5BAC,EAAAA,EAAAA,YAAU,WACJH,GACFI,EAAAA,EAAAA,OACU,MADV,uCAEGC,MAAK,SAACC,GAAgB,IAAD,EACdC,EAAY,UAAGD,EAAIE,eAAP,aAAG,EAAa7C,OAGlC,GAFAkC,EAAcU,GAEVD,EAAIE,QAAQ7C,OAAS,EAAG,CAC1BgC,EAAWW,EAAIE,QAAQ,GAAGd,SAE1B,IAAMa,EAAeD,EAAIE,QAAQC,QAC/B,SAACC,EAAmBC,GAClB,OAAOD,EAAYC,EAAeC,OAAOjD,SAE3C,GAEFoC,EAAeQ,GAGjBN,GAAW,MAEZY,OAAM,SAACC,GACNb,GAAW,QAGhB,CAACD,KAGF,UAACe,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAf,WACE,SAACiG,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ4D,SAAtC,SACG1D,KAEH,UAACsG,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAf,WACE,UAACiG,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQsE,iBAAtC,WACE,SAACkC,EAAA,GAAD,CAAMnG,WAAS,EAACD,UAAWJ,EAAQ+D,iBAAnC,SACI0B,GAyCA,SAAC,EAAA3C,SAAD,WACE,SAAC0D,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQoE,YAAtC,UACE,SAACqC,EAAA,EAAD,CAAQC,MAAO,CAAE5G,MAAO,GAAID,OAAQ,WA1CxC,UAAC,EAAAiD,SAAD,YACE,UAAC0D,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAI0C,GAAI,EAAG7C,UAAWJ,EAAQgE,YAA7C,WACE,SAAC,KAAD,IADF,KACiB,4BAASqB,IAD1B,kBAGE,4BAASE,IAHX,kBAKA,UAACiB,EAAA,GAAD,CACElG,MAAI,EACJC,GAAI,GACJ0C,GAAI,EACJ7C,UAAWJ,EAAQiE,sBAJrB,WAME,iBAAM7D,UAAWJ,EAAQmE,YAAzB,UACE,SAAC,KAAD,MACM,IARV,qBASqB,4BAASgB,QAE9B,SAACqB,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAI0C,GAAI,EAAG7C,UAAWJ,EAAQqE,kBAA7C,SACGY,IACC,oBACE3B,QAAS,WACPqC,GAAiBjB,IAEnBtE,UAAWJ,EAAQuE,sBAJrB,oCAM0B,KACxB,iBACEnE,UACEsE,EACI1E,EAAQ0E,aACR1E,EAAQ4E,eAJhB,UAOE,SAAC+B,EAAA,EAAD,gBAcb9B,IACC,SAAC2B,EAAA,GAAD,CACEjG,GAAI,GACJH,UAAS,UAAKJ,EAAQ6E,gBAAb,YACPH,EAAe,OAAS,IAH5B,SAMGG,OAINpE,W,iCC2GT,GAPkBK,EAAAA,EAAAA,KALD,SAACC,GAAD,MAAsB,CACrC6F,QAAS7F,EAAM8F,WAAWD,QAC1BE,uBAAwB/F,EAAME,OAAO6F,0BAGH,CAClCC,0BAA2BA,EAAAA,GAC3BC,uBAAwBA,EAAAA,GACxBC,mBAAAA,EAAAA,GACAC,kBAAAA,EAAAA,IAGF,EAAyBvI,EAAAA,EAAAA,IA5RV,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX4G,QAAS,CACPtG,WAAY,EACZD,YAAa,IAEfiI,QAAS,CACPpF,eAAgB,aAChBqF,IAAK,IAEPC,aAAc,CACZ9H,SAAU,GACV0C,MAAO,UACPzC,WAAY,OACZ6C,UAAW,SACX5C,aAAc,IAEhB6H,gBAAiB,CACfjF,UAAW,SACX5C,aAAc,IAEhB8H,eAAgB,CACdlF,UAAW,SACX5C,aAAc,IAEhB+H,QAAS,CACPnF,UAAW,QACXoF,OAAQ,GACRhI,aAAc,IAEbiI,EAAAA,KACAC,EAAAA,EAAAA,IAAmB/I,EAAMgJ,QAAQ,QA6PfjJ,EA9NN,SAAC,GAQA,IAPlBqB,EAOiB,EAPjBA,QACA+G,EAMiB,EANjBA,0BACAC,EAKiB,EALjBA,uBACAJ,EAIiB,EAJjBA,QACAK,EAGiB,EAHjBA,mBACAC,EAEiB,EAFjBA,kBACAJ,EACiB,EADjBA,uBAEA,GAA8C5B,EAAAA,EAAAA,WAAS,GAAvD,eAAOoC,EAAP,KAAwBO,EAAxB,KACA,GAAsC3C,EAAAA,EAAAA,WAAkB,GAAxD,eAAO4C,EAAP,KAAoBC,EAApB,KACA,GAAgD7C,EAAAA,EAAAA,WAAS,GAAzD,eAAO8C,EAAP,KAAyBC,EAAzB,KACA,GAAmC/C,EAAAA,EAAAA,UAAiB,IAApD,eAAOmC,EAAP,KAAqBa,EAArB,KACA,GAA0BhD,EAAAA,EAAAA,UAAiB,kBAA3C,eAAOhF,EAAP,KAAciI,EAAd,KA0GA,OAxGAvC,EAAAA,EAAAA,YAAU,WACJkB,IAA2BnD,EAK3BmD,IAA2BpD,GAAmBoE,EAChDK,EAAS,uBAIPrB,IAA2BrD,GAC7B0E,EAAS,SAVTA,EAAS,+BAaV,CAACrB,EAAwBQ,EAAiBQ,KAE7ClC,EAAAA,EAAAA,YAAU,WAENkB,IAA2BpD,GAC3BkD,IAAa,IAIbqB,GAAoB,GAElBnB,IAA2BnD,GAG7BsE,GAAoB,GAEtBJ,GAAmB,KAClB,CAACf,EAAwBF,KAE5BhB,EAAAA,EAAAA,YAAU,WACR,GAAI0B,EAAiB,CACnBN,IACA,IAAMoB,EAAM,IAAIC,IAAIC,OAAOC,SAASC,YAE9BC,EAAwBL,EAAIK,KAE5BC,GAASC,EAAAA,EAAAA,IAAWP,EAAIQ,UAExBC,EAAI,IAAIC,EAAAA,aAAJ,UACLJ,EADK,cACON,EAAIW,SADX,YACuBN,EADvB,gCAINO,EAAuB,KACjB,OAANH,IACFA,EAAEI,OAAS,WACTzH,QAAQ0H,IAAI,8BACZL,EAAEM,KAAK,MACPH,EAAWI,aAAY,WACrBP,EAAEM,KAAK,QACN,KACHpB,GAAe,GACfG,EACE,oEAEFhB,EAAkBvD,IAEpBkF,EAAEQ,UAAY,SAACzC,GACb,IAAI0C,EAAuBC,KAAKC,MAAM5C,EAAQ6C,KAAKjB,YACnDc,EAAEI,UAAY,IAAIC,KAAKL,EAAEI,UAAUlB,YAEnCzB,EAA0BuC,IAE5BT,EAAEe,QAAU,SAACC,GACXrI,QAAQ0H,IAAI,2BAA4BW,EAAMjD,SAC9CiC,EAAEiB,MAAM,KACRC,cAAcf,GACd9B,EAAkBzD,IAEpBoF,EAAEmB,QAAU,SAACC,GACXF,cAAcf,GAEZiB,EAAMC,OAASC,EAAAA,IACfF,EAAMC,OAASE,EAAAA,IACfH,EAAMC,OAASG,EAAAA,IAGf7I,QAAQ0H,IAAI,yCAA0Ce,EAAMC,MAC5DhC,EAAW,oDACXhB,EAAkBzD,KAElBjC,QAAQ0H,IAAI,+BAEZhB,EAAW,8CACXhB,EAAkBxD,WAMxBmE,GAAmB,KAEpB,CACDd,EACAC,EACAM,EACAL,EACAC,KAIA,UAAC,EAAApE,SAAD,YACE,SAACwH,EAAA,EAAD,CAAYxI,MAAM,YAClB,UAACyI,EAAA,EAAD,YACE,SAAC/D,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwK,KAAtC,UACE,SAAC,EAAD,CAAatK,MAAOA,EAAO+E,iBAAiB,EAA5C,UACE,UAACuB,EAAA,GAAD,CAAMnG,WAAS,EAACD,UAAWJ,EAAQmH,QAAnC,WACIW,IACA,SAACtB,EAAA,GAAD,CAEElG,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQsH,gBAJrB,UAME,SAACmD,EAAA,EAAD,CACEC,KAAK,SACLvH,QAAQ,YACRlB,MAAM,UACN0I,SAAUrD,EACVhE,QAAS,kBAAMuE,GAAmB,IALpC,+BALI,cAgBPC,IACC,UAACtB,EAAA,GAAD,CAEElG,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQuH,eAJrB,WAME,gBAAKnH,UAAWJ,EAAQqH,aAAxB,SAAuCA,IACtCP,IAA2BnD,GAC1B,gBAAKvD,UAAWJ,EAAQyF,QAAxB,UACE,SAACgB,EAAA,EAAD,CAAQC,MAAO,CAAE5G,MAAO,GAAID,OAAQ,SAGtC,UAAC,EAAAiD,SAAD,WACGgE,IAA2BrD,IAC1B,SAACgH,EAAA,EAAD,CACEC,KAAK,SACLvH,QAAQ,YACRlB,MAAM,UACNqB,QAAS,YA/LlB,SAACsH,EAAkBC,GAClC,IAAIC,EAAUC,SAASC,cAAc,KACrCF,EAAQG,aACN,OACA,iCAAmCC,mBAAmBL,IAExDC,EAAQG,aAAa,WAAYL,GAEjCE,EAAQpE,MAAMhH,QAAU,OACxBqL,SAASI,KAAKC,YAAYN,GAE1BA,EAAQO,QAERN,SAASI,KAAKG,YAAYR,GAmLAS,CACE,kBACAhC,KAAKiC,UAAU5E,EAAS,KAAM,KAGlC+D,SAAU3C,EAVZ,uBAeF,SAACxB,EAAA,GAAD,CAAMlG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwH,QAAtC,UACE,SAACiD,EAAA,EAAD,CACElH,GAAG,uBACHmH,KAAK,SACLvH,QAAQ,YACRlB,MAAM,UACN0I,SAAUrD,EACVhE,QAAS,kBAAMuE,GAAmB,IANpC,yCA7BF,0BA+CZC,IACA,UAAC,EAAAhF,SAAD,YACE,mBACA,SAAC2I,EAAA,EAAD,CACEvL,MACE,8EAEFD,eAAe,SAACyL,EAAA,EAAD,IACfvL,MAAM,SAAC,EAAA2C,SAAD,oB,4IC1Sb,IAEMuH,EAAyB,KACzBD,EAAyB,KACzBD,EAA2B,KAE3BxB,EAAa,SAACC,GACzB,IAAID,EAAa,KAIjB,MAHiB,WAAbC,IACFD,EAAa,OAERA,I,uCC1BLgD,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,mDACD,mBAEJN,EAAQ,EAAUG,G,kBCjBlB,IAAII,EAAgB,WACnB,GAAoB,kBAATC,MAAqBA,KAAM,OAAOA,KAC7C,GAAsB,kBAAX/D,QAAuBA,OAAQ,OAAOA,OACjD,MAAM,IAAIgE,MAAM,oCAGjBC,EAAOV,QAAW,WACjB,GAAIW,KAAM,OAAOA,KAKjB,GAA0B,kBAAfC,YAA2BA,WAAY,OAAOA,WAKzD,IACCC,OAAOC,eAAeD,OAAOE,UAAW,aAAc,CACrDC,IAAK,WAAc,OAAOL,MAC1BM,cAAc,IAEd,MAAOjD,GAGR,OAAOuC,IAER,IAEC,OAAKW,YAAmBX,IAFzB,eAKQM,OAAOE,UAAUG,YA1BR,I,sBCNlB,IAAIC,EACJ,GAA0B,kBAAfP,WACVO,EAAcP,gBAEd,IACCO,EAAcpB,EAAQ,OACrB,MAAO/B,IAFT,QAKC,GADKmD,GAAiC,qBAAX1E,SAA0B0E,EAAc1E,SAC9D0E,EAAe,MAAM,IAAIV,MAAM,mCAItC,IAAIW,EAAkBD,EAAYE,WAAaF,EAAYG,aACvDC,EAAoBxB,EAAQ,OAMhC,SAAS9C,EAAauE,EAAKC,GAiB1B,OAdIA,EACe,IAAIL,EAAgBI,EAAKC,GAGzB,IAAIL,EAAgBI,GAYpCJ,GACH,CAAC,aAAc,OAAQ,UAAW,UAAUM,SAAQ,SAASC,GAC5Dd,OAAOC,eAAe7D,EAAc0E,EAAM,CACzCX,IAAK,WAAa,OAAOI,EAAgBO,SAQ5CjB,EAAOV,QAAU,CACb,aAAiBoB,EAAkBnE,EAAe,KAClD,QAAiBsE,I,sBCpDrBb,EAAOV,QAAU,EAAjBU,OAAAA,S","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/51.76f011ea.chunk.js b/portal-ui/build/static/js/51.76f011ea.chunk.js deleted file mode 100644 index 1e52582ea..000000000 --- a/portal-ui/build/static/js/51.76f011ea.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[51],{23804:function(e,n,t){t(72791);var i=t(11135),r=t(25787),a=t(61889),s=t(80184);n.Z=(0,r.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,r=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(a.ZP,{container:!0,children:[(0,s.jsxs)(a.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,i]}),(0,s.jsx)(a.ZP,{item:!0,xs:12,className:n.helpText,children:r})]})})}))},51:function(e,n,t){t.r(n),t.d(n,{default:function(){return H}});var i=t(29439),r=t(1413),a=t(72791),s=t(60364),o=t(11135),l=t(25787),c=t(26181),d=t.n(c),u=t(61889),x=t(93656),p=t(23814),m=t(42649),f=t(81207),h=t(97581),Z=t(55818),v=t(20890),j=t(3721),g=t(36151),y=t(40986),b=t(56028),_=t(21435),S=t(37516),C=t(17420),k=t(90673),P=t(83679),E=t(80184),N={setModalErrorSnackMessage:m.zb},F=(0,s.$j)(null,N),I=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}},formFieldRowAccordion:{"& .MuiPaper-root":{padding:0}}},p.bK),p.ID),p.DF),p.QV))}))(F((function(e){var n,t,s,o,l,c=e.classes,p=e.closeModalAndRefresh,m=e.selectedBucket,N=e.lifecycleRule,F=e.open,I=e.setModalErrorSnackMessage,T=(0,a.useState)(!0),M=(0,i.Z)(T,2),L=M[0],A=M[1],B=(0,a.useState)(!1),R=(0,i.Z)(B,2),O=R[0],w=R[1],D=(0,a.useState)(""),V=(0,i.Z)(D,2),z=V[0],G=V[1],K=(0,a.useState)(!1),W=(0,i.Z)(K,2),H=W[0],U=W[1],Y=(0,a.useState)([]),Q=(0,i.Z)(Y,2),$=Q[0],q=Q[1],J=(0,a.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,a.useState)(""),ie=(0,i.Z)(te,2),re=ie[0],ae=ie[1],se=(0,a.useState)(""),oe=(0,i.Z)(se,2),le=oe[0],ce=oe[1],de=(0,a.useState)(!1),ue=(0,i.Z)(de,2),xe=ue[0],pe=ue[1],me=(0,a.useState)("0"),fe=(0,i.Z)(me,2),he=fe[0],Ze=fe[1],ve=(0,a.useState)("0"),je=(0,i.Z)(ve,2),ge=je[0],ye=je[1],be=(0,a.useState)("expiry"),_e=(0,i.Z)(be,2),Se=_e[0],Ce=_e[1],ke=(0,a.useState)("0"),Pe=(0,i.Z)(ke,2),Ee=Pe[0],Ne=Pe[1],Fe=(0,a.useState)("0"),Ie=(0,i.Z)(Fe,2),Te=Ie[0],Me=Ie[1],Le=(0,a.useState)(!1),Ae=(0,i.Z)(Le,2),Be=Ae[0],Re=Ae[1];(0,a.useEffect)((function(){L&&f.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}}));q(t),t.length>0&&ae(t[0].value)}A(!1)})).catch((function(e){A(!1)}))}),[L]),(0,a.useEffect)((function(){var e=!0;"expiry"!==Se&&""===re&&(e=!1),Re(e)}),[Se,Ee,Te,re]),(0,a.useEffect)((function(){var e;"Enabled"===N.status&&U(!0);var n,t,i,r,a,s,o=!1;(N.transition&&(N.transition.days&&0!==N.transition.days&&(Me(N.transition.days.toString()),Ce("transition"),o=!0),N.transition.noncurrent_transition_days&&0!==N.transition.noncurrent_transition_days&&(ye(N.transition.noncurrent_transition_days.toString()),Ce("transition"),o=!0),N.transition.date&&"0001-01-01T00:00:00Z"!==N.transition.date&&(Ce("transition"),o=!0)),N.expiration&&(N.expiration.days&&0!==N.expiration.days&&(Ne(N.expiration.days.toString()),Ce("expiry"),o=!1),N.expiration.noncurrent_expiration_days&&0!==N.expiration.noncurrent_expiration_days&&(Ze(N.expiration.noncurrent_expiration_days.toString()),Ce("expiry"),o=!1),N.expiration.date&&"0001-01-01T00:00:00Z"!==N.expiration.date&&(Ce("expiry"),o=!1)),o)?(ae((null===(n=N.transition)||void 0===n?void 0:n.storage_class)||""),ye((null===(t=N.transition)||void 0===t||null===(i=t.noncurrent_transition_days)||void 0===i?void 0:i.toString())||"0"),ce((null===(r=N.transition)||void 0===r?void 0:r.noncurrent_storage_class)||"")):Ze((null===(a=N.expiration)||void 0===a||null===(s=a.noncurrent_expiration_days)||void 0===s?void 0:s.toString())||"0");if(pe(!(null===(e=N.expiration)||void 0===e||!e.delete_marker)),ne(N.prefix||""),N.tags){var l=N.tags.reduce((function(e,n,t){return"".concat(e).concat(0!==t?"&":"").concat(n.key,"=").concat(n.value)}),"");G(l)}}),[N]);return(0,E.jsx)(b.Z,{onClose:function(){p(!1)},modalOpen:F,title:"Edit Lifecycle Configuration",titleIcon:(0,E.jsx)(x.QI,{}),children:(0,E.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!O&&(w(!0),null!==m&&null!==N)){var n={};if("expiry"===Se){var t,i,a,s={};null!==(t=N.expiration)&&void 0!==t&&t.days&&(null===(i=N.expiration)||void 0===i?void 0:i.days)>0&&(s.expiry_days=parseInt(Ee)),null!==(a=N.expiration)&&void 0!==a&&a.noncurrent_expiration_days&&(s.noncurrentversion_expiration_days=parseInt(he)),n=(0,r.Z)({},s)}else{var o,l,c,d={};null!==(o=N.expiration)&&void 0!==o&&o.days&&(null===(l=N.expiration)||void 0===l?void 0:l.days)>0&&(d.transition_days=parseInt(Ee),d.storage_class=re),null!==(c=N.expiration)&&void 0!==c&&c.noncurrent_expiration_days&&(d.noncurrentversion_transition_days=parseInt(he),d.noncurrentversion_transition_storage_class=le),n=(0,r.Z)({},d)}var u=(0,r.Z)({type:Se,disable:!H,prefix:ee,tags:z,expired_object_delete_marker:xe},n);f.Z.invoke("PUT","/api/v1/buckets/".concat(m,"/lifecycle/").concat(N.id),u).then((function(e){w(!1),p(!0)})).catch((function(e){w(!1),I(e)}))}}(e)},children:(0,E.jsxs)(u.ZP,{container:!0,children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,className:c.formScrollable,children:(0,E.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{id:"id",name:"id",label:"Id",value:N.id,onChange:function(){},disabled:!0})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(S.Z,{label:"Status",indicatorLabels:["Enabled","Disabled"],checked:H,value:"user_enabled",id:"rule_status",name:"rule_status",onChange:function(e){U(e.target.checked)}})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(P.Z,{currentSelection:Se,id:"rule_type",name:"rule_type",label:"Rule Type",selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}],onChange:function(){},disableOptions:!0})}),"expiry"===Se&&(null===(n=N.expiration)||void 0===n?void 0:n.days)&&(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){Ne(e.target.value)},label:"Expiry Days",value:Ee,min:"0"})}),"expiry"===Se&&(null===(t=N.expiration)||void 0===t?void 0:t.noncurrent_expiration_days)&&(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){Ze(e.target.value)},label:"Non-current Expiration Days",value:he,min:"0"})}),"transition"===Se&&(null===(s=N.transition)||void 0===s?void 0:s.days)&&(0,E.jsxs)(a.Fragment,{children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){Me(e.target.value)},label:"Transition Days",value:Te,min:"0"})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(k.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:re,onChange:function(e){ae(e.target.value)},options:$})})]}),"transition"===Se&&(null===(o=N.transition)||void 0===o?void 0:o.noncurrent_transition_days)&&(0,E.jsxs)(a.Fragment,{children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){ye(e.target.value)},label:"Non-current Transition Days",value:ge,min:"0"})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){ce(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:le})})]}),(0,E.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRowAccordion,children:(0,E.jsxs)(h.Z,{children:[(0,E.jsx)(Z.Z,{children:(0,E.jsx)(v.Z,{children:"Filters"})}),(0,E.jsxs)(j.Z,{children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{id:"prefix",name:"prefix",onChange:function(e){ne(e.target.value)},label:"Prefix",value:ee})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(C.Z,{name:"tags",label:"Tags",elements:z,onChange:function(e){G(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})]})}),"expiry"===Se&&(null===(l=N.expiration)||void 0===l?void 0:l.noncurrent_expiration_days)&&(0,E.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRowAccordion,children:(0,E.jsxs)(h.Z,{children:[(0,E.jsx)(Z.Z,{children:(0,E.jsx)(v.Z,{children:"Advanced"})}),(0,E.jsx)(j.Z,{children:(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(S.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:xe,onChange:function(e){pe(e.target.checked)},label:"Expired Object Delete Marker"})})})]})})]})}),(0,E.jsxs)(u.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,E.jsx)(g.Z,{type:"button",variant:"outlined",color:"primary",disabled:O,onClick:function(){p(!1)},children:"Cancel"}),(0,E.jsx)(g.Z,{type:"submit",variant:"contained",color:"primary",disabled:O||!Be,children:"Save"})]}),O&&(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(y.Z,{})})]})})})}))),T=t(56578),M=(0,s.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),{setModalErrorSnackMessage:m.zb}),L=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}},formFieldRowFilter:{"& .MuiPaper-root":{padding:0}}},p.bK),p.ID),p.DF),p.QV))}))(M((function(e){var n=e.open,t=e.closeModalAndRefresh,s=e.classes,o=e.bucketName,l=e.setModalErrorSnackMessage,c=e.distributedSetup,p=(0,a.useState)(!0),m=(0,i.Z)(p,2),N=m[0],F=m[1],I=(0,a.useState)([]),M=(0,i.Z)(I,2),L=M[0],A=M[1],B=(0,a.useState)(!1),R=(0,i.Z)(B,2),O=R[0],w=R[1],D=(0,a.useState)(!1),V=(0,i.Z)(D,2),z=V[0],G=V[1],K=(0,a.useState)(""),W=(0,i.Z)(K,2),H=W[0],U=W[1],Y=(0,a.useState)(""),Q=(0,i.Z)(Y,2),$=Q[0],q=Q[1],J=(0,a.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,a.useState)("expiry"),ie=(0,i.Z)(te,2),re=ie[0],ae=ie[1],se=(0,a.useState)("current"),oe=(0,i.Z)(se,2),le=oe[0],ce=oe[1],de=(0,a.useState)(""),ue=(0,i.Z)(de,2),xe=ue[0],pe=ue[1],me=(0,a.useState)(!1),fe=(0,i.Z)(me,2),he=fe[0],Ze=fe[1],ve=(0,a.useState)(!1),je=(0,i.Z)(ve,2),ge=je[0],ye=je[1],be=(0,a.useState)(!0),_e=(0,i.Z)(be,2),Se=_e[0],Ce=_e[1];(0,a.useEffect)((function(){N&&f.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}}));A(t),t.length>0&&ne(t[0].value)}F(!1)})).catch((function(e){F(!1)}))}),[N]),(0,a.useEffect)((function(){var e=!0;"expiry"!==re&&""===ee&&(e=!1),Ze(e)}),[re,xe,ee]),(0,a.useEffect)((function(){Se&&c&&f.Z.invoke("GET","/api/v1/buckets/".concat(o,"/versioning")).then((function(e){G(e.is_versioned),Ce(!1)})).catch((function(e){l(e),Ce(!1)}))}),[Se,l,o,c]);return(0,E.jsxs)(b.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Add Lifecycle Rule",titleIcon:(0,E.jsx)(x.QI,{}),children:[N&&(0,E.jsx)(u.ZP,{container:!0,className:s.loadingBox,children:(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(y.Z,{})})}),!N&&(0,E.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),w(!0),function(){var e={};if("expiry"===re){var n={};"current"===le?n.expiry_days=parseInt(xe):n.noncurrentversion_expiration_days=parseInt(xe),e=(0,r.Z)({},n)}else{var i={};"current"===le?(i.transition_days=parseInt(xe),i.storage_class=ee):(i.noncurrentversion_transition_days=parseInt(xe),i.noncurrentversion_transition_storage_class=ee),e=(0,r.Z)({},i)}var a=(0,r.Z)({type:re,prefix:H,tags:$,expired_object_delete_marker:ge},e);f.Z.invoke("POST","/api/v1/buckets/".concat(o,"/lifecycle"),a).then((function(){w(!1),t(!0)})).catch((function(e){w(!1),l(e)}))}()},children:(0,E.jsxs)(u.ZP,{container:!0,children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,className:s.formScrollable,children:(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(P.Z,{currentSelection:re,id:"ilm_type",name:"ilm_type",label:"Type of lifecycle",onChange:function(e){ae(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),z&&(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(k.Z,{value:le,id:"object_version",name:"object_version",label:"Object Version",onChange:function(e){ce(e.target.value)},options:[{value:"current",label:"Current Version"},{value:"noncurrent",label:"Non-Current Version"}]})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{id:"expiry_days",name:"expiry_days",onChange:function(e){e.target.validity.valid&&pe(e.target.value)},pattern:"[0-9]*",label:"After",value:xe,overlayObject:(0,E.jsx)(T.Z,{id:"expire-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),"expiry"===re?(0,E.jsx)(a.Fragment,{}):(0,E.jsx)(a.Fragment,{children:(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(k.Z,{label:"To Tier",id:"storage_class",name:"storage_class",value:ee,onChange:function(e){ne(e.target.value)},options:L})})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,className:s.formFieldRowFilter,children:(0,E.jsxs)(h.Z,{children:[(0,E.jsx)(Z.Z,{children:(0,E.jsx)(v.Z,{children:"Filters"})}),(0,E.jsxs)(j.Z,{children:[(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(_.Z,{id:"prefix",name:"prefix",onChange:function(e){U(e.target.value)},label:"Prefix",value:H})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(C.Z,{name:"tags",label:"Tags",elements:"",onChange:function(e){q(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})]})}),"expiry"===re&&"noncurrent"===le&&(0,E.jsx)(u.ZP,{item:!0,xs:12,className:s.formFieldRowFilter,children:(0,E.jsxs)(h.Z,{children:[(0,E.jsx)(Z.Z,{children:(0,E.jsx)(v.Z,{children:"Advanced"})}),(0,E.jsx)(j.Z,{children:(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(S.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:ge,onChange:function(e){ye(e.target.checked)},label:"Expire Delete Marker",description:"Remove the reference to the object if no versions are left"})})})]})})]})})}),(0,E.jsxs)(u.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,E.jsx)(g.Z,{type:"button",variant:"outlined",color:"primary",disabled:O,onClick:function(){t(!1)},children:"Cancel"}),(0,E.jsx)(g.Z,{type:"submit",variant:"contained",color:"primary",disabled:O||!he,children:"Save"})]}),O&&(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(y.Z,{})})]})})]})}))),A=t(92983),B=t(23804),R=t(60680),O=t(38442),w=t(56087),D=t(40603),V=t(51691),z=t(23508),G=(0,s.$j)(null,{setErrorSnackMessage:m.Ih}),K=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)({},p.oO))}))(G((function(e){var n=e.onCloseAndRefresh,t=e.deleteOpen,r=e.bucket,s=e.id,o=e.setErrorSnackMessage,l=(0,a.useState)(!1),c=(0,i.Z)(l,2),d=c[0],u=c[1];(0,a.useEffect)((function(){d&&f.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/lifecycle/").concat(s)).then((function(e){u(!1),n(!0)})).catch((function(e){u(!1),o(e)}))}),[d,r,s,n,o]);return(0,E.jsx)(z.Z,{title:"Delete Lifecycle Rule",confirmText:"Delete",isOpen:t,isLoading:d,onConfirm:function(){u(!0)},titleIcon:(0,E.jsx)(x.Nv,{}),onClose:function(){return n(!1)},confirmationContent:(0,E.jsxs)(V.Z,{children:["Are you sure you want to delete the ",(0,E.jsx)("strong",{children:s})," rule?"]})})}))),W=(0,s.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:m.Ih}),H=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(W((function(e){var n=e.classes,t=e.match,r=(e.setErrorSnackMessage,e.loadingBucket),s=(e.bucketInfo,(0,a.useState)(!0)),o=(0,i.Z)(s,2),l=o[0],c=o[1],p=(0,a.useState)([]),m=(0,i.Z)(p,2),h=m[0],Z=m[1],v=(0,a.useState)(!1),j=(0,i.Z)(v,2),g=j[0],y=j[1],b=(0,a.useState)(!1),_=(0,i.Z)(b,2),S=_[0],C=_[1],k=(0,a.useState)(null),P=(0,i.Z)(k,2),N=P[0],F=P[1],T=(0,a.useState)(!1),M=(0,i.Z)(T,2),V=M[0],z=M[1],G=(0,a.useState)(null),W=(0,i.Z)(G,2),H=W[0],U=W[1],Y=t.params.bucketName,Q=(0,O.F)(Y,[w.Ft.S3_GET_LIFECYCLE_CONFIGURATION]);(0,a.useEffect)((function(){r&&c(!0)}),[r,c]),(0,a.useEffect)((function(){l&&(Q?f.Z.invoke("GET","/api/v1/buckets/".concat(Y,"/lifecycle")).then((function(e){var n=d()(e,"lifecycle",[]);Z(n||[]),c(!1)})).catch((function(e){console.error(e),Z([]),c(!1)})):c(!1))}),[l,c,Y,Q]);var $=[{label:"Type",renderFullObject:!0,renderFunction:function(e){return e?e.expiration&&(e.expiration.days>0||e.expiration.noncurrent_expiration_days)?(0,E.jsx)("span",{children:"Expiry"}):e.transition&&(e.transition.days>0||e.transition.noncurrent_transition_days)?(0,E.jsx)("span",{children:"Transition"}):(0,E.jsx)(a.Fragment,{}):(0,E.jsx)(a.Fragment,{})}},{label:"Version",renderFullObject:!0,renderFunction:function(e){if(!e)return(0,E.jsx)(a.Fragment,{});if(e.expiration){if(e.expiration.days>0)return(0,E.jsx)("span",{children:"Current"});if(e.expiration.noncurrent_expiration_days)return(0,E.jsx)("span",{children:"Non-Current"})}if(e.transition){if(e.transition.days>0)return(0,E.jsx)("span",{children:"Current"});if(e.transition.noncurrent_transition_days)return(0,E.jsx)("span",{children:"Non-Current"})}}},{label:"Tier",elementKey:"storage_class",renderFunction:function(e){var n=d()(e,"transition.storage_class","");return n=d()(e,"transition.noncurrent_storage_class",n)},renderFullObject:!0},{label:"Prefix",elementKey:"prefix"},{label:"After",renderFullObject:!0,renderFunction:function(e){if(!e)return(0,E.jsx)(a.Fragment,{});if(e.expiration){if(e.expiration.days>0)return(0,E.jsxs)("span",{children:[e.expiration.days," days"]});if(e.expiration.noncurrent_expiration_days)return(0,E.jsxs)("span",{children:[e.expiration.noncurrent_expiration_days," days"]})}if(e.transition){if(e.transition.days>0)return(0,E.jsxs)("span",{children:[e.transition.days," days"]});if(e.transition.noncurrent_transition_days)return(0,E.jsxs)("span",{children:[e.transition.noncurrent_transition_days," days"]})}}},{label:"Status",elementKey:"status"}],q=[{type:"view",onClick:function(e){F(e),C(!0)}},{type:"delete",onClick:function(e){U(e),z(!0)},sendOnlyId:!0}];return(0,E.jsxs)(a.Fragment,{children:[S&&N&&(0,E.jsx)(I,{open:S,closeModalAndRefresh:function(e){C(!1),F(null),e&&c(!0)},selectedBucket:Y,lifecycleRule:N}),g&&(0,E.jsx)(L,{open:g,bucketName:Y,closeModalAndRefresh:function(e){y(!1),e&&c(!0)}}),V&&H&&(0,E.jsx)(K,{id:H,bucket:Y,deleteOpen:V,onCloseAndRefresh:function(e){z(!1),U(null),e&&c(!0)}}),(0,E.jsxs)(u.ZP,{container:!0,children:[(0,E.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,E.jsx)(R.Z,{children:"Lifecycle Rules"}),(0,E.jsx)(O.s,{scopes:[w.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,w.Ft.ADMIN_LIST_TIERS],resource:Y,matchAll:!0,errorProps:{disabled:!0},children:(0,E.jsx)(D.Z,{tooltip:"Add Lifecycle Rule",onClick:function(){y(!0)},text:"Add Lifecycle Rule",icon:(0,E.jsx)(x.dt,{}),color:"primary",variant:"contained"})})]}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)(O.s,{scopes:[w.Ft.S3_GET_LIFECYCLE_CONFIGURATION],resource:Y,errorProps:{disabled:!0},children:(0,E.jsx)(A.Z,{itemActions:q,columns:$,isLoading:l,records:h,entityName:"Lifecycle",customEmptyMessage:"There are no Lifecycle rules yet",idField:"id",customPaperHeight:n.twHeight})})}),!l&&(0,E.jsxs)(u.ZP,{item:!0,xs:12,children:[(0,E.jsx)("br",{}),(0,E.jsx)(B.Z,{title:"Lifecycle Rules",iconComponent:(0,E.jsx)(x.y2,{}),help:(0,E.jsxs)(a.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,E.jsx)("br",{}),(0,E.jsx)("br",{}),"You can learn more at our"," ",(0,E.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){var i=t(93433),r=t(29439),a=t(1413),s=t(72791),o=t(26181),l=t.n(o),c=t(48573),d=t.n(c),u=t(11135),x=t(25787),p=t(61889),m=t(77961),f=t(30829),h=t(20068),Z=t(23814),v=t(21435),j=t(47919),g=t(80184);n.Z=(0,x.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.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,a=e.label,o=e.tooltip,c=void 0===o?"":o,u=e.keyPlaceholder,x=void 0===u?"":u,Z=e.valuePlaceholder,y=void 0===Z?"":Z,b=e.onChange,_=e.withBorder,S=void 0!==_&&_,C=e.classes,k=(0,s.useState)([""]),P=(0,r.Z)(k,2),E=P[0],N=P[1],F=(0,s.useState)([""]),I=(0,r.Z)(F,2),T=I[0],M=I[1],L=(0,s.createRef)();(0,s.useEffect)((function(){if(1===E.length&&""===E[0]&&1===T.length&&""===T[0]&&n&&""!==n){var e=n.split("&"),t=[],i=[];e.forEach((function(e){var n=e.split("=");2===n.length&&(t.push(n[0]),i.push(n[1]))})),t.push(""),i.push(""),N(t),M(i)}}),[E,T,n]),(0,s.useEffect)((function(){var e=L.current;e&&E.length>1&&e.scrollIntoView(!1)}),[E]);var A=(0,s.useRef)(!0);(0,s.useLayoutEffect)((function(){A.current?A.current=!1:O()}),[E,T]);var B=function(e){e.persist();var n=(0,i.Z)(E);n[l()(e.target,"dataset.index",0)]=e.target.value,N(n)},R=function(e){e.persist();var n=(0,i.Z)(T);n[l()(e.target,"dataset.index",0)]=e.target.value,M(n)},O=d()((function(){var e="";E.forEach((function(n,t){if(E[t]&&T[t]){var i="".concat(n,"=").concat(T[t]);0!==t&&(i="&".concat(i)),e="".concat(e).concat(i)}})),b(e)}),500),w=T.map((function(e,n){return(0,g.jsxs)(p.ZP,{item:!0,xs:12,className:C.lineInputBoxes,children:[(0,g.jsx)(v.Z,{id:"".concat(t,"-key-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:E[n],onChange:B,index:n,placeholder:x}),(0,g.jsx)("span",{className:C.queryDiv,children:":"}),(0,g.jsx)(v.Z,{id:"".concat(t,"-value-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:T[n],onChange:R,index:n,placeholder:y,overlayIcon:n===T.length-1?(0,g.jsx)(j.Z,{}):null,overlayAction:function(){!function(){if(""!==E[E.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,i.Z)(E),n=(0,i.Z)(T);e.push(""),n.push(""),N(e),M(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,g.jsx)(s.Fragment,{children:(0,g.jsxs)(p.ZP,{item:!0,xs:12,className:C.fieldContainer,children:[(0,g.jsxs)(f.Z,{className:C.inputLabel,children:[(0,g.jsx)("span",{children:a}),""!==c&&(0,g.jsx)("div",{className:C.tooltipContainer,children:(0,g.jsx)(h.Z,{title:c,placement:"top-start",children:(0,g.jsx)(m.Z,{className:C.tooltip})})})]}),(0,g.jsxs)(p.ZP,{item:!0,xs:12,className:"".concat(S?C.inputWithBorder:""),children:[w,(0,g.jsx)("div",{ref:L})]})]})})}))},83679:function(e,n,t){var i=t(4942),r=t(1413),a=(t(72791),t(28182)),s=t(61889),o=t(10765),l=t(85523),c=t(61419),d=t(30829),u=t(20068),x=t(11135),p=t(25787),m=t(72455),f=t(23814),h=t(84570),Z=t(80184),v=(0,m.Z)((0,r.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},f.FU)),j=function(e){var n=v();return(0,Z.jsx)(c.Z,(0,r.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,p.Z)((function(e){return(0,x.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},f.YI),f.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,r=e.currentSelection,c=e.label,x=e.id,p=e.name,m=e.onChange,f=e.tooltip,v=void 0===f?"":f,g=e.disableOptions,y=void 0!==g&&g,b=e.classes,_=e.displayInColumn,S=void 0!==_&&_;return(0,Z.jsxs)(s.ZP,{container:!0,alignItems:"center",children:[(0,Z.jsx)(s.ZP,{item:!0,xs:!0,children:(0,Z.jsxs)(d.Z,{htmlFor:x,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)(s.ZP,{item:!0,xs:!0,className:b.radioOptionsLayout,children:(0,Z.jsx)(o.Z,{"aria-label":x,id:x,name:p,value:r,onChange:m,row:!S,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,Z.jsx)(l.Z,{value:e.value,control:(0,Z.jsx)(j,{}),label:e.label,disabled:y,className:(0,a.Z)(b.optionLabel,(0,i.Z)({},b.checkedOption,e.value===r))},"rd-".concat(p,"-").concat(e.value))}))})})]})}))},23508:function(e,n,t){var i=t(1413),r=t(72791),a=t(5574),s=t(65661),o=t(39157),l=t(97123),c=t(36151),d=t(59860),u=t(13400),x=t(29823),p=t(11135),m=t(25787),f=t(23814),h=t(80184);n.Z=(0,m.Z)((function(e){return(0,p.Z)((0,i.Z)({},f.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,p=e.onClose,m=e.onCancel,f=e.onConfirm,Z=e.classes,v=void 0===Z?{}:Z,j=e.title,g=void 0===j?"":j,y=e.isLoading,b=e.confirmationContent,_=e.cancelText,S=void 0===_?"Cancel":_,C=e.confirmText,k=void 0===C?"Confirm":C,P=e.confirmButtonProps,E=void 0===P?{}:P,N=e.cancelButtonProps,F=void 0===N?{}:N,I=e.titleIcon,T=void 0===I?null:I;return(0,h.jsxs)(a.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&p()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(s.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[T," ",g]}),(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)(x.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,i.Z)((0,i.Z)({className:v.cancelButton,onClick:m||p,disabled:y,type:"button"},F),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:S})),(0,h.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:v.confirmButton,type:"button",onClick:f,loading:y,disabled:y,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(r.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:k}))]})]})}))},56028:function(e,n,t){var i=t(29439),r=t(1413),a=t(72791),s=t(60364),o=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),x=t(11135),p=t(25787),m=t(23814),f=t(42649),h=t(29823),Z=t(28057),v=t(80184),j=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});n.Z=(0,p.Z)((function(e){return(0,x.Z)((0,r.Z)((0,r.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,s=e.title,x=e.children,p=e.classes,m=e.wideLimit,f=void 0===m||m,j=e.modalSnackMessage,g=e.noContentPadding,y=e.setModalSnackMessage,b=e.titleIcon,_=void 0===b?null:b,S=(0,a.useState)(!1),C=(0,i.Z)(S,2),k=C[0],P=C[1];(0,a.useEffect)((function(){y("")}),[y]),(0,a.useEffect)((function(){if(j){if(""===j.message)return void P(!1);"error"!==j.type&&P(!0)}}),[j]);var E=f?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return j&&(N=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(N=j.message)),(0,v.jsxs)(c.Z,(0,r.Z)((0,r.Z)({open:t,classes:p},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,v.jsxs)(d.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[_," ",s]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(o.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:k,className:p.snackBarModal,onClose:function(){P(!1),y("")},message:N,ContentProps:{className:"".concat(p.snackBar," ").concat(j&&"error"===j.type?p.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:g?"":p.content,children:x})]}))})))},60680:function(e,n,t){t(72791);var i=t(11135),r=t(25787),a=t(80184);n.Z=(0,r.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,a.jsx)("h1",{className:n.root,children:t})}))}}]); -//# sourceMappingURL=51.76f011ea.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/51.76f011ea.chunk.js.map b/portal-ui/build/static/js/51.76f011ea.chunk.js.map deleted file mode 100644 index 5b49857ba..000000000 --- a/portal-ui/build/static/js/51.76f011ea.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/51.76f011ea.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"],"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 {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n LinearProgress,\n SelectChangeEvent,\n Typography,\n} 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 formFieldRowAccordion: {\n \"& .MuiPaper-root\": { padding: 0 },\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 lifecycleRule: LifeCycleItem;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EditLifecycleConfiguration = ({\n classes,\n closeModalAndRefresh,\n selectedBucket,\n lifecycleRule,\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 (lifecycleRule.status === \"Enabled\") {\n setEnabled(true);\n }\n\n let transitionMode = false;\n\n if (lifecycleRule.transition) {\n if (\n lifecycleRule.transition.days &&\n lifecycleRule.transition.days !== 0\n ) {\n setTransitionDays(lifecycleRule.transition.days.toString());\n setIlmType(\"transition\");\n transitionMode = true;\n }\n if (\n lifecycleRule.transition.noncurrent_transition_days &&\n lifecycleRule.transition.noncurrent_transition_days !== 0\n ) {\n setNCTransitionDays(\n lifecycleRule.transition.noncurrent_transition_days.toString()\n );\n setIlmType(\"transition\");\n transitionMode = true;\n }\n\n // Fallback to old rules by date\n if (\n lifecycleRule.transition.date &&\n lifecycleRule.transition.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"transition\");\n transitionMode = true;\n }\n }\n\n if (lifecycleRule.expiration) {\n if (\n lifecycleRule.expiration.days &&\n lifecycleRule.expiration.days !== 0\n ) {\n setExpiryDays(lifecycleRule.expiration.days.toString());\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n if (\n lifecycleRule.expiration.noncurrent_expiration_days &&\n lifecycleRule.expiration.noncurrent_expiration_days !== 0\n ) {\n setNCExpirationDays(\n lifecycleRule.expiration.noncurrent_expiration_days.toString()\n );\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n\n // Fallback to old rules by date\n if (\n lifecycleRule.expiration.date &&\n lifecycleRule.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(lifecycleRule.transition?.storage_class || \"\");\n setNCTransitionDays(\n lifecycleRule.transition?.noncurrent_transition_days?.toString() || \"0\"\n );\n setNCTransitionSC(\n lifecycleRule.transition?.noncurrent_storage_class || \"\"\n );\n } else {\n // Expiry fields\n setNCExpirationDays(\n lifecycleRule.expiration?.noncurrent_expiration_days?.toString() || \"0\"\n );\n }\n\n setExpiredObjectDM(!!lifecycleRule.expiration?.delete_marker);\n setPrefix(lifecycleRule.prefix || \"\");\n\n if (lifecycleRule.tags) {\n const tgs = lifecycleRule.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 }, [lifecycleRule]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedBucket !== null && lifecycleRule !== null) {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry: { [key: string]: number } = {};\n\n if (\n lifecycleRule.expiration?.days &&\n lifecycleRule.expiration?.days > 0\n ) {\n expiry[\"expiry_days\"] = parseInt(expiryDays);\n }\n if (lifecycleRule.expiration?.noncurrent_expiration_days) {\n expiry[\"noncurrentversion_expiration_days\"] =\n parseInt(NCExpirationDays);\n }\n\n rules = {\n ...expiry,\n };\n } else {\n let transition: { [key: string]: number | string } = {};\n\n if (\n lifecycleRule.expiration?.days &&\n lifecycleRule.expiration?.days > 0\n ) {\n transition[\"transition_days\"] = parseInt(expiryDays);\n transition[\"storage_class\"] = storageClass;\n }\n if (lifecycleRule.expiration?.noncurrent_expiration_days) {\n transition[\"noncurrentversion_transition_days\"] =\n parseInt(NCExpirationDays);\n transition[\"noncurrentversion_transition_storage_class\"] =\n NCTransitionSC;\n }\n\n rules = {\n ...transition,\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/${lifecycleRule.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 {}}\n disabled\n />\n \n \n {\n setEnabled(e.target.checked);\n }}\n />\n \n \n {}}\n disableOptions\n />\n \n {ilmType === \"expiry\" && lifecycleRule.expiration?.days && (\n \n ) => {\n setExpiryDays(e.target.value);\n }}\n label=\"Expiry Days\"\n value={expiryDays}\n min=\"0\"\n />\n \n )}\n\n {ilmType === \"expiry\" &&\n lifecycleRule.expiration?.noncurrent_expiration_days && (\n \n ) => {\n setNCExpirationDays(e.target.value);\n }}\n label=\"Non-current Expiration Days\"\n value={NCExpirationDays}\n min=\"0\"\n />\n \n )}\n {ilmType === \"transition\" && lifecycleRule.transition?.days && (\n \n \n ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\n \n\n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n\n {ilmType === \"transition\" &&\n lifecycleRule.transition?.noncurrent_transition_days && (\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 ) => {\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 \n \n \n Filters\n \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 \n {ilmType === \"expiry\" &&\n lifecycleRule.expiration?.noncurrent_expiration_days && (\n \n \n \n Advanced\n \n\n \n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n \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 {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n LinearProgress,\n SelectChangeEvent,\n Typography,\n} 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\";\nimport { BucketVersioning } from \"../types\";\nimport { AppState } from \"../../../../store\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IReplicationModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n bucketName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n distributedSetup: boolean;\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 formFieldRowFilter: {\n \"& .MuiPaper-root\": { padding: 0 },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddLifecycleModal = ({\n open,\n closeModalAndRefresh,\n classes,\n bucketName,\n setModalErrorSnackMessage,\n distributedSetup,\n}: IReplicationModal) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [isVersioned, setIsVersioned] = useState(false);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [targetVersion, setTargetVersion] = useState<\"current\" | \"noncurrent\">(\n \"current\"\n );\n\n const [lifecycleDays, setLifecycleDays] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n const [expiredObjectDM, setExpiredObjectDM] = useState(false);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\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, lifecycleDays, storageClass]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\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 setModalErrorSnackMessage(err);\n setLoadingVersioning(false);\n });\n }\n }, [\n loadingVersioning,\n setModalErrorSnackMessage,\n bucketName,\n distributedSetup,\n ]);\n\n const addRecord = () => {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry: { [key: string]: number } = {};\n\n if (targetVersion === \"current\") {\n expiry[\"expiry_days\"] = parseInt(lifecycleDays);\n } else {\n expiry[\"noncurrentversion_expiration_days\"] = parseInt(lifecycleDays);\n }\n\n rules = {\n ...expiry,\n };\n } else {\n let transition: { [key: string]: number | string } = {};\n if (targetVersion === \"current\") {\n transition[\"transition_days\"] = parseInt(lifecycleDays);\n transition[\"storage_class\"] = storageClass;\n } else {\n transition[\"noncurrentversion_transition_days\"] =\n parseInt(lifecycleDays);\n transition[\"noncurrentversion_transition_storage_class\"] = storageClass;\n }\n\n rules = {\n ...transition,\n };\n }\n\n const lifecycleInsert = {\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\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 {isVersioned && (\n \n {\n setTargetVersion(\n e.target.value as \"current\" | \"noncurrent\"\n );\n }}\n options={[\n { value: \"current\", label: \"Current Version\" },\n { value: \"noncurrent\", label: \"Non-Current Version\" },\n ]}\n />\n \n )}\n\n \n ) => {\n if (e.target.validity.valid) {\n setLifecycleDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"After\"\n value={lifecycleDays}\n overlayObject={\n \n }\n />\n \n\n {ilmType === \"expiry\" ? (\n \n ) : (\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n \n \n \n Filters\n \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 \n {ilmType === \"expiry\" && targetVersion === \"noncurrent\" && (\n \n \n \n Advanced\n \n \n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expire Delete Marker\"}\n description={\n \"Remove the reference to the object if no versions are left\"\n }\n />\n \n \n \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 mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, {\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 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 hasPermission,\n SecureComponent,\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 renderStorageClass = (objectST: any) => {\n let stClass = get(objectST, \"transition.storage_class\", \"\");\n stClass = get(objectST, \"transition.noncurrent_storage_class\", stClass);\n\n return stClass;\n };\n\n const lifecycleColumns = [\n {\n label: \"Type\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (\n el.expiration &&\n (el.expiration.days > 0 || el.expiration.noncurrent_expiration_days)\n ) {\n return Expiry;\n }\n if (\n el.transition &&\n (el.transition.days > 0 || el.transition.noncurrent_transition_days)\n ) {\n return Transition;\n }\n return ;\n },\n },\n {\n label: \"Version\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (el.expiration) {\n if (el.expiration.days > 0) {\n return Current;\n } else if (el.expiration.noncurrent_expiration_days) {\n return Non-Current;\n }\n }\n if (el.transition) {\n if (el.transition.days > 0) {\n return Current;\n } else if (el.transition.noncurrent_transition_days) {\n return Non-Current;\n }\n }\n },\n },\n {\n label: \"Tier\",\n elementKey: \"storage_class\",\n renderFunction: renderStorageClass,\n renderFullObject: true,\n },\n {\n label: \"Prefix\",\n elementKey: \"prefix\",\n },\n {\n label: \"After\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (el.expiration) {\n if (el.expiration.days > 0) {\n return {el.expiration.days} days;\n } else if (el.expiration.noncurrent_expiration_days) {\n return {el.expiration.noncurrent_expiration_days} days;\n }\n }\n if (el.transition) {\n if (el.transition.days > 0) {\n return {el.transition.days} days;\n } else if (el.transition.noncurrent_transition_days) {\n return {el.transition.noncurrent_transition_days} days;\n }\n }\n },\n },\n {\n label: \"Status\",\n elementKey: \"status\",\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"],"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","formFieldRowAccordion","padding","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","closeModalAndRefresh","selectedBucket","lifecycleRule","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","noncurrent_transition_days","date","expiration","noncurrent_expiration_days","storage_class","noncurrent_storage_class","delete_marker","tgs","reduce","stringLab","currItem","index","key","ModalWrapper","onClose","modalOpen","titleIcon","noValidate","autoComplete","onSubmit","e","event","preventDefault","rules","expiry","parseInt","lifecycleUpdate","disable","expired_object_delete_marker","id","saveRecord","Grid","formScrollable","spacing","InputBoxWrapper","name","onChange","disabled","FormSwitchWrapper","indicatorLabels","checked","target","RadioGroupSelector","currentSelection","selectorOptions","disableOptions","min","Fragment","SelectWrapper","options","placeholder","Accordion","AccordionSummary","Typography","AccordionDetails","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","modalButtonBar","Button","variant","color","onClick","LinearProgress","state","distributedSetup","system","formFieldRowFilter","bucketName","isVersioned","setIsVersioned","targetVersion","setTargetVersion","lifecycleDays","setLifecycleDays","loadingVersioning","setLoadingVersioning","is_versioned","loadingBox","lifecycleInsert","addRecord","validity","pattern","overlayObject","InputUnitMenu","unitSelected","unitsList","description","setErrorSnackMessage","modalBasic","onCloseAndRefresh","deleteOpen","bucket","deletingRule","setDeletingRule","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","confirmationContent","DialogContentText","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","renderFullObject","renderFunction","el","elementKey","objectST","stClass","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","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","textAlign","selectorOption","control","clsx","deleteDialogStyles","onCancel","cancelText","confirmButtonProps","cancelButtonProps","reason","sx","titleText","closeContainer","closeButton","size","content","actions","cancelButton","confirmButton","loading","loadingPosition","startIcon","autoFocus","modalSnackMessage","modalSnackBar","setModalSnackMessage","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/51.8e7e99eb.chunk.js b/portal-ui/build/static/js/51.8e7e99eb.chunk.js new file mode 100644 index 000000000..eca51a1b3 --- /dev/null +++ b/portal-ui/build/static/js/51.8e7e99eb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[51],{23804:function(e,n,t){t(72791);var i=t(11135),r=t(25787),a=t(61889),s=t(80184);n.Z=(0,r.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,r=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(a.ZP,{container:!0,children:[(0,s.jsxs)(a.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,i]}),(0,s.jsx)(a.ZP,{item:!0,xs:12,className:n.helpText,children:r})]})})}))},51:function(e,n,t){t.r(n),t.d(n,{default:function(){return H}});var i=t(29439),r=t(1413),a=t(72791),s=t(60364),o=t(11135),l=t(25787),c=t(26181),d=t.n(c),u=t(61889),x=t(93656),p=t(23814),f=t(42649),m=t(81207),h=t(97581),Z=t(55818),v=t(20890),g=t(3721),j=t(36151),y=t(40986),_=t(56028),b=t(21435),S=t(37516),k=t(17420),C=t(90673),E=t(83679),P=t(80184),N={setModalErrorSnackMessage:f.zb},F=(0,s.$j)(null,N),I=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}},formFieldRowAccordion:{"& .MuiPaper-root":{padding:0}}},p.bK),p.ID),p.DF),p.QV))}))(F((function(e){var n,t,s,o,l,c=e.classes,p=e.closeModalAndRefresh,f=e.selectedBucket,N=e.lifecycleRule,F=e.open,I=e.setModalErrorSnackMessage,T=(0,a.useState)(!0),M=(0,i.Z)(T,2),A=M[0],R=M[1],B=(0,a.useState)(!1),L=(0,i.Z)(B,2),O=L[0],D=L[1],w=(0,a.useState)(""),V=(0,i.Z)(w,2),G=V[0],z=V[1],K=(0,a.useState)(!1),W=(0,i.Z)(K,2),H=W[0],Y=W[1],Q=(0,a.useState)([]),U=(0,i.Z)(Q,2),$=U[0],q=U[1],J=(0,a.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,a.useState)(""),ie=(0,i.Z)(te,2),re=ie[0],ae=ie[1],se=(0,a.useState)(""),oe=(0,i.Z)(se,2),le=oe[0],ce=oe[1],de=(0,a.useState)(!1),ue=(0,i.Z)(de,2),xe=ue[0],pe=ue[1],fe=(0,a.useState)("0"),me=(0,i.Z)(fe,2),he=me[0],Ze=me[1],ve=(0,a.useState)("0"),ge=(0,i.Z)(ve,2),je=ge[0],ye=ge[1],_e=(0,a.useState)("expiry"),be=(0,i.Z)(_e,2),Se=be[0],ke=be[1],Ce=(0,a.useState)("0"),Ee=(0,i.Z)(Ce,2),Pe=Ee[0],Ne=Ee[1],Fe=(0,a.useState)("0"),Ie=(0,i.Z)(Fe,2),Te=Ie[0],Me=Ie[1],Ae=(0,a.useState)(!1),Re=(0,i.Z)(Ae,2),Be=Re[0],Le=Re[1];(0,a.useEffect)((function(){A&&m.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}}));q(t),t.length>0&&ae(t[0].value)}R(!1)})).catch((function(e){R(!1)}))}),[A]),(0,a.useEffect)((function(){var e=!0;"expiry"!==Se&&""===re&&(e=!1),Le(e)}),[Se,Pe,Te,re]),(0,a.useEffect)((function(){var e;"Enabled"===N.status&&Y(!0);var n,t,i,r,a,s,o=!1;(N.transition&&(N.transition.days&&0!==N.transition.days&&(Me(N.transition.days.toString()),ke("transition"),o=!0),N.transition.noncurrent_transition_days&&0!==N.transition.noncurrent_transition_days&&(ye(N.transition.noncurrent_transition_days.toString()),ke("transition"),o=!0),N.transition.date&&"0001-01-01T00:00:00Z"!==N.transition.date&&(ke("transition"),o=!0)),N.expiration&&(N.expiration.days&&0!==N.expiration.days&&(Ne(N.expiration.days.toString()),ke("expiry"),o=!1),N.expiration.noncurrent_expiration_days&&0!==N.expiration.noncurrent_expiration_days&&(Ze(N.expiration.noncurrent_expiration_days.toString()),ke("expiry"),o=!1),N.expiration.date&&"0001-01-01T00:00:00Z"!==N.expiration.date&&(ke("expiry"),o=!1)),o)?(ae((null===(n=N.transition)||void 0===n?void 0:n.storage_class)||""),ye((null===(t=N.transition)||void 0===t||null===(i=t.noncurrent_transition_days)||void 0===i?void 0:i.toString())||"0"),ce((null===(r=N.transition)||void 0===r?void 0:r.noncurrent_storage_class)||"")):Ze((null===(a=N.expiration)||void 0===a||null===(s=a.noncurrent_expiration_days)||void 0===s?void 0:s.toString())||"0");if(pe(!(null===(e=N.expiration)||void 0===e||!e.delete_marker)),ne(N.prefix||""),N.tags){var l=N.tags.reduce((function(e,n,t){return"".concat(e).concat(0!==t?"&":"").concat(n.key,"=").concat(n.value)}),"");z(l)}}),[N]);return(0,P.jsx)(_.Z,{onClose:function(){p(!1)},modalOpen:F,title:"Edit Lifecycle Configuration",titleIcon:(0,P.jsx)(x.QI,{}),children:(0,P.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!O&&(D(!0),null!==f&&null!==N)){var n={};if("expiry"===Se){var t,i,a,s={};null!==(t=N.expiration)&&void 0!==t&&t.days&&(null===(i=N.expiration)||void 0===i?void 0:i.days)>0&&(s.expiry_days=parseInt(Pe)),null!==(a=N.expiration)&&void 0!==a&&a.noncurrent_expiration_days&&(s.noncurrentversion_expiration_days=parseInt(he)),n=(0,r.Z)({},s)}else{var o,l,c,d={};null!==(o=N.expiration)&&void 0!==o&&o.days&&(null===(l=N.expiration)||void 0===l?void 0:l.days)>0&&(d.transition_days=parseInt(Pe),d.storage_class=re),null!==(c=N.expiration)&&void 0!==c&&c.noncurrent_expiration_days&&(d.noncurrentversion_transition_days=parseInt(he),d.noncurrentversion_transition_storage_class=le),n=(0,r.Z)({},d)}var u=(0,r.Z)({type:Se,disable:!H,prefix:ee,tags:G,expired_object_delete_marker:xe},n);m.Z.invoke("PUT","/api/v1/buckets/".concat(f,"/lifecycle/").concat(N.id),u).then((function(e){D(!1),p(!0)})).catch((function(e){D(!1),I(e)}))}}(e)},children:(0,P.jsxs)(u.ZP,{container:!0,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,className:c.formScrollable,children:(0,P.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{id:"id",name:"id",label:"Id",value:N.id,onChange:function(){},disabled:!0})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(S.Z,{label:"Status",indicatorLabels:["Enabled","Disabled"],checked:H,value:"user_enabled",id:"rule_status",name:"rule_status",onChange:function(e){Y(e.target.checked)}})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(E.Z,{currentSelection:Se,id:"rule_type",name:"rule_type",label:"Rule Type",selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}],onChange:function(){},disableOptions:!0})}),"expiry"===Se&&(null===(n=N.expiration)||void 0===n?void 0:n.days)&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){Ne(e.target.value)},label:"Expiry Days",value:Pe,min:"0"})}),"expiry"===Se&&(null===(t=N.expiration)||void 0===t?void 0:t.noncurrent_expiration_days)&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){Ze(e.target.value)},label:"Non-current Expiration Days",value:he,min:"0"})}),"transition"===Se&&(null===(s=N.transition)||void 0===s?void 0:s.days)&&(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){Me(e.target.value)},label:"Transition Days",value:Te,min:"0"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(C.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:re,onChange:function(e){ae(e.target.value)},options:$})})]}),"transition"===Se&&(null===(o=N.transition)||void 0===o?void 0:o.noncurrent_transition_days)&&(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){ye(e.target.value)},label:"Non-current Transition Days",value:je,min:"0"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){ce(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:le})})]}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRowAccordion,children:(0,P.jsxs)(h.Z,{children:[(0,P.jsx)(Z.Z,{children:(0,P.jsx)(v.Z,{children:"Filters"})}),(0,P.jsxs)(g.Z,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{id:"prefix",name:"prefix",onChange:function(e){ne(e.target.value)},label:"Prefix",value:ee})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(k.Z,{name:"tags",label:"Tags",elements:G,onChange:function(e){z(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})]})}),"expiry"===Se&&(null===(l=N.expiration)||void 0===l?void 0:l.noncurrent_expiration_days)&&(0,P.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRowAccordion,children:(0,P.jsxs)(h.Z,{children:[(0,P.jsx)(Z.Z,{children:(0,P.jsx)(v.Z,{children:"Advanced"})}),(0,P.jsx)(g.Z,{children:(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(S.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:xe,onChange:function(e){pe(e.target.checked)},label:"Expired Object Delete Marker"})})})]})})]})}),(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,P.jsx)(j.Z,{type:"button",variant:"outlined",color:"primary",disabled:O,onClick:function(){p(!1)},children:"Cancel"}),(0,P.jsx)(j.Z,{type:"submit",variant:"contained",color:"primary",disabled:O||!Be,children:"Save"})]}),O&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(y.Z,{})})]})})})}))),T=t(56578),M=(0,s.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),{setModalErrorSnackMessage:f.zb}),A=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}},formFieldRowFilter:{"& .MuiPaper-root":{padding:0}}},p.bK),p.ID),p.DF),p.QV))}))(M((function(e){var n=e.open,t=e.closeModalAndRefresh,s=e.classes,o=e.bucketName,l=e.setModalErrorSnackMessage,c=e.distributedSetup,p=(0,a.useState)(!0),f=(0,i.Z)(p,2),N=f[0],F=f[1],I=(0,a.useState)([]),M=(0,i.Z)(I,2),A=M[0],R=M[1],B=(0,a.useState)(!1),L=(0,i.Z)(B,2),O=L[0],D=L[1],w=(0,a.useState)(!1),V=(0,i.Z)(w,2),G=V[0],z=V[1],K=(0,a.useState)(""),W=(0,i.Z)(K,2),H=W[0],Y=W[1],Q=(0,a.useState)(""),U=(0,i.Z)(Q,2),$=U[0],q=U[1],J=(0,a.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,a.useState)("expiry"),ie=(0,i.Z)(te,2),re=ie[0],ae=ie[1],se=(0,a.useState)("current"),oe=(0,i.Z)(se,2),le=oe[0],ce=oe[1],de=(0,a.useState)(""),ue=(0,i.Z)(de,2),xe=ue[0],pe=ue[1],fe=(0,a.useState)(!1),me=(0,i.Z)(fe,2),he=me[0],Ze=me[1],ve=(0,a.useState)(!1),ge=(0,i.Z)(ve,2),je=ge[0],ye=ge[1],_e=(0,a.useState)(!0),be=(0,i.Z)(_e,2),Se=be[0],ke=be[1];(0,a.useEffect)((function(){N&&m.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}}));R(t),t.length>0&&ne(t[0].value)}F(!1)})).catch((function(e){F(!1)}))}),[N]),(0,a.useEffect)((function(){var e=!0;"expiry"!==re&&""===ee&&(e=!1),Ze(e)}),[re,xe,ee]),(0,a.useEffect)((function(){Se&&c&&m.Z.invoke("GET","/api/v1/buckets/".concat(o,"/versioning")).then((function(e){z(e.is_versioned),ke(!1)})).catch((function(e){l(e),ke(!1)}))}),[Se,l,o,c]);return(0,P.jsxs)(_.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Add Lifecycle Rule",titleIcon:(0,P.jsx)(x.QI,{}),children:[N&&(0,P.jsx)(u.ZP,{container:!0,className:s.loadingBox,children:(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(y.Z,{})})}),!N&&(0,P.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),D(!0),function(){var e={};if("expiry"===re){var n={};"current"===le?n.expiry_days=parseInt(xe):n.noncurrentversion_expiration_days=parseInt(xe),e=(0,r.Z)({},n)}else{var i={};"current"===le?(i.transition_days=parseInt(xe),i.storage_class=ee):(i.noncurrentversion_transition_days=parseInt(xe),i.noncurrentversion_transition_storage_class=ee),e=(0,r.Z)({},i)}var a=(0,r.Z)({type:re,prefix:H,tags:$,expired_object_delete_marker:je},e);m.Z.invoke("POST","/api/v1/buckets/".concat(o,"/lifecycle"),a).then((function(){D(!1),t(!0)})).catch((function(e){D(!1),l(e)}))}()},children:(0,P.jsxs)(u.ZP,{container:!0,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,className:s.formScrollable,children:(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(E.Z,{currentSelection:re,id:"ilm_type",name:"ilm_type",label:"Type of lifecycle",onChange:function(e){ae(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),G&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(C.Z,{value:le,id:"object_version",name:"object_version",label:"Object Version",onChange:function(e){ce(e.target.value)},options:[{value:"current",label:"Current Version"},{value:"noncurrent",label:"Non-Current Version"}]})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{id:"expiry_days",name:"expiry_days",onChange:function(e){e.target.validity.valid&&pe(e.target.value)},pattern:"[0-9]*",label:"After",value:xe,overlayObject:(0,P.jsx)(T.Z,{id:"expire-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),"expiry"===re?(0,P.jsx)(a.Fragment,{}):(0,P.jsx)(a.Fragment,{children:(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(C.Z,{label:"To Tier",id:"storage_class",name:"storage_class",value:ee,onChange:function(e){ne(e.target.value)},options:A})})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:s.formFieldRowFilter,children:(0,P.jsxs)(h.Z,{children:[(0,P.jsx)(Z.Z,{children:(0,P.jsx)(v.Z,{children:"Filters"})}),(0,P.jsxs)(g.Z,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(b.Z,{id:"prefix",name:"prefix",onChange:function(e){Y(e.target.value)},label:"Prefix",value:H})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(k.Z,{name:"tags",label:"Tags",elements:"",onChange:function(e){q(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})]})}),"expiry"===re&&"noncurrent"===le&&(0,P.jsx)(u.ZP,{item:!0,xs:12,className:s.formFieldRowFilter,children:(0,P.jsxs)(h.Z,{children:[(0,P.jsx)(Z.Z,{children:(0,P.jsx)(v.Z,{children:"Advanced"})}),(0,P.jsx)(g.Z,{children:(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(S.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:je,onChange:function(e){ye(e.target.checked)},label:"Expire Delete Marker",description:"Remove the reference to the object if no versions are left"})})})]})})]})})}),(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,P.jsx)(j.Z,{type:"button",variant:"outlined",color:"primary",disabled:O,onClick:function(){t(!1)},children:"Cancel"}),(0,P.jsx)(j.Z,{type:"submit",variant:"contained",color:"primary",disabled:O||!he,children:"Save"})]}),O&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(y.Z,{})})]})})]})}))),R=t(92983),B=t(23804),L=t(60680),O=t(38442),D=t(56087),w=t(40603),V=t(51691),G=t(2148),z=(0,s.$j)(null,{setErrorSnackMessage:f.Ih}),K=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)({},p.oO))}))(z((function(e){var n=e.onCloseAndRefresh,t=e.deleteOpen,r=e.bucket,s=e.id,o=e.setErrorSnackMessage,l=(0,a.useState)(!1),c=(0,i.Z)(l,2),d=c[0],u=c[1];(0,a.useEffect)((function(){d&&m.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/lifecycle/").concat(s)).then((function(e){u(!1),n(!0)})).catch((function(e){u(!1),o(e)}))}),[d,r,s,n,o]);return(0,P.jsx)(G.Z,{title:"Delete Lifecycle Rule",confirmText:"Delete",isOpen:t,isLoading:d,onConfirm:function(){u(!0)},titleIcon:(0,P.jsx)(x.Nv,{}),onClose:function(){return n(!1)},confirmationContent:(0,P.jsxs)(V.Z,{children:["Are you sure you want to delete the ",(0,P.jsx)("strong",{children:s})," rule?"]})})}))),W=(0,s.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:f.Ih}),H=(0,l.Z)((function(e){return(0,o.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(W((function(e){var n=e.classes,t=e.match,r=(e.setErrorSnackMessage,e.loadingBucket),s=(e.bucketInfo,(0,a.useState)(!0)),o=(0,i.Z)(s,2),l=o[0],c=o[1],p=(0,a.useState)([]),f=(0,i.Z)(p,2),h=f[0],Z=f[1],v=(0,a.useState)(!1),g=(0,i.Z)(v,2),j=g[0],y=g[1],_=(0,a.useState)(!1),b=(0,i.Z)(_,2),S=b[0],k=b[1],C=(0,a.useState)(null),E=(0,i.Z)(C,2),N=E[0],F=E[1],T=(0,a.useState)(!1),M=(0,i.Z)(T,2),V=M[0],G=M[1],z=(0,a.useState)(null),W=(0,i.Z)(z,2),H=W[0],Y=W[1],Q=t.params.bucketName,U=(0,O.F)(Q,[D.Ft.S3_GET_LIFECYCLE_CONFIGURATION]);(0,a.useEffect)((function(){r&&c(!0)}),[r,c]),(0,a.useEffect)((function(){l&&(U?m.Z.invoke("GET","/api/v1/buckets/".concat(Q,"/lifecycle")).then((function(e){var n=d()(e,"lifecycle",[]);Z(n||[]),c(!1)})).catch((function(e){console.error(e),Z([]),c(!1)})):c(!1))}),[l,c,Q,U]);var $=[{label:"Type",renderFullObject:!0,renderFunction:function(e){return e?e.expiration&&(e.expiration.days>0||e.expiration.noncurrent_expiration_days)?(0,P.jsx)("span",{children:"Expiry"}):e.transition&&(e.transition.days>0||e.transition.noncurrent_transition_days)?(0,P.jsx)("span",{children:"Transition"}):(0,P.jsx)(a.Fragment,{}):(0,P.jsx)(a.Fragment,{})}},{label:"Version",renderFullObject:!0,renderFunction:function(e){if(!e)return(0,P.jsx)(a.Fragment,{});if(e.expiration){if(e.expiration.days>0)return(0,P.jsx)("span",{children:"Current"});if(e.expiration.noncurrent_expiration_days)return(0,P.jsx)("span",{children:"Non-Current"})}if(e.transition){if(e.transition.days>0)return(0,P.jsx)("span",{children:"Current"});if(e.transition.noncurrent_transition_days)return(0,P.jsx)("span",{children:"Non-Current"})}}},{label:"Tier",elementKey:"storage_class",renderFunction:function(e){var n=d()(e,"transition.storage_class","");return n=d()(e,"transition.noncurrent_storage_class",n)},renderFullObject:!0},{label:"Prefix",elementKey:"prefix"},{label:"After",renderFullObject:!0,renderFunction:function(e){if(!e)return(0,P.jsx)(a.Fragment,{});if(e.expiration){if(e.expiration.days>0)return(0,P.jsxs)("span",{children:[e.expiration.days," days"]});if(e.expiration.noncurrent_expiration_days)return(0,P.jsxs)("span",{children:[e.expiration.noncurrent_expiration_days," days"]})}if(e.transition){if(e.transition.days>0)return(0,P.jsxs)("span",{children:[e.transition.days," days"]});if(e.transition.noncurrent_transition_days)return(0,P.jsxs)("span",{children:[e.transition.noncurrent_transition_days," days"]})}}},{label:"Status",elementKey:"status"}],q=[{type:"view",onClick:function(e){F(e),k(!0)}},{type:"delete",onClick:function(e){Y(e),G(!0)},sendOnlyId:!0}];return(0,P.jsxs)(a.Fragment,{children:[S&&N&&(0,P.jsx)(I,{open:S,closeModalAndRefresh:function(e){k(!1),F(null),e&&c(!0)},selectedBucket:Q,lifecycleRule:N}),j&&(0,P.jsx)(A,{open:j,bucketName:Q,closeModalAndRefresh:function(e){y(!1),e&&c(!0)}}),V&&H&&(0,P.jsx)(K,{id:H,bucket:Q,deleteOpen:V,onCloseAndRefresh:function(e){G(!1),Y(null),e&&c(!0)}}),(0,P.jsxs)(u.ZP,{container:!0,children:[(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,P.jsx)(L.Z,{children:"Lifecycle Rules"}),(0,P.jsx)(O.s,{scopes:[D.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,D.Ft.ADMIN_LIST_TIERS],resource:Q,matchAll:!0,errorProps:{disabled:!0},children:(0,P.jsx)(w.Z,{tooltip:"Add Lifecycle Rule",onClick:function(){y(!0)},text:"Add Lifecycle Rule",icon:(0,P.jsx)(x.dt,{}),color:"primary",variant:"contained"})})]}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(O.s,{scopes:[D.Ft.S3_GET_LIFECYCLE_CONFIGURATION],resource:Q,errorProps:{disabled:!0},children:(0,P.jsx)(R.Z,{itemActions:q,columns:$,isLoading:l,records:h,entityName:"Lifecycle",customEmptyMessage:"There are no Lifecycle rules yet",idField:"id",customPaperHeight:n.twHeight})})}),!l&&(0,P.jsxs)(u.ZP,{item:!0,xs:12,children:[(0,P.jsx)("br",{}),(0,P.jsx)(B.Z,{title:"Lifecycle Rules",iconComponent:(0,P.jsx)(x.y2,{}),help:(0,P.jsxs)(a.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,P.jsx)("br",{}),(0,P.jsx)("br",{}),"You can learn more at our"," ",(0,P.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){var i=t(93433),r=t(29439),a=t(1413),s=t(72791),o=t(26181),l=t.n(o),c=t(48573),d=t.n(c),u=t(11135),x=t(25787),p=t(61889),f=t(77961),m=t(30829),h=t(20068),Z=t(23814),v=t(21435),g=t(47919),j=t(80184);n.Z=(0,x.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.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,a=e.label,o=e.tooltip,c=void 0===o?"":o,u=e.keyPlaceholder,x=void 0===u?"":u,Z=e.valuePlaceholder,y=void 0===Z?"":Z,_=e.onChange,b=e.withBorder,S=void 0!==b&&b,k=e.classes,C=(0,s.useState)([""]),E=(0,r.Z)(C,2),P=E[0],N=E[1],F=(0,s.useState)([""]),I=(0,r.Z)(F,2),T=I[0],M=I[1],A=(0,s.createRef)();(0,s.useEffect)((function(){if(1===P.length&&""===P[0]&&1===T.length&&""===T[0]&&n&&""!==n){var e=n.split("&"),t=[],i=[];e.forEach((function(e){var n=e.split("=");2===n.length&&(t.push(n[0]),i.push(n[1]))})),t.push(""),i.push(""),N(t),M(i)}}),[P,T,n]),(0,s.useEffect)((function(){var e=A.current;e&&P.length>1&&e.scrollIntoView(!1)}),[P]);var R=(0,s.useRef)(!0);(0,s.useLayoutEffect)((function(){R.current?R.current=!1:O()}),[P,T]);var B=function(e){e.persist();var n=(0,i.Z)(P);n[l()(e.target,"dataset.index",0)]=e.target.value,N(n)},L=function(e){e.persist();var n=(0,i.Z)(T);n[l()(e.target,"dataset.index",0)]=e.target.value,M(n)},O=d()((function(){var e="";P.forEach((function(n,t){if(P[t]&&T[t]){var i="".concat(n,"=").concat(T[t]);0!==t&&(i="&".concat(i)),e="".concat(e).concat(i)}})),_(e)}),500),D=T.map((function(e,n){return(0,j.jsxs)(p.ZP,{item:!0,xs:12,className:k.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:B,index:n,placeholder:x}),(0,j.jsx)("span",{className:k.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:L,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,i.Z)(P),n=(0,i.Z)(T);e.push(""),n.push(""),N(e),M(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,j.jsx)(s.Fragment,{children:(0,j.jsxs)(p.ZP,{item:!0,xs:12,className:k.fieldContainer,children:[(0,j.jsxs)(m.Z,{className:k.inputLabel,children:[(0,j.jsx)("span",{children:a}),""!==c&&(0,j.jsx)("div",{className:k.tooltipContainer,children:(0,j.jsx)(h.Z,{title:c,placement:"top-start",children:(0,j.jsx)(f.Z,{className:k.tooltip})})})]}),(0,j.jsxs)(p.ZP,{item:!0,xs:12,className:"".concat(S?k.inputWithBorder:""),children:[D,(0,j.jsx)("div",{ref:A})]})]})})}))},56028:function(e,n,t){var i=t(29439),r=t(1413),a=t(72791),s=t(60364),o=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),x=t(11135),p=t(25787),f=t(23814),m=t(42649),h=t(29823),Z=t(28057),v=t(80184),g=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:m.MK});n.Z=(0,p.Z)((function(e){return(0,x.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,t=e.modalOpen,s=e.title,x=e.children,p=e.classes,f=e.wideLimit,m=void 0===f||f,g=e.modalSnackMessage,j=e.noContentPadding,y=e.setModalSnackMessage,_=e.titleIcon,b=void 0===_?null:_,S=(0,a.useState)(!1),k=(0,i.Z)(S,2),C=k[0],E=k[1];(0,a.useEffect)((function(){y("")}),[y]),(0,a.useEffect)((function(){if(g){if(""===g.message)return void E(!1);"error"!==g.type&&E(!0)}}),[g]);var P=m?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return g&&(N=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(N=g.message)),(0,v.jsxs)(c.Z,(0,r.Z)((0,r.Z)({open:t,classes:p},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,v.jsxs)(d.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[b," ",s]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(o.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:C,className:p.snackBarModal,onClose:function(){E(!1),y("")},message:N,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:j?"":p.content,children:x})]}))})))},60680:function(e,n,t){t(72791);var i=t(11135),r=t(25787),a=t(80184);n.Z=(0,r.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,a.jsx)("h1",{className:n.root,children:t})}))}}]); +//# sourceMappingURL=51.8e7e99eb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/51.8e7e99eb.chunk.js.map b/portal-ui/build/static/js/51.8e7e99eb.chunk.js.map new file mode 100644 index 000000000..e0e342e48 --- /dev/null +++ b/portal-ui/build/static/js/51.8e7e99eb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/51.8e7e99eb.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/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.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, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n LinearProgress,\n SelectChangeEvent,\n Typography,\n} 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 formFieldRowAccordion: {\n \"& .MuiPaper-root\": { padding: 0 },\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 lifecycleRule: LifeCycleItem;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EditLifecycleConfiguration = ({\n classes,\n closeModalAndRefresh,\n selectedBucket,\n lifecycleRule,\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 (lifecycleRule.status === \"Enabled\") {\n setEnabled(true);\n }\n\n let transitionMode = false;\n\n if (lifecycleRule.transition) {\n if (\n lifecycleRule.transition.days &&\n lifecycleRule.transition.days !== 0\n ) {\n setTransitionDays(lifecycleRule.transition.days.toString());\n setIlmType(\"transition\");\n transitionMode = true;\n }\n if (\n lifecycleRule.transition.noncurrent_transition_days &&\n lifecycleRule.transition.noncurrent_transition_days !== 0\n ) {\n setNCTransitionDays(\n lifecycleRule.transition.noncurrent_transition_days.toString()\n );\n setIlmType(\"transition\");\n transitionMode = true;\n }\n\n // Fallback to old rules by date\n if (\n lifecycleRule.transition.date &&\n lifecycleRule.transition.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"transition\");\n transitionMode = true;\n }\n }\n\n if (lifecycleRule.expiration) {\n if (\n lifecycleRule.expiration.days &&\n lifecycleRule.expiration.days !== 0\n ) {\n setExpiryDays(lifecycleRule.expiration.days.toString());\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n if (\n lifecycleRule.expiration.noncurrent_expiration_days &&\n lifecycleRule.expiration.noncurrent_expiration_days !== 0\n ) {\n setNCExpirationDays(\n lifecycleRule.expiration.noncurrent_expiration_days.toString()\n );\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n\n // Fallback to old rules by date\n if (\n lifecycleRule.expiration.date &&\n lifecycleRule.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(lifecycleRule.transition?.storage_class || \"\");\n setNCTransitionDays(\n lifecycleRule.transition?.noncurrent_transition_days?.toString() || \"0\"\n );\n setNCTransitionSC(\n lifecycleRule.transition?.noncurrent_storage_class || \"\"\n );\n } else {\n // Expiry fields\n setNCExpirationDays(\n lifecycleRule.expiration?.noncurrent_expiration_days?.toString() || \"0\"\n );\n }\n\n setExpiredObjectDM(!!lifecycleRule.expiration?.delete_marker);\n setPrefix(lifecycleRule.prefix || \"\");\n\n if (lifecycleRule.tags) {\n const tgs = lifecycleRule.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 }, [lifecycleRule]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedBucket !== null && lifecycleRule !== null) {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry: { [key: string]: number } = {};\n\n if (\n lifecycleRule.expiration?.days &&\n lifecycleRule.expiration?.days > 0\n ) {\n expiry[\"expiry_days\"] = parseInt(expiryDays);\n }\n if (lifecycleRule.expiration?.noncurrent_expiration_days) {\n expiry[\"noncurrentversion_expiration_days\"] =\n parseInt(NCExpirationDays);\n }\n\n rules = {\n ...expiry,\n };\n } else {\n let transition: { [key: string]: number | string } = {};\n\n if (\n lifecycleRule.expiration?.days &&\n lifecycleRule.expiration?.days > 0\n ) {\n transition[\"transition_days\"] = parseInt(expiryDays);\n transition[\"storage_class\"] = storageClass;\n }\n if (lifecycleRule.expiration?.noncurrent_expiration_days) {\n transition[\"noncurrentversion_transition_days\"] =\n parseInt(NCExpirationDays);\n transition[\"noncurrentversion_transition_storage_class\"] =\n NCTransitionSC;\n }\n\n rules = {\n ...transition,\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/${lifecycleRule.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 {}}\n disabled\n />\n \n \n {\n setEnabled(e.target.checked);\n }}\n />\n \n \n {}}\n disableOptions\n />\n \n {ilmType === \"expiry\" && lifecycleRule.expiration?.days && (\n \n ) => {\n setExpiryDays(e.target.value);\n }}\n label=\"Expiry Days\"\n value={expiryDays}\n min=\"0\"\n />\n \n )}\n\n {ilmType === \"expiry\" &&\n lifecycleRule.expiration?.noncurrent_expiration_days && (\n \n ) => {\n setNCExpirationDays(e.target.value);\n }}\n label=\"Non-current Expiration Days\"\n value={NCExpirationDays}\n min=\"0\"\n />\n \n )}\n {ilmType === \"transition\" && lifecycleRule.transition?.days && (\n \n \n ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\n \n\n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n\n {ilmType === \"transition\" &&\n lifecycleRule.transition?.noncurrent_transition_days && (\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 ) => {\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 \n \n \n Filters\n \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 \n {ilmType === \"expiry\" &&\n lifecycleRule.expiration?.noncurrent_expiration_days && (\n \n \n \n Advanced\n \n\n \n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n \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 {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n LinearProgress,\n SelectChangeEvent,\n Typography,\n} 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\";\nimport { BucketVersioning } from \"../types\";\nimport { AppState } from \"../../../../store\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IReplicationModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n bucketName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n distributedSetup: boolean;\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 formFieldRowFilter: {\n \"& .MuiPaper-root\": { padding: 0 },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddLifecycleModal = ({\n open,\n closeModalAndRefresh,\n classes,\n bucketName,\n setModalErrorSnackMessage,\n distributedSetup,\n}: IReplicationModal) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [isVersioned, setIsVersioned] = useState(false);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [targetVersion, setTargetVersion] = useState<\"current\" | \"noncurrent\">(\n \"current\"\n );\n\n const [lifecycleDays, setLifecycleDays] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n const [expiredObjectDM, setExpiredObjectDM] = useState(false);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\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, lifecycleDays, storageClass]);\n\n useEffect(() => {\n if (loadingVersioning && distributedSetup) {\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 setModalErrorSnackMessage(err);\n setLoadingVersioning(false);\n });\n }\n }, [\n loadingVersioning,\n setModalErrorSnackMessage,\n bucketName,\n distributedSetup,\n ]);\n\n const addRecord = () => {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry: { [key: string]: number } = {};\n\n if (targetVersion === \"current\") {\n expiry[\"expiry_days\"] = parseInt(lifecycleDays);\n } else {\n expiry[\"noncurrentversion_expiration_days\"] = parseInt(lifecycleDays);\n }\n\n rules = {\n ...expiry,\n };\n } else {\n let transition: { [key: string]: number | string } = {};\n if (targetVersion === \"current\") {\n transition[\"transition_days\"] = parseInt(lifecycleDays);\n transition[\"storage_class\"] = storageClass;\n } else {\n transition[\"noncurrentversion_transition_days\"] =\n parseInt(lifecycleDays);\n transition[\"noncurrentversion_transition_storage_class\"] = storageClass;\n }\n\n rules = {\n ...transition,\n };\n }\n\n const lifecycleInsert = {\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\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 {isVersioned && (\n \n {\n setTargetVersion(\n e.target.value as \"current\" | \"noncurrent\"\n );\n }}\n options={[\n { value: \"current\", label: \"Current Version\" },\n { value: \"noncurrent\", label: \"Non-Current Version\" },\n ]}\n />\n \n )}\n\n \n ) => {\n if (e.target.validity.valid) {\n setLifecycleDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"After\"\n value={lifecycleDays}\n overlayObject={\n \n }\n />\n \n\n {ilmType === \"expiry\" ? (\n \n ) : (\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n \n \n \n Filters\n \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 \n {ilmType === \"expiry\" && targetVersion === \"noncurrent\" && (\n \n \n \n Advanced\n \n \n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expire Delete Marker\"}\n description={\n \"Remove the reference to the object if no versions are left\"\n }\n />\n \n \n \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 mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, {\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 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 hasPermission,\n SecureComponent,\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 renderStorageClass = (objectST: any) => {\n let stClass = get(objectST, \"transition.storage_class\", \"\");\n stClass = get(objectST, \"transition.noncurrent_storage_class\", stClass);\n\n return stClass;\n };\n\n const lifecycleColumns = [\n {\n label: \"Type\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (\n el.expiration &&\n (el.expiration.days > 0 || el.expiration.noncurrent_expiration_days)\n ) {\n return Expiry;\n }\n if (\n el.transition &&\n (el.transition.days > 0 || el.transition.noncurrent_transition_days)\n ) {\n return Transition;\n }\n return ;\n },\n },\n {\n label: \"Version\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (el.expiration) {\n if (el.expiration.days > 0) {\n return Current;\n } else if (el.expiration.noncurrent_expiration_days) {\n return Non-Current;\n }\n }\n if (el.transition) {\n if (el.transition.days > 0) {\n return Current;\n } else if (el.transition.noncurrent_transition_days) {\n return Non-Current;\n }\n }\n },\n },\n {\n label: \"Tier\",\n elementKey: \"storage_class\",\n renderFunction: renderStorageClass,\n renderFullObject: true,\n },\n {\n label: \"Prefix\",\n elementKey: \"prefix\",\n },\n {\n label: \"After\",\n renderFullObject: true,\n renderFunction: (el: LifeCycleItem) => {\n if (!el) {\n return ;\n }\n if (el.expiration) {\n if (el.expiration.days > 0) {\n return {el.expiration.days} days;\n } else if (el.expiration.noncurrent_expiration_days) {\n return {el.expiration.noncurrent_expiration_days} days;\n }\n }\n if (el.transition) {\n if (el.transition.days > 0) {\n return {el.transition.days} days;\n } else if (el.transition.noncurrent_transition_days) {\n return {el.transition.noncurrent_transition_days} days;\n }\n }\n },\n },\n {\n label: \"Status\",\n elementKey: \"status\",\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, { 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"],"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","formFieldRowAccordion","padding","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","closeModalAndRefresh","selectedBucket","lifecycleRule","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","noncurrent_transition_days","date","expiration","noncurrent_expiration_days","storage_class","noncurrent_storage_class","delete_marker","tgs","reduce","stringLab","currItem","index","key","ModalWrapper","onClose","modalOpen","titleIcon","noValidate","autoComplete","onSubmit","e","event","preventDefault","rules","expiry","parseInt","lifecycleUpdate","disable","expired_object_delete_marker","id","saveRecord","Grid","formScrollable","spacing","InputBoxWrapper","name","onChange","disabled","FormSwitchWrapper","indicatorLabels","checked","target","RadioGroupSelector","currentSelection","selectorOptions","disableOptions","min","Fragment","SelectWrapper","options","placeholder","Accordion","AccordionSummary","Typography","AccordionDetails","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","modalButtonBar","Button","variant","color","onClick","LinearProgress","state","distributedSetup","system","formFieldRowFilter","bucketName","isVersioned","setIsVersioned","targetVersion","setTargetVersion","lifecycleDays","setLifecycleDays","loadingVersioning","setLoadingVersioning","is_versioned","loadingBox","lifecycleInsert","addRecord","validity","pattern","overlayObject","InputUnitMenu","unitSelected","unitsList","description","setErrorSnackMessage","modalBasic","onCloseAndRefresh","deleteOpen","bucket","deletingRule","setDeletingRule","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","confirmationContent","DialogContentText","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","renderFullObject","renderFunction","el","elementKey","objectST","stClass","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","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","modalSnackMessage","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","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/5140.8f5521e6.chunk.js b/portal-ui/build/static/js/5140.8f5521e6.chunk.js deleted file mode 100644 index b90e90628..000000000 --- a/portal-ui/build/static/js/5140.8f5521e6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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.8f5521e6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5140.8f5521e6.chunk.js.map b/portal-ui/build/static/js/5140.8f5521e6.chunk.js.map deleted file mode 100644 index 255925ea1..000000000 --- a/portal-ui/build/static/js/5140.8f5521e6.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5140.8f5521e6.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/5140.e9043b63.chunk.js b/portal-ui/build/static/js/5140.e9043b63.chunk.js new file mode 100644 index 000000000..64714f85f --- /dev/null +++ b/portal-ui/build/static/js/5140.e9043b63.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5140],{65140:function(e,n,a){a.r(n);var t=a(29439),c=a(1413),r=a(72791),o=a(11135),s=a(25787),i=a(91523),l=a(64554),u=a(13400),d=a(32291),m=a(23814),p=a(77608),h=a(62666),f=a(28789),x=a(72401),v=a(80184);n.default=(0,s.Z)((function(e){return(0,o.Z)((0,c.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,m.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,a=e.match,c=(0,r.useState)(!0),o=(0,t.Z)(c,2),s=o[0],m=o[1],j=a.params.tenantName,g=a.params.tenantNamespace,b=r.useRef(null);return(0,v.jsxs)(r.Fragment,{children:[(0,v.jsx)(l.Z,{className:n.pageHeader,children:(0,v.jsx)(d.Z,{label:(0,v.jsxs)(r.Fragment,{children:[(0,v.jsx)(i.rU,{to:"/tenants",className:n.breadcrumLink,children:"Tenants"})," > ",(0,v.jsx)(i.rU,{to:"/namespaces/".concat(g,"/tenants/").concat(j),className:n.breadcrumLink,children:a.params.tenantName})," > Management"]}),actions:(0,v.jsxs)(r.Fragment,{children:[(0,v.jsx)(u.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){if(null!==b&&null!==b.current&&null!==b.current.contentDocument){var e=b.current.contentDocument.location.toString(),n="&";if(e.indexOf("?")<0&&(n="?"),e.indexOf("cp=y")<0){var a="".concat(e).concat(n,"cp=y");b.current.contentDocument.location.replace(a)}else b.current.contentDocument.location.reload()}},size:"large",children:(0,v.jsx)(f.default,{})}),(0,v.jsx)(u.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h.Z.push("/namespaces/".concat(g,"/tenants/").concat(j))},size:"large",children:(0,v.jsx)(p.Z,{})})]})})}),(0,v.jsxs)("div",{className:n.divContainer,children:[s&&(0,v.jsx)("div",{className:n.loader,children:(0,v.jsx)(x.Z,{})}),(0,v.jsx)("iframe",{ref:b,className:n.iframeStyle,title:"metrics",src:"/api/hop/".concat(g,"/").concat(j,"/?cp=y"),onLoad:function(e){m(!1)}})]})]})}))},77608:function(e,n,a){var t=a(95318);n.Z=void 0;var c=t(a(45649)),r=a(80184),o=(0,c.default)((0,r.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=o}}]); +//# sourceMappingURL=5140.e9043b63.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5140.e9043b63.chunk.js.map b/portal-ui/build/static/js/5140.e9043b63.chunk.js.map new file mode 100644 index 000000000..bf79e71b2 --- /dev/null +++ b/portal-ui/build/static/js/5140.e9043b63.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5140.e9043b63.chunk.js","mappings":"4RAoKA,WAAeA,EAAAA,EAAAA,IAlIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,QACXC,cAAe,CACbC,eAAgB,OAChBC,MAAO,SAETC,YAAa,CACXC,OAAQ,EACRC,SAAU,WACVC,OAAQ,qBACRC,MAAO,QAETC,aAAc,CACZH,SAAU,WACVI,KAAM,EACNC,IAAK,GACLJ,OAAQ,qBACRC,MAAO,QAETI,OAAQ,CACNJ,MAAO,IACPK,OAAQ,OACRC,UAAW,IAGbC,WAAY,CACVC,aAAc,uBAGbC,EAAAA,EAAAA,IAAmBlB,EAAMmB,QAAQ,QAqGxC,EAlGY,SAAC,GAAoC,IAAlCC,EAAiC,EAAjCA,QAASC,EAAwB,EAAxBA,MACtB,GAA8BC,EAAAA,EAAAA,WAAkB,GAAhD,eAAOC,EAAP,KAAgBC,EAAhB,KAEMC,EAAaJ,EAAMK,OAAN,WACbC,EAAkBN,EAAMK,OAAN,gBAClBE,EAAeC,EAAAA,OAAgC,MAErD,OACE,UAAC,EAAAC,SAAD,YACE,SAAC,IAAD,CAAKC,UAAWX,EAAQJ,WAAxB,UACE,SAAC,IAAD,CACEgB,OACE,UAAC,EAAAF,SAAD,YACE,SAAC,KAAD,CAAMG,GAAI,WAAYF,UAAWX,EAAQlB,cAAzC,qBADF,OAKE,SAAC,KAAD,CACE+B,GAAE,sBAAiBN,EAAjB,oBAA4CF,GAC9CM,UAAWX,EAAQlB,cAFrB,SAIGmB,EAAMK,OAAN,aATL,mBAcFQ,SACE,UAAC,WAAD,YACE,SAAC,IAAD,CACE9B,MAAM,UACN,aAAW,eACX+B,UAAU,OACVC,QAAS,WACP,GACmB,OAAjBR,GACyB,OAAzBA,EAAaS,SAC4B,OAAzCT,EAAaS,QAAQC,gBACrB,CACA,IAAMC,EACJX,EAAaS,QAAQC,gBAAgBE,SAASC,WAE5CC,EAAM,IAMV,GAJIH,EAAII,QAAQ,KAAO,IACrBD,EAAG,KAGDH,EAAII,QAAQ,QAAU,EAAG,CAC3B,IAAMC,EAAI,UAAML,GAAN,OAAYG,EAAZ,QACVd,EAAaS,QAAQC,gBAAgBE,SAASK,QAC5CD,QAGFhB,EAAaS,QAAQC,gBAAgBE,SAASM,WAIpDC,KAAK,QA7BP,UA+BE,SAAC,UAAD,OAEF,SAAC,IAAD,CACE3C,MAAM,UACN,aAAW,eACX+B,UAAU,OACVC,QAAS,WACPY,EAAAA,EAAAA,KAAA,sBACiBrB,EADjB,oBAC4CF,KAG9CsB,KAAK,QATP,UAWE,SAAC,IAAD,cAMV,iBAAKhB,UAAWX,EAAQV,aAAxB,UACGa,IACC,gBAAKQ,UAAWX,EAAQP,OAAxB,UACE,SAAC,IAAD,OAGJ,mBACEoC,IAAKrB,EACLG,UAAWX,EAAQf,YACnB6C,MAAO,UACPC,IAAG,mBAAcxB,EAAd,YAAiCF,EAAjC,UACH2B,OAAQ,SAACC,GACP7B,GAAW,gB,0BC1JnB8B,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,yKACD,aAEJN,EAAQ,EAAUG","sources":["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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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":["withStyles","theme","createStyles","breadcrumLink","textDecoration","color","iframeStyle","border","position","height","width","divContainer","left","top","loader","margin","marginTop","pageHeader","borderBottom","containerForHeader","spacing","classes","match","useState","loading","setLoading","tenantName","params","tenantNamespace","consoleFrame","React","Fragment","className","label","to","actions","component","onClick","current","contentDocument","loc","location","toString","add","indexOf","next","replace","reload","size","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.0fcf4d2d.chunk.js b/portal-ui/build/static/js/5165.0fcf4d2d.chunk.js deleted file mode 100644 index ef29255db..000000000 --- a/portal-ui/build/static/js/5165.0fcf4d2d.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(29439),r=o(1413),i=o(72791),a=o(60364),c=o(36151),s=o(11135),l=o(25787),d=o(61889),u=o(23814),m=o(42649),p=o(81207),f=o(56028),x=o(93656),h=o(92217),Z=o(80184);(0,s.Z)((0,r.Z)((0,r.Z)({},u.ID),u.bK));var v=(0,a.$j)(null,{setModalErrorSnackMessage:m.zb});n.Z=(0,l.Z)((function(e){return(0,s.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,s=e.setModalErrorSnackMessage,l=(0,i.useState)(!0),u=(0,t.Z)(l,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),s(e)}))}),[m,v,s,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){s(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),s=["onClick","text","disabled","tooltip","icon","className"],l=(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=l(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,s);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),s=o(13400),l=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)(s.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)(l.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,o){var t=o(93433),r=o(29439),i=o(1413),a=o(72791),c=o(61889),s=(o(2574),o(69874)),l=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(93656),b=o(40603),C=o(78029),j=o.n(C),k=o(64294),y=o(80184),B={json:d.AV,yaml:function(){return l.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)({},v.YI))}))((function(e){var n=e.value,o=e.label,i=void 0===o?"":o,l=e.tooltip,d=void 0===l?"":l,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,F=(0,a.useState)(!1),P=(0,r.Z)(F,2),L=P[0],w=P[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)(s.ZP,{value:n,theme:L?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:L?"#282c34":"#f7f7f7"},children:(0,y.jsxs)(f.Z,{className:L?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,y.jsx)(b.Z,{tooltip:"Change theme",onClick:function(){w(!L)},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(29439),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],s=a[1];return[c,function(o,t,r){s(!0),i.Z.invoke(o,t,r).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},23508:function(e,n,o){var t=o(1413),r=o(72791),i=o(5574),a=o(65661),c=o(39157),s=o(97123),l=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,F=void 0===E?{}:E,P=e.titleIcon,L=void 0===P?null:P;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:[L," ",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)(s.Z,{className:v.actions,children:[(0,h.jsx)(l.Z,(0,t.Z)((0,t.Z)({className:v.cancelButton,onClick:f||p,disabled:C,type:"button"},F),{},{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(29439),r=o(1413),i=o(72791),a=o(60364),c=o(13400),s=o(55646),l=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)(l.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)(s.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),s=o(25787),l=o(11135),d=o(23814),u=o(80184);n.Z=(0,s.Z)((function(e){return(0,l.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,o=void 0===n?"":n,r=e.classes,s=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,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){s(e.target.value)},variant:"standard",value:p})}))},18303:function(e,n,o){var t=o(29439),r=(o(72791),o(60364)),i=o(51691),a=o(42649),c=o(9505),s=o(23508),l=o(93656),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)(s.Z,{title:"Delete Service Accounts",confirmText:"Delete",isOpen:o,titleIcon:(0,d.jsx)(l.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 });\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","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","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/5289.2cf708de.chunk.js b/portal-ui/build/static/js/5289.2cf708de.chunk.js new file mode 100644 index 000000000..9c45d6f43 --- /dev/null +++ b/portal-ui/build/static/js/5289.2cf708de.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5289],{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})]})})}))},14048:function(e,t,o){var n=o(29439),r=o(1413),i=o(72791),a=o(60364),l=o(36151),c=o(11135),s=o(25787),d=o(61889),u=o(23814),p=o(42649),m=o(81207),f=o(56028),h=o(93656),g=o(92217),b=o(80184);(0,c.Z)((0,r.Z)((0,r.Z)({},u.ID),u.bK));var x=(0,a.$j)(null,{setModalErrorSnackMessage:p.zb});t.Z=(0,s.Z)((function(e){return(0,c.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))}))(x((function(e){var t=e.classes,o=e.open,r=e.selectedAccessKey,a=e.closeModalAndRefresh,c=e.setModalErrorSnackMessage,s=(0,i.useState)(!0),u=(0,n.Z)(s,2),p=u[0],x=u[1],y=(0,i.useState)(""),v=(0,n.Z)(y,2),k=v[0],Z=v[1];(0,i.useEffect)((function(){p&&m.Z.invoke("GET","/api/v1/service-accounts/".concat(r,"/policy")).then((function(e){x(!1),Z(e)})).catch((function(e){x(!1),c(e)}))}),[p,x,c,r]);return(0,b.jsx)(f.Z,{title:"Service Account Policy",modalOpen:o,onClose:function(){a()},titleIcon:(0,b.jsx)(h.QX,{}),children:(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){var t;t=k,e.preventDefault(),m.Z.invoke("PUT","/api/v1/service-accounts/".concat(r,"/policy"),{policy:t}).then((function(e){a()})).catch((function(e){c(e)}))},children:(0,b.jsxs)(d.ZP,{container:!0,children:[(0,b.jsx)(d.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:(0,b.jsx)(g.Z,{label:"Service Account Policy",value:k,onBeforeChange:function(e,t,o){Z(o)},editorHeight:"350px"})}),(0,b.jsxs)(d.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,b.jsx)(l.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){a()},disabled:p,children:"Cancel"}),(0,b.jsx)(l.Z,{type:"submit",variant:"contained",color:"primary",disabled:p,children:"Set"})]})]})})})})))},75578:function(e,t,o){var n=o(1413),r=o(72791),i=o(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function o(o){return(0,i.jsx)(r.Suspense,{fallback:t,children:(0,i.jsx)(e,(0,n.Z)({},o))})}return o}},92217:function(e,t,o){var n=o(93433),r=o(29439),i=o(1413),a=o(72791),l=o(61889),c=(o(2574),o(69874)),s=o(9461),d=o(73975),u=o(80745),p=o(30829),m=o(20068),f=o(64554),h=o(11135),g=o(25787),b=o(84570),x=o(23814),y=o(93656),v=o(40603),k=o(78029),Z=o.n(k),C=o(64294),_=o(80184),j={json:d.AV,yaml:function(){return s.i.define(u.r)}},E=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}),S=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,g.Z)((function(e){return(0,h.Z)((0,i.Z)({},x.YI))}))((function(e){var t=e.value,o=e.label,i=void 0===o?"":o,s=e.tooltip,d=void 0===s?"":s,u=e.mode,h=void 0===u?"json":u,g=e.classes,x=e.onBeforeChange,k=e.readOnly,C=void 0!==k&&k,q=e.editorHeight,w=void 0===q?"250px":q,D=(0,a.useState)(!1),M=(0,r.Z)(D,2),N=M[0],P=M[1],A=[];return j[h]&&(A=[].concat((0,n.Z)(A),[j[h]()])),(0,_.jsxs)(a.Fragment,{children:[(0,_.jsxs)(p.Z,{className:g.inputLabel,children:[(0,_.jsx)("span",{children:i}),""!==d&&(0,_.jsx)("div",{className:g.tooltipContainer,children:(0,_.jsx)(m.Z,{title:d,placement:"top-start",children:(0,_.jsx)("div",{className:g.tooltip,children:(0,_.jsx)(b.Z,{})})})})]}),(0,_.jsx)(l.ZP,{item:!0,xs:12,children:(0,_.jsx)("br",{})}),(0,_.jsxs)(l.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,_.jsx)(l.ZP,{item:!0,xs:12,children:(0,_.jsx)(c.ZP,{value:t,theme:N?S:E,extensions:A,editable:!C,basicSetup:!0,height:w,onChange:function(e,t){x(null,null,e)}})}),(0,_.jsx)(l.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:N?"#282c34":"#f7f7f7"},children:(0,_.jsxs)(f.Z,{className:N?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,_.jsx)(v.Z,{tooltip:"Change theme",onClick:function(){P(!N)},text:"",icon:(0,_.jsx)(y.EO,{}),color:"primary",variant:"outlined"}),(0,_.jsx)(Z(),{text:t,children:(0,_.jsx)(v.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,_.jsx)(y.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},9505:function(e,t,o){var n=o(29439),r=o(72791),i=o(81207);t.Z=function(e,t){var o=(0,r.useState)(!1),a=(0,n.Z)(o,2),l=a[0],c=a[1];return[l,function(o,n,r){c(!0),i.Z.invoke(o,n,r).then((function(t){c(!1),e(t)})).catch((function(e){c(!1),t(e)}))}]}},56028:function(e,t,o){var n=o(29439),r=o(1413),i=o(72791),a=o(60364),l=o(13400),c=o(55646),s=o(5574),d=o(65661),u=o(39157),p=o(11135),m=o(25787),f=o(23814),h=o(42649),g=o(29823),b=o(28057),x=o(80184),y=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});t.Z=(0,m.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))}))(y((function(e){var t=e.onClose,o=e.modalOpen,a=e.title,p=e.children,m=e.classes,f=e.wideLimit,h=void 0===f||f,y=e.modalSnackMessage,v=e.noContentPadding,k=e.setModalSnackMessage,Z=e.titleIcon,C=void 0===Z?null:Z,_=(0,i.useState)(!1),j=(0,n.Z)(_,2),E=j[0],S=j[1];(0,i.useEffect)((function(){k("")}),[k]),(0,i.useEffect)((function(){if(y){if(""===y.message)return void S(!1);"error"!==y.type&&S(!0)}}),[y]);var q=h?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return y&&(w=y.detailedErrorMsg,(""===y.detailedErrorMsg||y.detailedErrorMsg.length<5)&&(w=y.message)),(0,x.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:o,classes:m},q),{},{scroll:"paper",onClose:function(e,o){"backdropClick"!==o&&t()},className:m.root,children:[(0,x.jsxs)(d.Z,{className:m.title,children:[(0,x.jsxs)("div",{className:m.titleText,children:[C," ",a]}),(0,x.jsx)("div",{className:m.closeContainer,children:(0,x.jsx)(l.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,x.jsx)(g.Z,{})})})]}),(0,x.jsx)(b.Z,{isModal:!0}),(0,x.jsx)(c.Z,{open:E,className:m.snackBarModal,onClose:function(){S(!1),k("")},message:w,ContentProps:{className:"".concat(m.snackBar," ").concat(y&&"error"===y.type?m.errorSnackBar:"")},autoHideDuration:y&&"error"===y.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:v?"":m.content,children:p})]}))})))},59114:function(e,t,o){var n=o(4942),r=o(1413),i=(o(72791),o(63466)),a=o(74900),l=o(27391),c=o(25787),s=o(11135),d=o(23814),u=o(80184);t.Z=(0,c.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,o=void 0===t?"":t,r=e.classes,c=e.onChange,s=e.adornmentPosition,d=void 0===s?"end":s,p=e.overrideClass,m=e.value,f=(0,n.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)(l.Z,{placeholder:o,className:p||r.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){c(e.target.value)},variant:"standard",value:m})}))},58493:function(e,t,o){o.d(t,{DD:function(){return x},DP:function(){return b},_0:function(){return y},bx:function(){return g}});var n=o(93433),r=(o(72791),o(87569)),i=o(59314),a=o(61809),l=o(31292),c=o(98095),s=o(67055),d=o(21141),u=o(61248),p=o(50521),m=o(36909),f=o(13901),h=o(80184),g=[{icon:(0,h.jsx)(r.Z,{}),configuration_id:"region",configuration_label:"Region"},{icon:(0,h.jsx)(i.Z,{}),configuration_id:"cache",configuration_label:"Cache"},{icon:(0,h.jsx)(a.Z,{}),configuration_id:"compression",configuration_label:"Compression"},{icon:(0,h.jsx)(l.Z,{}),configuration_id:"api",configuration_label:"API"},{icon:(0,h.jsx)(c.Z,{}),configuration_id:"heal",configuration_label:"Heal"},{icon:(0,h.jsx)(s.Z,{}),configuration_id:"scanner",configuration_label:"Scanner"},{icon:(0,h.jsx)(d.Z,{}),configuration_id:"etcd",configuration_label:"Etcd"},{icon:(0,h.jsx)(u.Z,{}),configuration_id:"identity_openid",configuration_label:"Identity Openid"},{icon:(0,h.jsx)(p.Z,{}),configuration_id:"identity_ldap",configuration_label:"Identity LDAP"},{icon:(0,h.jsx)(f.Z,{}),configuration_id:"logger_webhook",configuration_label:"Logger Webhook"},{icon:(0,h.jsx)(m.Z,{}),configuration_id:"audit_webhook",configuration_label:"Audit Webhook"}],b={region:[{name:"name",required:!0,label:"Server Location",tooltip:'Name of the location of the server e.g. "us-west-rack2"',type:"string",placeholder:"e.g. us-west-rack-2"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],cache:[{name:"drives",required:!0,label:"Drives",tooltip:'Mountpoints e.g. "/optane1" or "/optane2", you can write one per field',type:"csv",placeholder:"Enter Mount Point"},{name:"expiry",required:!1,label:"Expiry",tooltip:'Cache expiry duration in days e.g. "90"',type:"number",placeholder:"Enter Number of Days"},{name:"quota",required:!1,label:"Quota",tooltip:'Limit cache drive usage in percentage e.g. "90"',type:"number",placeholder:"Enter in %"},{name:"exclude",required:!1,label:"Exclude",tooltip:'Wildcard exclusion patterns e.g. "bucket/*.tmp" or "*.exe", you can write one per field',type:"csv",placeholder:"Enter Wildcard Exclusion Patterns"},{name:"after",required:!1,label:"After",tooltip:"Minimum number of access before caching an object",type:"number",placeholder:"Enter Number of Attempts"},{name:"watermark_low",required:!1,label:"Watermark Low",tooltip:"Watermark Low",type:"number",placeholder:"Enter Watermark Low"},{name:"watermark_high",required:!1,label:"Watermark High",tooltip:"Watermark High",type:"number",placeholder:"Enter Watermark High"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],compression:[{name:"extensions",required:!1,label:"Extensions",tooltip:'Extensions to compress e.g. ".txt",".log" or ".csv", you can write one per field',type:"csv",placeholder:"Enter an Extension",withBorder:!0},{name:"mime_types",required:!1,label:"Mime Types",tooltip:'Mime types e.g. "text/*","application/json" or "application/xml", you can write one per field',type:"csv",placeholder:"Enter a Mime Type",withBorder:!0}],api:[{name:"requests_max",required:!1,label:"Requests Max",tooltip:"Maximum number of concurrent requests, e.g. '1600'",type:"number",placeholder:"Enter Requests Max"},{name:"cors_allow_origin",required:!1,label:"Cors Allow Origin",tooltip:"list of origins allowed for CORS requests",type:"csv",placeholder:"Enter allowed origin e.g. https://example.com"},{name:"replication_workers",required:!1,label:"Replication Workers",tooltip:"Number of replication workers, defaults to 100",type:"number",placeholder:"Enter Replication Workers"},{name:"replication_failed_workers",required:!1,label:"Replication Failed Workers",tooltip:"Number of replication workers for recently failed replicas, defaults to 4",type:"number",placeholder:"Enter Replication Failed Workers"}],heal:[{name:"bitrotscan",required:!1,label:"Bitrot Scan",tooltip:"Perform bitrot scan on disks when checking objects during scanner",type:"on|off"},{name:"max_sleep",required:!1,label:"Max Sleep",tooltip:"Maximum sleep duration between objects to slow down heal operation. eg. 2s",type:"duration",placeholder:"Enter Max Sleep duration"},{name:"max_io",required:!1,label:"Max IO",tooltip:"Maximum IO requests allowed between objects to slow down heal operation. eg. 3",type:"number",placeholder:"Enter Max IO"}],scanner:[{name:"delay",required:!1,label:"Delay multiplier",tooltip:"Scanner delay multiplier, defaults to '10.0'",type:"number",placeholder:"Enter Delay"},{name:"max_wait",required:!1,label:"Max Wait",tooltip:"Maximum wait time between operations, defaults to '15s'",type:"duration",placeholder:"Enter Max Wait"},{name:"cycle",required:!1,label:"Cycle",tooltip:"Time duration between scanner cycles, defaults to '1m'",type:"duration",placeholder:"Enter Cycle"}],etcd:[{name:"endpoints",required:!0,label:"Endpoints",tooltip:'List of etcd endpoints e.g. "http://localhost:2379", you can write one per field',type:"csv",placeholder:"Enter Endpoint"},{name:"path_prefix",required:!1,label:"Path Prefix",tooltip:'namespace prefix to isolate tenants e.g. "customer1/"',type:"string",placeholder:"Enter Path Prefix"},{name:"coredns_path",required:!1,label:"Coredns Path",tooltip:'Shared bucket DNS records, default is "/skydns"',type:"string",placeholder:"Enter Coredns Path"},{name:"client_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_cert_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],identity_openid:[{name:"config_url",required:!1,label:"Config URL",tooltip:"Config URL for identity provider configuration",type:"string",placeholder:"https://identity-provider-url/.well-known/openid-configuration"},{name:"client_id",required:!1,label:"Client ID",type:"string",placeholder:"Enter Client ID"},{name:"client_secret",required:!1,label:"Secret ID",type:"string",placeholder:"Enter Secret ID"},{name:"claim_name",required:!1,label:"Claim Name",tooltip:"Claim from which MinIO will read the policy or role to use",type:"string",placeholder:"Enter Claim Name"},{name:"claim_prefix",required:!1,label:"Claim Prefix",tooltip:"Claim Prefix",type:"string",placeholder:"Enter Claim Prefix"},{name:"claim_userinfo",required:!1,label:"Claim UserInfo",type:"on|off"},{name:"redirect_uri",required:!1,label:"Redirect URI",type:"string",placeholder:"https://console-endpoint-url/oauth_callback"},{name:"scopes",required:!1,label:"Scopes",type:"string",placeholder:"openid,profile,email"}],identity_ldap:[{name:"server_addr",required:!0,label:"Server Addr",tooltip:'AD/LDAP server address e.g. "myldapserver.com:636"',type:"string",placeholder:"myldapserver.com:636"},{name:"tls_skip_verify",required:!1,label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "off" (verify)',type:"on|off"},{name:"server_insecure",required:!1,label:"Server Insecure",tooltip:'Allow plain text connection to AD/LDAP server, defaults to "off"',type:"on|off"},{name:"server_starttls",required:!1,label:"Start TLS connection to AD/LDAP server",tooltip:"Use StartTLS connection to AD/LDAP server",type:"on|off"},{name:"lookup_bind_dn",required:!0,label:"Lookup Bind DN",tooltip:"DN for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"cn=admin,dc=min,dc=io"},{name:"lookup_bind_password",required:!1,label:"Lookup Bind Password",tooltip:"Password for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"admin"},{name:"user_dn_search_base_dn",required:!1,label:"User DN Search Base DN",tooltip:"Base LDAP DN to search for user DN",type:"csv",placeholder:"dc=myldapserver"},{name:"user_dn_search_filter",required:!1,label:"User DN Search Filter",tooltip:"Search filter to lookup user DN",type:"string",placeholder:"(sAMAcountName=%s)"},{name:"group_search_filter",required:!1,label:"Group Search Filter",tooltip:"Search filter for groups",type:"string",placeholder:"(&(objectclass=groupOfNames)(member=%d))"},{name:"group_search_base_dn",required:!1,label:"Group Search Base DN",tooltip:"list of group search base DNs",type:"csv",placeholder:"dc=minioad,dc=local"},{name:"comment",required:!1,label:"Comment",tooltip:"Optionally add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],logger_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}]},x=function(e){return e.filter((function(e){return""!==e.value}))},y=function(e,t,o){var r=e.target,i=r.value,a=r.checked,l=(0,n.Z)(o);return a?l.push(i):l=l.filter((function(e){return e!==i})),t(l),l}},18303:function(e,t,o){var n=o(29439),r=(o(72791),o(60364)),i=o(51691),a=o(42649),l=o(9505),c=o(2148),s=o(93656),d=o(80184),u={setErrorSnackMessage:a.Ih},p=(0,r.$j)(null,u);t.Z=p((function(e){var t=e.closeDeleteModalAndRefresh,o=e.deleteOpen,r=e.selectedSAs,a=e.setErrorSnackMessage,u=(0,l.Z)((function(){return t(!0)}),(function(e){return a(e)})),p=(0,n.Z)(u,2),m=p[0],f=p[1];if(!r)return null;return(0,d.jsx)(c.Z,{title:"Delete Service Accounts",confirmText:"Delete",isOpen:o,titleIcon:(0,d.jsx)(s.Nv,{}),isLoading:m,onConfirm:function(){f("DELETE","/api/v1/service-accounts/delete-multi",r)},onClose:function(){return t(!1)},confirmationContent:(0,d.jsxs)(i.Z,{children:["Are you sure you want to delete the selected ",r.length," ","service accounts?"," "]})})}))},21639:function(e,t,o){o.d(t,{LQ:function(){return n},V2:function(){return i},g4:function(){return r}});var n=function(e,t){return e.accessKey>t.accessKey?1:e.accessKeyt.name?1:e.namet?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, { 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 });\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 PublicIcon from \"@mui/icons-material/Public\";\nimport SdStorageIcon from \"@mui/icons-material/SdStorage\";\nimport CompressIcon from \"@mui/icons-material/Compress\";\nimport CodeIcon from \"@mui/icons-material/Code\";\nimport LocalHospitalIcon from \"@mui/icons-material/LocalHospital\";\nimport FindReplaceIcon from \"@mui/icons-material/FindReplace\";\nimport VpnKeyIcon from \"@mui/icons-material/VpnKey\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nimport LoginIcon from \"@mui/icons-material/Login\";\nimport PendingActionsIcon from \"@mui/icons-material/PendingActions\";\nimport CallToActionIcon from \"@mui/icons-material/CallToAction\";\nimport { IElement, IElementValue } from \"./types\";\n\nexport const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"region\",\n configuration_label: \"Region\",\n },\n {\n icon: ,\n configuration_id: \"cache\",\n configuration_label: \"Cache\",\n },\n {\n icon: ,\n configuration_id: \"compression\",\n configuration_label: \"Compression\",\n },\n {\n icon: ,\n configuration_id: \"api\",\n configuration_label: \"API\",\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n },\n {\n icon: ,\n configuration_id: \"scanner\",\n configuration_label: \"Scanner\",\n },\n {\n icon: ,\n configuration_id: \"etcd\",\n configuration_label: \"Etcd\",\n },\n {\n icon: ,\n configuration_id: \"identity_openid\",\n configuration_label: \"Identity Openid\",\n },\n {\n icon: ,\n configuration_id: \"identity_ldap\",\n configuration_label: \"Identity LDAP\",\n },\n {\n icon: ,\n configuration_id: \"logger_webhook\",\n configuration_label: \"Logger Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_webhook\",\n configuration_label: \"Audit Webhook\",\n },\n];\n\nexport const fieldsConfigurations: any = {\n region: [\n {\n name: \"name\",\n required: true,\n label: \"Server Location\",\n tooltip: 'Name of the location of the server e.g. \"us-west-rack2\"',\n type: \"string\",\n placeholder: \"e.g. us-west-rack-2\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n cache: [\n {\n name: \"drives\",\n required: true,\n label: \"Drives\",\n tooltip:\n 'Mountpoints e.g. \"/optane1\" or \"/optane2\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Mount Point\",\n },\n {\n name: \"expiry\",\n required: false,\n label: \"Expiry\",\n tooltip: 'Cache expiry duration in days e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter Number of Days\",\n },\n {\n name: \"quota\",\n required: false,\n label: \"Quota\",\n tooltip: 'Limit cache drive usage in percentage e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter in %\",\n },\n {\n name: \"exclude\",\n required: false,\n label: \"Exclude\",\n tooltip:\n 'Wildcard exclusion patterns e.g. \"bucket/*.tmp\" or \"*.exe\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Wildcard Exclusion Patterns\",\n },\n {\n name: \"after\",\n required: false,\n label: \"After\",\n tooltip: \"Minimum number of access before caching an object\",\n type: \"number\",\n placeholder: \"Enter Number of Attempts\",\n },\n {\n name: \"watermark_low\",\n required: false,\n label: \"Watermark Low\",\n tooltip: \"Watermark Low\",\n type: \"number\",\n placeholder: \"Enter Watermark Low\",\n },\n {\n name: \"watermark_high\",\n required: false,\n label: \"Watermark High\",\n tooltip: \"Watermark High\",\n type: \"number\",\n placeholder: \"Enter Watermark High\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n compression: [\n {\n name: \"extensions\",\n required: false,\n label: \"Extensions\",\n tooltip:\n 'Extensions to compress e.g. \".txt\",\".log\" or \".csv\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter an Extension\",\n withBorder: true,\n },\n {\n name: \"mime_types\",\n required: false,\n label: \"Mime Types\",\n tooltip:\n 'Mime types e.g. \"text/*\",\"application/json\" or \"application/xml\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter a Mime Type\",\n withBorder: true,\n },\n ],\n api: [\n {\n name: \"requests_max\",\n required: false,\n label: \"Requests Max\",\n tooltip: \"Maximum number of concurrent requests, e.g. '1600'\",\n type: \"number\",\n placeholder: \"Enter Requests Max\",\n },\n {\n name: \"cors_allow_origin\",\n required: false,\n label: \"Cors Allow Origin\",\n tooltip: \"list of origins allowed for CORS requests\",\n type: \"csv\",\n placeholder: \"Enter allowed origin e.g. https://example.com\",\n },\n {\n name: \"replication_workers\",\n required: false,\n label: \"Replication Workers\",\n tooltip: \"Number of replication workers, defaults to 100\",\n type: \"number\",\n placeholder: \"Enter Replication Workers\",\n },\n {\n name: \"replication_failed_workers\",\n required: false,\n label: \"Replication Failed Workers\",\n tooltip:\n \"Number of replication workers for recently failed replicas, defaults to 4\",\n type: \"number\",\n placeholder: \"Enter Replication Failed Workers\",\n },\n ],\n heal: [\n {\n name: \"bitrotscan\",\n required: false,\n label: \"Bitrot Scan\",\n tooltip:\n \"Perform bitrot scan on disks when checking objects during scanner\",\n type: \"on|off\",\n },\n {\n name: \"max_sleep\",\n required: false,\n label: \"Max Sleep\",\n tooltip:\n \"Maximum sleep duration between objects to slow down heal operation. eg. 2s\",\n type: \"duration\",\n placeholder: \"Enter Max Sleep duration\",\n },\n {\n name: \"max_io\",\n required: false,\n label: \"Max IO\",\n tooltip:\n \"Maximum IO requests allowed between objects to slow down heal operation. eg. 3\",\n type: \"number\",\n placeholder: \"Enter Max IO\",\n },\n ],\n scanner: [\n {\n name: \"delay\",\n required: false,\n label: \"Delay multiplier\",\n tooltip: \"Scanner delay multiplier, defaults to '10.0'\",\n type: \"number\",\n placeholder: \"Enter Delay\",\n },\n {\n name: \"max_wait\",\n required: false,\n label: \"Max Wait\",\n tooltip: \"Maximum wait time between operations, defaults to '15s'\",\n type: \"duration\",\n placeholder: \"Enter Max Wait\",\n },\n {\n name: \"cycle\",\n required: false,\n label: \"Cycle\",\n tooltip: \"Time duration between scanner cycles, defaults to '1m'\",\n type: \"duration\",\n placeholder: \"Enter Cycle\",\n },\n ],\n etcd: [\n {\n name: \"endpoints\",\n required: true,\n label: \"Endpoints\",\n tooltip:\n 'List of etcd endpoints e.g. \"http://localhost:2379\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"path_prefix\",\n required: false,\n label: \"Path Prefix\",\n tooltip: 'namespace prefix to isolate tenants e.g. \"customer1/\"',\n type: \"string\",\n placeholder: \"Enter Path Prefix\",\n },\n {\n name: \"coredns_path\",\n required: false,\n label: \"Coredns Path\",\n tooltip: 'Shared bucket DNS records, default is \"/skydns\"',\n type: \"string\",\n placeholder: \"Enter Coredns Path\",\n },\n {\n name: \"client_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_cert_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n identity_openid: [\n {\n name: \"config_url\",\n required: false,\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n type: \"string\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n },\n {\n name: \"client_id\",\n required: false,\n label: \"Client ID\",\n type: \"string\",\n placeholder: \"Enter Client ID\",\n },\n {\n name: \"client_secret\",\n required: false,\n label: \"Secret ID\",\n type: \"string\",\n placeholder: \"Enter Secret ID\",\n },\n {\n name: \"claim_name\",\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n type: \"string\",\n placeholder: \"Enter Claim Name\",\n },\n {\n name: \"claim_prefix\",\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"Claim Prefix\",\n type: \"string\",\n placeholder: \"Enter Claim Prefix\",\n },\n {\n name: \"claim_userinfo\",\n required: false,\n label: \"Claim UserInfo\",\n type: \"on|off\",\n },\n {\n name: \"redirect_uri\",\n required: false,\n label: \"Redirect URI\",\n type: \"string\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n },\n {\n name: \"scopes\",\n required: false,\n label: \"Scopes\",\n type: \"string\",\n placeholder: \"openid,profile,email\",\n },\n ],\n identity_ldap: [\n {\n name: \"server_addr\",\n required: true,\n label: \"Server Addr\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n type: \"string\",\n placeholder: \"myldapserver.com:636\",\n },\n {\n name: \"tls_skip_verify\",\n required: false,\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"off\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"server_insecure\",\n required: false,\n label: \"Server Insecure\",\n tooltip:\n 'Allow plain text connection to AD/LDAP server, defaults to \"off\"',\n type: \"on|off\",\n },\n {\n name: \"server_starttls\",\n required: false,\n label: \"Start TLS connection to AD/LDAP server\",\n tooltip: \"Use StartTLS connection to AD/LDAP server\",\n type: \"on|off\",\n },\n {\n name: \"lookup_bind_dn\",\n required: true,\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n },\n {\n name: \"lookup_bind_password\",\n required: false,\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"admin\",\n },\n {\n name: \"user_dn_search_base_dn\",\n required: false,\n label: \"User DN Search Base DN\",\n tooltip: \"Base LDAP DN to search for user DN\",\n type: \"csv\",\n placeholder: \"dc=myldapserver\",\n },\n {\n name: \"user_dn_search_filter\",\n required: false,\n label: \"User DN Search Filter\",\n tooltip: \"Search filter to lookup user DN\",\n type: \"string\",\n placeholder: \"(sAMAcountName=%s)\",\n },\n {\n name: \"group_search_filter\",\n required: false,\n label: \"Group Search Filter\",\n tooltip: \"Search filter for groups\",\n type: \"string\",\n placeholder: \"(&(objectclass=groupOfNames)(member=%d))\",\n },\n {\n name: \"group_search_base_dn\",\n required: false,\n label: \"Group Search Base DN\",\n tooltip: \"list of group search base DNs\",\n type: \"csv\",\n placeholder: \"dc=minioad,dc=local\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"Optionally add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n logger_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n};\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const selectSAs = (\n e: React.ChangeEvent,\n setSelectedSAs: Function,\n selectedSAs: string[]\n) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedSAs]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedSAs(elements);\n return elements;\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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"],"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","modalStyleUtils","spacingUtils","connector","connect","setModalErrorSnackMessage","codeMirrorContainer","formFieldStyles","open","selectedAccessKey","closeModalAndRefresh","useState","loading","setLoading","policyDefinition","setPolicyDefinition","useEffect","api","then","res","catch","err","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","newPolicy","preventDefault","policy","label","value","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","color","onClick","disabled","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","dark","darkTheme","fieldBasic","tooltip","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","tooltipContainer","placement","sx","extensions","editable","basicSetup","onChange","v","vu","borderTop","background","padding","justifyContent","marginLeft","text","icon","onSuccess","onError","isLoading","setIsLoading","method","url","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","titleText","closeContainer","id","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","InputProps","target","configurationElements","configuration_id","configuration_label","fieldsConfigurations","region","name","required","cache","multiline","compression","withBorder","heal","scanner","etcd","identity_openid","identity_ldap","logger_webhook","audit_webhook","removeEmptyFields","formFields","filter","field","selectSAs","setSelectedSAs","selectedSAs","targetD","checked","elements","push","element","mapDispatchToProps","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","useApi","deleteLoading","invokeDeleteApi","confirmText","isOpen","onConfirm","confirmationContent","usersSort","a","b","accessKey","policySort","stringSort"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5315.f76aa5f9.chunk.js.map b/portal-ui/build/static/js/5315.f76aa5f9.chunk.js.map deleted file mode 100644 index 6551e71b0..000000000 --- a/portal-ui/build/static/js/5315.f76aa5f9.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5315.f76aa5f9.chunk.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/css-unit-converter/index.js","../node_modules/d3-path/src/path.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/constant.js","../node_modules/decimal.js-light/decimal.js","../node_modules/eventemitter3/index.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isString.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/range.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.js","../node_modules/performance-now/src/performance-now.coffee","../node_modules/raf/index.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/react-smooth/node_modules/dom-helpers/class/addClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/hasClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/removeClass.js","../node_modules/react-smooth/node_modules/react-transition-group/CSSTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/Transition.js","../node_modules/react-smooth/node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-smooth/node_modules/react-transition-group/index.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/PropTypes.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/recharts/node_modules/react-is/index.js","../node_modules/reduce-css-calc/dist/index.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/index.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/parse.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/stringify.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/walk.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\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","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled 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 throttled 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
    I appear first
    \n *
    I replace the above
    \n *
    \n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\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\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\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 // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\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":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","conversions","Math","PI","value","sourceUnit","targetUnit","precision","Error","converted","pow","parseInt","round","pi","tau","epsilon","tauEpsilon","Path","this","_x0","_y0","_x1","_y1","_","path","constructor","moveTo","x","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","start","stop","step","n","max","ceil","range","band","bandwidth","scale","ordinal","unknown","undefined","domain","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","reverse","floor","values","sequence","map","rangeRound","padding","min","copy","initRange","pointish","point","initInterpolator","interpolator","implicit","Symbol","index","Map","d","get","set","slice","has","from","globalScope","ONE","MAX_DIGITS","Decimal","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","add","carry","e","k","len","xd","yd","Ctor","pr","s","unshift","pop","checkInt32","digitsToString","ws","indexOfLastWord","str","getZeroString","absoluteValue","comparedTo","cmp","j","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","base","wpr","ln","minus","sub","subtract","modulo","mod","q","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","t","toExponential","indexOf","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","val","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c","c0","numerator","charAt","parseDecimal","replace","search","substring","charCodeAt","rd","doRound","xdi","xe","xLTy","isExp","arr","config","obj","p","v","ps","clone","test","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","getOwnPropertySymbols","concat","listeners","handlers","ee","listenerCount","emit","a2","a3","a4","a5","args","removeListener","on","removeAllListeners","off","prefixed","func","thisArg","array","predicate","baseIndexOf","require","comparator","string","split","baseEach","collection","result","isSymbol","iteratee","current","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","other","baseFindIndex","baseIsNaN","strictIndexOf","isArrayLike","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","iteratees","orders","object","nativeCeil","nativeMax","end","overRest","setToString","constant","defineProperty","baseSetToString","comparer","sort","trimmedEndIndex","reTrimStart","SetCache","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","includes","isCommon","seen","outer","seenIndex","baseSlice","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","keys","findIndexFunc","iterable","baseRange","isIterateeCall","toFinite","Set","noop","reHasUnicode","RegExp","isArguments","spreadableSymbol","isConcatSpreadable","isIndex","isObject","type","transform","otherArgs","shortOut","nativeNow","Date","now","count","lastCalled","stamp","remaining","asciiToArray","unicodeToArray","reWhitespace","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","match","nativeMin","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","arrayEvery","baseEvery","guard","find","createFind","baseGetTag","isObjectLike","isNumber","baseAssignValue","baseForOwn","baseExtremum","baseGt","baseLt","root","createRange","arraySome","baseSome","baseOrderBy","baseRest","sortBy","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseUniq","upperFirst","createCaseFirst","performance","process","hrtime","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","uptime","loadTime","getTime","window","global","vendors","suffix","raf","caf","last","id","queue","callback","_now","next","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","setRafTimeout","timeout","currTime","shouldUpdate","_typeof","iterator","_toArray","_arrayWithHoles","iter","_iterableToArray","o","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","createAnimateManager","handleChange","shouldStop","setStyle","_style","_styles","curr","restStyles","bind","style","subscribe","_handleChange","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","param","mapObject","reduce","res","translateStyle","isTransition","camelName","toUpperCase","styleVal","property","generatePrefixStyle","getTransitionVal","props","duration","easing","prop","toLowerCase","_slicedToArray","_arr","_n","_d","_e","_s","_i","done","err","_iterableToArrayLimit","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_len","_key","_easing$1$split$0$spl","parseFloat","_easing$1$split$0$spl2","every","num","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","alpha","begin","needContinue","_ref","to","calStepperVals","preVals","steps","nextStepVals","_easing2","velocity","render","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","update","currStyle","finalStyle","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_defineProperties","descriptor","_setPrototypeOf","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","Animate","_PureComponent","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_this$props","isActive","attributeName","children","handleStyleChange","changeStyle","state","_this$props2","canBegin","mounted","runAnimation","prevProps","_this$props3","shouldReAnimate","deepEqual","isTriggered","manager","stopJSAnimation","_newState","setState","newState","unSubscribe","_this2","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","_len2","_key2","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","others","onAnimationReStart","Children","stateStyle","cloneContainer","container","_container$props","_container$props$styl","className","cloneElement","React","child","PureComponent","displayName","propTypes","PropTypes","defaultProps","_extends","assign","Number","isFinite","parseDurationOfSingleTransition","entry","AnimateGroupChild","_Component","handleEnter","node","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","Component","AnimateGroup","component","appear","enter","leave","TransitionGroup","_interopRequireDefault","__esModule","element","classList","_hasClass","setAttribute","baseVal","contains","replaceClassName","origClass","classToRemove","remove","newObj","desc","_interopRequireWildcard","_addClass","_removeClass","_react","_Transition","addClass","removeClass","CSSTransition","_React$Component","appearing","getClassNames","removeClasses","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExiting","onExited","isStringClassNames","_proto","_this$getClassNames6","scrollTop","createElement","_default","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","idx","originalArgs","_child$props","toArray","findDOMNode","inProp","in","_React$Children$toArr","first","second","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","getChildContext","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","timeouts","enterTimeout","safeSetState","onTransitionEnd","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","childProps","only","contextTypes","childContextTypes","_propTypes","_ChildMapping","firstRender","appeared","nextProps","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","isRequired","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","classNamesShape","timeoutsShape","Cross","width","height","top","left","filterProps","getPath","CartesianAxis","tick","ticks","viewBox","minTickGap","orientation","interval","tickFormatter","unit","Global","getNumberIntervalTicks","getTicksStart","getTicksEnd","_ref2","preserveEnd","sizeKey","unitSize","getStringSize","mathSign","coordinate","tail","tailContent","_isFunction","tailSize","tailGap","tickCoord","isShow","content","size","gap","_ref3","option","Text","restProps","viewBoxOld","restPropsOld","shallowEqual","data","tx","ty","tickSize","mirror","tickMargin","finalTickSize","line","textAnchor","verticalAnchor","_this$props5","axisLine","fill","needHeight","needWidth","_get","_this$props6","tickLine","stroke","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","items","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","payload","visibleTicksCount","Layer","adaptEventsOfChild","renderTickItem","_this$props7","ticksGenerator","hide","_this$props8","noTicksProps","renderAxisLine","renderTicks","Label","isTouch","changedTouches","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","pageX","attachDragEndListener","startX","handleTravellerDragStart","endX","lineY","renderDefaultTraveller","travellerWidth","updateId","startIndex","endIndex","prevData","prevUpdateId","prevTravellerWidth","prevX","prevWidth","scalePoint","_range","scaleValues","createScale","middle","lastIndex","minIndex","getIndexInRange","maxIndex","dataKey","text","getValueByDataKey","addEventListener","removeEventListener","_this$state","onChange","delta","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","_this$state2","prevValue","isFullGap","chartElement","margin","compact","travellerX","traveller","travellerProps","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","cursor","renderTraveller","fillOpacity","_this$props9","_this$state3","attrs","pointerEvents","getTextOfTick","_this$props10","alwaysShowText","_this$state4","layerClass","isPanoramic","onMouseMove","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","right","bottom","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","clipPathId","isX","isNumOrStr","isY","warn","xAxis","yAxis","scales","createLabeledScales","bandAware","isInRange","getCoordinate","cx","cy","shape","dotProps","clipPath","renderDot","isFront","xAxisId","yAxisId","strokeWidth","Dot","ReferenceLine","fixedX","fixedY","segment","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","position","yCoord","coord","points","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","rectWithPoints","getRect","renderRect","Rectangle","detectReferenceElementsDomain","axisId","axisType","specifiedTicks","lines","findAllByType","dots","elements","areas","idKey","valueKey","finalDomain","el","key1","key2","value1","value2","eventCenter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","isFinit","defer","setImmediate","deferClear","clearImmediate","getDisplayedData","item","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","allowDuplicatedCategory","entries","findEntryInArray","getTooltipItem","getTooltipData","layout","rangeObj","rangeData","chartX","chartY","pos","angle","radius","calculateTooltipPos","orderedTooltipTicks","axis","tooltipTicks","calculateActiveTickIndex","activePayload","activeCoordinate","_angle","_radius","polarToCartesian","getActiveCoordinate","activeTooltipIndex","getAxisMap","_ref4","_ref4$axisType","AxisComp","stackGroups","axisIdKey","axes","axisMap","stackOffset","isCategorical","isCategoricalAxis","allowDataOverflow","duplicateDomain","categoricalDomain","getDomainOfDataByKey","duplicate","hasDuplicate","parseDomainOfCategoryAxis","_isNil","errorBarsDomain","parseErrorBarsOfAxis","hasStack","getDomainOfStackGroups","getDomainOfItemsWithSameAxis","parseSpecifiedDomain","axisDomain","originalDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","findChildByType","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","_ref6","_class","_temp","chartName","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","legendContent","formatAxisMap","getFormatItems","currentState","offset","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","some","getDisplayName","hasGraphicalBarItem","sizeList","getBarSizeList","formattedItems","_item$props","childMaxBarSize","numericAxisId","cateAxisId","axisObj","_objectSpread6","getTicksOfAxis","cateAxis","cateTicks","stackedData","getStackedDataOfItem","itemIsBar","bandSize","getBandSizeOfAxis","barPosition","_ref7","_getBandSizeOfAxis","barBandSize","getBarPosition","_objectSpread7","composedFn","getComposedData","childIndex","parseChildIndex","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","validateWidthHeight","reverseStackOrder","_getAxisNameByLayout2","getStackGroupsByAxisId","_ref5","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","appendOffsetOfLegend","calculateOffset","legendBBox","ticksObj","getAnyElementOfObject","_sortBy","tooltipAxisBandSize","tooltipTicksGenerator","formattedGraphicalItems","CategoricalChartWrapper","_props","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","box","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","eventName","getReactEventByType","handleClick","onClick","_nextState2","handleMouseDown","handleMouseUp","onMouseUp","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","_ref10","getCoordinatesOfGrid","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","Curve","getCursorRectangle","_this$getCursorPoints","getCursorPoints","startAngle","endAngle","innerRadius","outerRadius","Sector","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","_find","_every","chartWidth","chartHeight","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","_isArray","renderLegend","legendWidth","getLegendProps","otherProps","ref","legend","onBBoxUpdate","renderTooltip","tooltipItem","Tooltip","_this$state5","label","renderBrush","_this$state6","combineEventHandlers","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","getMainColorOfGraphicItem","adaptEventHandlers","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$props2","baseLine","_item$item$props2","hasActive","itemEvents","trigger","onCLick","graphicalItem","specifiedKey","renderCustomized","uniqueId","throttleDelay","_throttle","_isBoolean","shared","eventType","containerOffset","getOffset","calculateChartCoordinate","inRange","_this$state9","xScale","yScale","xValue","invert","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","inRangeOfSector","tooltipEvents","onTouchEnd","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","isInRectangle","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","Surface","renderClipPath","renderByOrder","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","isChildrenEqual","newUpdateId","dot","renderRadialLabel","labelProps","labelAngle","direction","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","_props$className","textBreakAll","formatter","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_x","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","_isObject","isPercent","getPercentValue","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","valueAccessor","_last","LabelList","idProps","parseLabelList","ckeckPropsLabel","explicitChilren","implicitLabelList","atan2","draw","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","sizeType","symbolFactory","_upperFirst","getSymbolFactory","symbol","buffer","circle","shapeSymbol","calculateAreaSize","registerSymbol","factory","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","color","inactive","strokeDasharray","legendIcon","iconProps","iconSize","itemStyle","display","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","renderIcon","textAlign","renderItems","defaultUniqBy","getUniqPayload","_uniqBy","wrapperNode","boxWidth","boxHeight","updateBBox","getBoundingClientRect","hPos","vPos","getBBoxSnapshot","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","renderContent","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","lineWidth","shouldLimitLines","maxLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","lineHeight","capHeight","textProps","startDy","reduceCSSCalc","transforms","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","restricted","unrestricted","translateX","translateY","isAnimationActive","animationDuration","animationEasing","filterNull","finalPayload","hasPayload","visibility","useTranslate3d","cls","cursorStyle","svgView","version","that","_context","Basis","BasisClosed","BasisOpen","LinearClosed","Linear","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","m","Step","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","_t0","_y","px","py","i0","i1","defined","curve","curveLinear","output","defined0","pointX","pointY","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","lineFunction","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","minX","maxX","minY","maxY","totalLength","getTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","reversed","offsetKey","diff","smallestDistanceBetweenValues","Infinity","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","parseScale","realScaleType","checkDomainOfScale","getTicksOfScale","finalAxis","ScaleHelper","_offset","_offset2","EPS","_mapValues","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","compose","fns","firstFn","tailsFn","memoize","lastResult","rangeStep","getDigitCount","interpolateNumber","newA","uninterpolateNumber","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_getValidInterval3","_getValidInterval4","_getValidInterval5","_getValidInterval6","e10","e5","e2","tickIncrement","power","error","tickStep","step0","step1","f","lo","hi","mid","ascending","ascendingComparator","numbers","valueof","ascendingBisect","bisector","bisectRight","number","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","trim","exec","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","Hsl","hslConvert","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t2","t3","channels","displayable","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","zero","date","ArrayBuffer","isView","DataView","numberArray","normalize","bimap","interpolate","d0","d1","polymap","bisect","clamp","transformer","untransform","piecewise","input","interpolateValue","clamper","interpolateRound","u","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","coefficient","toLocaleString","formatRounded","locale","formatPrefix","prefixes","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","E","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","formatLocale","transformPow","transformSqrt","transformSquare","powish","square","unsquare","radial","squared","quickselect","newLeft","newRight","swap","quantile","Float64Array","value0","subarray","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","field","previous","millisecond","getMilliseconds","getUTCSeconds","minute","getSeconds","getMinutes","hour","getHours","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","month","setMonth","getMonth","getFullYear","year","setFullYear","utcMinute","setUTCSeconds","getUTCMinutes","utcHour","setUTCMinutes","getUTCHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","ticker","week","tickIntervals","tickInterval","utcWeek","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","I","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","order","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","parse","X","utcParse","defaultLocale","stackValue","stackSeries","defaultValue","filterNil","flattenData","_flatMap","_min","_max","_ticks$length","unsortedTicks","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","legendData","sectors","iconType","legendType","globalSize","_ref5$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","_ref6$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","legendBox","legendProps","newOffset","getDomainOfErrorBars","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","domains","tag","hasMin","hasMax","isGrid","isAll","niceTicks","scaleContent","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","chartType","d3Scales","_isString","findPositionOfBar","truncateByDomain","STACK_OFFSET_MAP","positive","negative","_isNaN","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","stack","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","_items","_item$props3","stackId","childGroup","opts","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","itemIndex","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","_value","isBar","bandWidth","orderedTicks","calculatedDomain","axisChild","_isEqual","_graphicalItem$props","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","styleString","cacheKey","measurementSpan","document","getElementById","body","appendChild","measurementSpanStyle","styleKey","textContent","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","pageY","_isNumber","idCounter","totalValue","validate","ary","cache","numberA","numberB","specifiedValue","isSsr","condition","radianToDegree","angleInRadian","getMaxRadius","_range2","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngleOfSector","formatAngle","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","isFragment","types","childType","_el$props","SVG_TAGS","isSvgElement","nextChildren","isSingleChildEqual","nextChild","renderMap","record","results","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","isSvg","inputProps","newHandler","originalHandler","getEventHandlerOfChild","for","$$typeof","A","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","contents","stringify","nodes","ast","parser","reducedAst","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","flip","_convert","_convert2","operator","isEqual","convertMathExpression","_node","op","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","calc","_reducer","prec","fallback","JisonParserError","msg","hash","stacktrace","exception","ex2","message","captureStackTrace","rv","trace","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","check","state_descriptions_","table","productions_","rule","bp","performAction","yystate","yysp","yyvstack","lexer","$","mode","goto","bt","defaultActions","bda","parseError","ExceptionClass","recoverable","destroy","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","token","assert","yyGetSharedState","dst","src","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","ex","expected","pei","errStr","yytext","token_id","yylineno","action","new_state","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","retval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","matched","matches","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","loc","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","clear","col","last_column","first_line","first_column","last_line","rules","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","ch","slice_len","ch2","unput","substr","pre_lines","more","reject","backtrack_lexer","less","pastInput","maxSize","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","actual","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","splice","describeYYLLOC","display_range_too","l2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","flex","pendingInput","activeCondition","conditionStackDepth","pushState","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","Parser","ValueParser","cb","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","colon","star","quote","escape","escapePos","whitespacePos","tokens","code","balanced","sourceIndex","unclosed","stringifyNode","custom","buf","customResult","EXP","dotted","sciPos","containsNumber"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5317.c7a235b3.chunk.js b/portal-ui/build/static/js/5317.c7a235b3.chunk.js deleted file mode 100644 index 27a5a97d5..000000000 --- a/portal-ui/build/static/js/5317.c7a235b3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5317],{26759:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},29823:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(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=a},97911:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},82422:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),c=n(28182),l=function(e){var t=a.useRef({});return a.useEffect((function(){t.current=e})),t.current},u=n(30208),s=n(95159);function f(e){return(0,s.Z)("MuiBadge",e)}var p=(0,u.Z)("MuiBadge",["root","badge","dot","standard","anchorOriginTopLeft","anchorOriginTopRight","anchorOriginBottomLeft","anchorOriginBottomRight","invisible"]),d=n(27312),v=n(90767),g=n(90183);var m=n(80184),b=["anchorOrigin","classes","badgeContent","component","children","className","components","componentsProps","invisible","max","showZero","variant"],h=a.forwardRef((function(e,t){var n=e.anchorOrigin,r=void 0===n?{vertical:"top",horizontal:"right"}:n,a=e.classes,u=e.component,s=e.children,p=e.className,h=e.components,y=void 0===h?{}:h,O=e.componentsProps,w=void 0===O?{}:O,x=e.max,D=void 0===x?99:x,j=e.showZero,C=void 0!==j&&j,Z=e.variant,P=void 0===Z?"standard":Z,k=(0,o.Z)(e,b),S=function(e){var t=e.anchorOrigin,n=void 0===t?{vertical:"top",horizontal:"right"}:t,r=e.badgeContent,o=e.invisible,i=void 0!==o&&o,a=e.max,c=void 0===a?99:a,u=e.showZero,s=void 0!==u&&u,f=e.variant,p=void 0===f?"standard":f,d=l({anchorOrigin:n,badgeContent:r,max:c,variant:p}),v=i;!1===i&&(0===r&&!s||null==r&&"dot"!==p)&&(v=!0);var g=v?d:e,m=g.anchorOrigin,b=void 0===m?n:m,h=g.badgeContent,y=g.max,O=void 0===y?c:y,w=g.variant,x=void 0===w?p:w,D="";return"dot"!==x&&(D=h&&Number(h)>O?"".concat(O,"+"):h),{anchorOrigin:b,badgeContent:h,invisible:v,max:O,variant:x,displayValue:D}}((0,i.Z)({},e,{anchorOrigin:r,max:D,variant:P})),z=S.anchorOrigin,A=S.badgeContent,F=S.max,E=S.variant,R=S.displayValue,T=S.invisible,I=(0,i.Z)({},e,{anchorOrigin:z,badgeContent:A,classes:a,invisible:T,max:F,variant:E,showZero:C}),B=function(e){var t=e.variant,n=e.anchorOrigin,r=e.invisible,o=e.classes,i={root:["root"],badge:["badge",t,"anchorOrigin".concat((0,d.Z)(n.vertical)).concat((0,d.Z)(n.horizontal)),r&&"invisible"]};return(0,v.Z)(i,f,o)}(I),M=u||y.Root||"span",L=(0,g.Z)(M,(0,i.Z)({},k,w.root),I),_=y.Badge||"span",N=(0,g.Z)(_,w.badge,I);return(0,m.jsxs)(M,(0,i.Z)({},L,{ref:t},k,{className:(0,c.Z)(B.root,L.className,p),children:[s,(0,m.jsx)(_,(0,i.Z)({},N,{className:(0,c.Z)(B.badge,N.className),children:R}))]}))})),y=h,O=n(47630),w=n(93736),x=n(20627),D=function(e){return!e||!(0,x.Z)(e)},j=n(14036),C=["anchorOrigin","component","components","componentsProps","overlap","color","invisible","badgeContent","showZero","variant"],Z=(0,i.Z)({},p,(0,u.Z)("MuiBadge",["colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"])),P=(0,O.ZP)("span",{name:"MuiBadge",slot:"Root",overridesResolver:function(e,t){return t.root}})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),k=(0,O.ZP)("span",{name:"MuiBadge",slot:"Badge",overridesResolver:function(e,t){var n=e.ownerState;return[t.badge,t[n.variant],t["anchorOrigin".concat((0,j.Z)(n.anchorOrigin.vertical)).concat((0,j.Z)(n.anchorOrigin.horizontal)).concat((0,j.Z)(n.overlap))],"default"!==n.color&&t["color".concat((0,j.Z)(n.color))],n.invisible&&t.invisible]}})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:20,lineHeight:1,padding:"0 6px",height:20,borderRadius:10,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen})},"default"!==n.color&&{backgroundColor:t.palette[n.color].main,color:t.palette[n.color].contrastText},"dot"===n.variant&&{borderRadius:4,height:8,minWidth:8,padding:0},"top"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"rectangular"===n.overlap&&(0,r.Z)({bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"right"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(50%, 50%)"}),"top"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, -50%)"}),"bottom"===n.anchorOrigin.vertical&&"left"===n.anchorOrigin.horizontal&&"circular"===n.overlap&&(0,r.Z)({bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Z.invisible),{transform:"scale(0) translate(-50%, 50%)"}),n.invisible&&{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})})})),S=a.forwardRef((function(e,t){var n,r,a=(0,w.Z)({props:e,name:"MuiBadge"}),u=a.anchorOrigin,s=void 0===u?{vertical:"top",horizontal:"right"}:u,p=a.component,d=void 0===p?"span":p,v=a.components,g=void 0===v?{}:v,b=a.componentsProps,h=void 0===b?{}:b,O=a.overlap,x=void 0===O?"rectangular":O,Z=a.color,S=void 0===Z?"default":Z,z=a.invisible,A=void 0!==z&&z,F=a.badgeContent,E=a.showZero,R=void 0!==E&&E,T=a.variant,I=void 0===T?"standard":T,B=(0,o.Z)(a,C),M=l({anchorOrigin:s,color:S,overlap:x}),L=A;!1===A&&(0===F&&!R||null==F&&"dot"!==I)&&(L=!0);var _=L?M:a,N=_.color,H=void 0===N?S:N,K=_.overlap,V=void 0===K?x:K,U=_.anchorOrigin,W=void 0===U?s:U,$=function(e){var t=e.color,n=e.anchorOrigin,r=e.overlap,o=e.classes,a=void 0===o?{}:o;return(0,i.Z)({},a,{badge:(0,c.Z)(a.badge,f("anchorOrigin".concat((0,j.Z)(n.vertical)).concat((0,j.Z)(n.horizontal)).concat((0,j.Z)(r))),f("overlap".concat((0,j.Z)(r))),"default"!==t&&[f("color".concat((0,j.Z)(t))),a["color".concat((0,j.Z)(t))]])})}((0,i.Z)({},a,{anchorOrigin:W,invisible:L,color:H,overlap:V}));return(0,m.jsx)(y,(0,i.Z)({anchorOrigin:W,invisible:A,badgeContent:F,showZero:R,variant:I},B,{components:(0,i.Z)({Root:P,Badge:k},g),componentsProps:{root:(0,i.Z)({},h.root,D(g.Root)&&{as:d,ownerState:(0,i.Z)({},null==(n=h.root)?void 0:n.ownerState,{color:H,overlap:V})}),badge:(0,i.Z)({},h.badge,D(g.Badge)&&{ownerState:(0,i.Z)({},null==(r=h.badge)?void 0:r.ownerState,{color:H,overlap:V})})},classes:$,ref:t}))}))},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),c=n(90767),l=n(12065),u=n(97278),s=n(76189),f=n(80184),p=(0,s.Z)((0,f.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"),d=(0,s.Z)((0,f.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,s.Z)((0,f.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"),g=n(14036),m=n(93736),b=n(47630),h=n(95159);function y(e){return(0,h.Z)("MuiCheckbox",e)}var O=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),w=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],x=(0,b.ZP)(u.Z,{shouldForwardProp:function(e){return(0,b.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,g.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,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,r.Z)(t,"&.".concat(O.checked,", &.").concat(O.indeterminate),{color:n.palette[o.color].main}),(0,r.Z)(t,"&.".concat(O.disabled),{color:n.palette.action.disabled}),t))})),D=(0,f.jsx)(d,{}),j=(0,f.jsx)(p,{}),C=(0,f.jsx)(v,{}),Z=a.forwardRef((function(e,t){var n,r,l=(0,m.Z)({props:e,name:"MuiCheckbox"}),u=l.checkedIcon,s=void 0===u?D:u,p=l.color,d=void 0===p?"primary":p,v=l.icon,b=void 0===v?j:v,h=l.indeterminate,O=void 0!==h&&h,Z=l.indeterminateIcon,P=void 0===Z?C:Z,k=l.inputProps,S=l.size,z=void 0===S?"medium":S,A=(0,o.Z)(l,w),F=O?P:b,E=O?P:s,R=(0,i.Z)({},l,{color:d,indeterminate:O,size:z}),T=function(e){var t=e.classes,n=e.indeterminate,r=e.color,o={root:["root",n&&"indeterminate","color".concat((0,g.Z)(r))]},a=(0,c.Z)(o,y,t);return(0,i.Z)({},t,a)}(R);return(0,f.jsx)(x,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":O},k),icon:a.cloneElement(F,{fontSize:null!=(n=F.props.fontSize)?n:z}),checkedIcon:a.cloneElement(E,{fontSize:null!=(r=E.props.fontSize)?r:z}),ownerState:R,ref:t},A,{classes:T}))}))},69998:function(e,t){"use strict";t.Z=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),i=o.replace(/\/.*$/,"");return n.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?r.toLowerCase().endsWith(t):t.endsWith("/*")?i===t.replace(/\/.*$/,""):o===t}))}return!0}},76998:function(e,t,n){"use strict";var r=n(42458),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,c,l,u,s=!1;t||(t={}),n=t.debug||!1;try{if(a=r(),c=document.createRange(),l=document.getSelection(),(u=document.createElement("span")).textContent=e,u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),c.selectNodeContents(u),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");s=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),u&&document.body.removeChild(u),a()}return s}},26769:function(e,t,n){var r=n(39066),o=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&"[object String]"==r(e)}},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n(72791)),o=i(n(76998));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="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},a(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(c){o={error:c}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}Object.create;var u=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function s(e,t){var n=function(e){var t=e.name;if(t&&-1!==t.lastIndexOf(".")&&!e.type){var n=t.split(".").pop().toLowerCase(),r=u.get(n);r&&Object.defineProperty(e,"type",{value:r,writable:!1,configurable:!1,enumerable:!0})}return e}(e);if("string"!==typeof n.path){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:"string"===typeof t?t:"string"===typeof r&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}var f=[".DS_Store","Thumbs.db"];function p(e){return"object"===typeof e&&null!==e}function d(e){return b(e.target.files).map((function(e){return s(e)}))}function v(e){return a(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return e.getFile()})))];case 1:return[2,t.sent().map((function(e){return s(e)}))]}}))}))}function g(e,t){return a(this,void 0,void 0,(function(){var n;return c(this,(function(r){switch(r.label){case 0:return null===e?[2,[]]:e.items?(n=b(e.items).filter((function(e){return"file"===e.kind})),"drop"!==t?[2,n]:[4,Promise.all(n.map(h))]):[3,2];case 1:return[2,m(y(r.sent()))];case 2:return[2,m(b(e.files).map((function(e){return s(e)})))]}}))}))}function m(e){return e.filter((function(e){return-1===f.indexOf(e.name)}))}function b(e){if(null===e)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,T(n)];if(e.sizen)return[!1,T(n)]}return[!0,null]}function _(e){return void 0!==e&&null!==e}function N(e){var t=e.files,n=e.accept,r=e.minSize,o=e.maxSize,i=e.multiple,a=e.maxFiles;return!(!i&&t.length>1||i&&a>=1&&t.length>a)&&t.every((function(e){var t=k(M(e,n),1)[0],i=k(L(e,r,o),1)[0];return t&&i}))}function H(e){return"function"===typeof e.isPropagationStopped?e.isPropagationStopped():"undefined"!==typeof e.cancelBubble&&e.cancelBubble}function K(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,(function(e){return"Files"===e||"application/x-moz-file"===e})):!!e.target&&!!e.target.files}function V(e){e.preventDefault()}function U(e){return-1!==e.indexOf("MSIE")||-1!==e.indexOf("Trident/")}function W(e){return-1!==e.indexOf("Edge/")}function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator.userAgent;return U(e)||W(e)}function q(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ue=(0,r.forwardRef)((function(e,t){var n=e.children,o=pe(le(e,J)),i=o.open,a=le(o,Q);return(0,r.useImperativeHandle)(t,(function(){return{open:i}}),[i]),r.createElement(r.Fragment,null,n(ae(ae({},a),{},{open:i})))}));ue.displayName="Dropzone";var se={disabled:!1,getFilesFromEvent:function(e){return a(this,void 0,void 0,(function(){return c(this,(function(t){return p(e)&&p(e.dataTransfer)?[2,g(e.dataTransfer,e.type)]:function(e){return p(e)&&p(e.target)}(e)?[2,d(e)]:Array.isArray(e)&&e.every((function(e){return"getFile"in e&&"function"===typeof e.getFile}))?[2,v(e)]:[2,[]]}))}))},maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};ue.defaultProps=se,ue.propTypes={children:i().func,accept:i().oneOfType([i().string,i().arrayOf(i().string)]),multiple:i().bool,preventDropOnDocument:i().bool,noClick:i().bool,noKeyboard:i().bool,noDrag:i().bool,noDragEventsBubbling:i().bool,minSize:i().number,maxSize:i().number,maxFiles:i().number,disabled:i().bool,getFilesFromEvent:i().func,onFileDialogCancel:i().func,onFileDialogOpen:i().func,useFsAccessApi:i().bool,onDragEnter:i().func,onDragLeave:i().func,onDragOver:i().func,onDrop:i().func,onDropAccepted:i().func,onDropRejected:i().func,validator:i().func};var fe={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function pe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ae(ae({},se),e),n=t.accept,o=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,c=t.minSize,l=t.multiple,u=t.maxFiles,s=t.onDragEnter,f=t.onDragLeave,p=t.onDragOver,d=t.onDrop,v=t.onDropAccepted,g=t.onDropRejected,m=t.onFileDialogCancel,b=t.onFileDialogOpen,h=t.useFsAccessApi,y=t.preventDropOnDocument,O=t.noClick,w=t.noKeyboard,x=t.noDrag,D=t.noDragEventsBubbling,j=t.validator,C=(0,r.useMemo)((function(){return"function"===typeof b?b:ve}),[b]),Z=(0,r.useMemo)((function(){return"function"===typeof m?m:ve}),[m]),P=(0,r.useRef)(null),k=(0,r.useRef)(null),S=(0,r.useReducer)(de,fe),z=ne(S,2),A=z[0],F=z[1],E=A.isFocused,R=A.isFileDialogActive,T=A.draggedFiles,I=function(){R&&setTimeout((function(){k.current&&(k.current.files.length||(F({type:"closeDialog"}),Z()))}),300)};(0,r.useEffect)((function(){return h&&G()?function(){}:(window.addEventListener("focus",I,!1),function(){window.removeEventListener("focus",I,!1)})}),[k,R,Z,h]);var _=(0,r.useRef)([]),U=function(e){P.current&&P.current.contains(e.target)||(e.preventDefault(),_.current=[])};(0,r.useEffect)((function(){return y&&(document.addEventListener("dragover",V,!1),document.addEventListener("drop",U,!1)),function(){y&&(document.removeEventListener("dragover",V),document.removeEventListener("drop",U))}}),[P,y]);var W=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e),_.current=[].concat(te(_.current),[e.target]),K(e)&&Promise.resolve(i(e)).then((function(t){H(e)&&!D||(F({draggedFiles:t,isDragActive:!0,type:"setDraggedFiles"}),s&&s(e))}))}),[i,s,D]),J=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e);var t=K(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(n){}return t&&p&&p(e),!1}),[p,D]),Q=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e);var t=_.current.filter((function(e){return P.current&&P.current.contains(e)})),n=t.indexOf(e.target);-1!==n&&t.splice(n,1),_.current=t,t.length>0||(F({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),K(e)&&f&&f(e))}),[P,f,D]),re=(0,r.useCallback)((function(e,t){var r=[],o=[];e.forEach((function(e){var t=ne(M(e,n),2),i=t[0],l=t[1],u=ne(L(e,c,a),2),s=u[0],f=u[1],p=j?j(e):null;if(i&&s&&!p)r.push(e);else{var d=[l,f];p&&(d=d.concat(p)),o.push({file:e,errors:d.filter((function(e){return e}))})}})),(!l&&r.length>1||l&&u>=1&&r.length>u)&&(r.forEach((function(e){o.push({file:e,errors:[B]})})),r.splice(0)),F({acceptedFiles:r,fileRejections:o,type:"setFiles"}),d&&d(r,o,t),o.length>0&&g&&g(o,t),r.length>0&&v&&v(r,t)}),[F,l,n,c,a,u,d,v,g,j]),oe=(0,r.useCallback)((function(e){e.preventDefault(),e.persist(),Oe(e),_.current=[],K(e)&&Promise.resolve(i(e)).then((function(t){H(e)&&!D||re(t,e)})),F({type:"reset"})}),[i,re,D]),ie=(0,r.useCallback)((function(){if(h&&G()){F({type:"openDialog"}),C();var e={multiple:l,types:X(n)};window.showOpenFilePicker(e).then((function(e){return i(e)})).then((function(e){return re(e,null)})).catch((function(e){return Z(e)})).finally((function(){return F({type:"closeDialog"})}))}else k.current&&(F({type:"openDialog"}),C(),k.current.value=null,k.current.click())}),[F,C,Z,h,re,n,l]),ue=(0,r.useCallback)((function(e){P.current&&P.current.isEqualNode(e.target)&&(32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),ie()))}),[P,k,ie]),pe=(0,r.useCallback)((function(){F({type:"focus"})}),[]),ge=(0,r.useCallback)((function(){F({type:"blur"})}),[]),me=(0,r.useCallback)((function(){O||($()?setTimeout(ie,0):ie())}),[k,O,ie]),be=function(e){return o?null:e},he=function(e){return w?null:be(e)},ye=function(e){return x?null:be(e)},Oe=function(e){D&&e.stopPropagation()},we=(0,r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,n=void 0===t?"ref":t,r=e.role,i=e.onKeyDown,a=e.onFocus,c=e.onBlur,l=e.onClick,u=e.onDragEnter,s=e.onDragOver,f=e.onDragLeave,p=e.onDrop,d=le(e,Y);return ae(ae(ce({onKeyDown:he(q(i,ue)),onFocus:he(q(a,pe)),onBlur:he(q(c,ge)),onClick:be(q(l,me)),onDragEnter:ye(q(u,W)),onDragOver:ye(q(s,J)),onDragLeave:ye(q(f,Q)),onDrop:ye(q(p,oe)),role:"string"===typeof r&&""!==r?r:"button"},n,P),o||w?{}:{tabIndex:0}),d)}}),[P,ue,pe,ge,me,W,J,Q,oe,w,x,o]),xe=(0,r.useCallback)((function(e){e.stopPropagation()}),[]),De=(0,r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,r=void 0===t?"ref":t,o=e.onChange,i=e.onClick,a=le(e,ee),c=ce({accept:n,multiple:l,type:"file",style:{display:"none"},onChange:be(q(o,oe)),onClick:be(q(i,xe)),autoComplete:"off",tabIndex:-1},r,k);return ae(ae({},c),a)}}),[k,n,l,oe,o]),je=T.length,Ce=je>0&&N({files:T,accept:n,minSize:c,maxSize:a,multiple:l,maxFiles:u}),Ze=je>0&&!Ce;return ae(ae({},A),{},{isDragAccept:Ce,isDragReject:Ze,isFocused:E&&!o,getRootProps:we,getInputProps:De,rootRef:P,inputRef:k,open:be(ie)})}function de(e,t){switch(t.type){case"focus":return ae(ae({},e),{},{isFocused:!0});case"blur":return ae(ae({},e),{},{isFocused:!1});case"openDialog":return ae(ae({},fe),{},{isFileDialogActive:!0});case"closeDialog":return ae(ae({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=t.isDragActive,r=t.draggedFiles;return ae(ae({},e),{},{draggedFiles:r,isDragActive:n});case"setFiles":return ae(ae({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return ae({},fe);default:return e}}function ve(){}},42458:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}}}]); -//# sourceMappingURL=5317.c7a235b3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5317.c7a235b3.chunk.js.map b/portal-ui/build/static/js/5317.c7a235b3.chunk.js.map deleted file mode 100644 index 50f5b0ad0..000000000 --- a/portal-ui/build/static/js/5317.c7a235b3.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5317.c7a235b3.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/Close.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/utils/esm/usePreviousProps.js","../node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js","../node_modules/@mui/base/BadgeUnstyled/BadgeUnstyled.js","../node_modules/@mui/base/BadgeUnstyled/useBadge.js","../node_modules/@mui/material/utils/shouldSpreadAdditionalProps.js","../node_modules/@mui/material/Badge/Badge.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/attr-accept/dist/es/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/lodash/isString.js","../node_modules/react-copy-to-clipboard/lib/Component.js","../node_modules/react-copy-to-clipboard/lib/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","../node_modules/toggle-selection/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.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: \"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;","import * as React from 'react';\n\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport default usePreviousProps;","import generateUtilityClasses from '../generateUtilityClasses';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass('MuiBadge', slot);\n}\nconst badgeUnstyledClasses = generateUtilityClasses('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopLeft', 'anchorOriginTopRight', 'anchorOriginBottomLeft', 'anchorOriginBottomRight', 'invisible']);\nexport default badgeUnstyledClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorOrigin\", \"classes\", \"badgeContent\", \"component\", \"children\", \"className\", \"components\", \"componentsProps\", \"invisible\", \"max\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nimport composeClasses from '../composeClasses';\nimport appendOwnerState from '../utils/appendOwnerState';\nimport useBadge from './useBadge';\nimport { getBadgeUtilityClass } from './badgeUnstyledClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n anchorOrigin,\n invisible,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', variant, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, invisible && 'invisible']\n };\n return composeClasses(slots, getBadgeUtilityClass, classes);\n};\n\nconst BadgeUnstyled = /*#__PURE__*/React.forwardRef(function BadgeUnstyled(props, ref) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n classes: classesProp,\n component,\n children,\n className,\n components = {},\n componentsProps = {},\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n anchorOrigin,\n badgeContent,\n max,\n variant,\n displayValue,\n invisible\n } = useBadge(_extends({}, props, {\n anchorOrigin: anchorOriginProp,\n max: maxProp,\n variant: variantProp\n }));\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n badgeContent,\n classes: classesProp,\n invisible,\n max,\n variant,\n showZero\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = component || components.Root || 'span';\n const rootProps = appendOwnerState(Root, _extends({}, other, componentsProps.root), ownerState);\n const Badge = components.Badge || 'span';\n const badgeProps = appendOwnerState(Badge, componentsProps.badge, ownerState);\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n ref: ref\n }, other, {\n className: clsx(classes.root, rootProps.className, className),\n children: [children, /*#__PURE__*/_jsx(Badge, _extends({}, badgeProps, {\n className: clsx(classes.badge, badgeProps.className),\n children: displayValue\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? BadgeUnstyled.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes.string\n} : void 0;\nexport default BadgeUnstyled;","import { usePreviousProps } from '@mui/utils';\nexport default function useBadge(props) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props;\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n badgeContent: badgeContentProp,\n max: maxProp,\n variant: variantProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n anchorOrigin = anchorOriginProp,\n badgeContent,\n max = maxProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n let displayValue = '';\n\n if (variant !== 'dot') {\n displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n }\n\n return {\n anchorOrigin,\n badgeContent,\n invisible,\n max,\n variant,\n displayValue\n };\n}","import { isHostComponent } from '@mui/base';\n\nconst shouldSpreadAdditionalProps = Slot => {\n return !Slot || !isHostComponent(Slot);\n};\n\nexport default shouldSpreadAdditionalProps;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"anchorOrigin\", \"component\", \"components\", \"componentsProps\", \"overlap\", \"color\", \"invisible\", \"badgeContent\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { usePreviousProps } from '@mui/utils';\nimport { generateUtilityClasses } from '@mui/base';\nimport BadgeUnstyled, { badgeUnstyledClasses, getBadgeUtilityClass } from '@mui/base/BadgeUnstyled';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport shouldSpreadAdditionalProps from '../utils/shouldSpreadAdditionalProps';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const badgeClasses = _extends({}, badgeUnstyledClasses, generateUtilityClasses('MuiBadge', ['colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular', // TODO: v6 remove the overlap value from these class keys\n'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']));\nconst RADIUS_STANDARD = 10;\nconst RADIUS_DOT = 4;\n\nconst extendUtilityClasses = ownerState => {\n const {\n color,\n anchorOrigin,\n overlap,\n classes = {}\n } = ownerState;\n return _extends({}, classes, {\n badge: clsx(classes.badge, getBadgeUtilityClass(`anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`), getBadgeUtilityClass(`overlap${capitalize(overlap)}`), color !== 'default' && [getBadgeUtilityClass(`color${capitalize(color)}`), classes[`color${capitalize(color)}`]])\n });\n};\n\nconst BadgeRoot = styled('span', {\n name: 'MuiBadge',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n});\nconst BadgeBadge = styled('span', {\n name: 'MuiBadge',\n slot: 'Badge',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n })\n}, ownerState.color !== 'default' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n}, ownerState.variant === 'dot' && {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.invisible && {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n}));\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {\n var _componentsProps$root, _componentsProps$badg;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBadge'\n });\n\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n component = 'span',\n components = {},\n componentsProps = {},\n overlap: overlapProp = 'rectangular',\n color: colorProp = 'default',\n invisible: invisibleProp = false,\n badgeContent: badgeContentProp,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n color: colorProp,\n overlap: overlapProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n color = colorProp,\n overlap = overlapProp,\n anchorOrigin = anchorOriginProp\n } = invisible ? prevProps : props;\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n invisible,\n color,\n overlap\n });\n\n const classes = extendUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(BadgeUnstyled, _extends({\n anchorOrigin: anchorOrigin,\n invisible: invisibleProp,\n badgeContent: badgeContentProp,\n showZero: showZero,\n variant: variantProp\n }, other, {\n components: _extends({\n Root: BadgeRoot,\n Badge: BadgeBadge\n }, components),\n componentsProps: {\n root: _extends({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {\n as: component,\n ownerState: _extends({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {\n color,\n overlap\n })\n }),\n badge: _extends({}, componentsProps.badge, shouldSpreadAdditionalProps(components.Badge) && {\n ownerState: _extends({}, (_componentsProps$badg = componentsProps.badge) == null ? void 0 : _componentsProps$badg.ownerState, {\n color,\n overlap\n })\n })\n },\n classes: classes,\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\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 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 components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Wrapped shape the badge should overlap.\n * @default 'rectangular'\n */\n overlap: PropTypes.oneOf(['circular', 'rectangular']),\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: 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\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['dot', 'standard']), PropTypes.string])\n} : void 0;\nexport default Badge;","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;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\n\n\nexport function toFileWithPath(file: FileWithPath, path?: string): FileWithPath {\n const f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n const {webkitRelativePath} = file as FileWithWebkitPath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\ninterface DOMFile extends Blob {\n readonly lastModified: number;\n readonly name: string;\n}\n\nexport interface FileWithPath extends DOMFile {\n readonly path?: string;\n}\n\ninterface FileWithWebkitPath extends File {\n readonly webkitRelativePath?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport async function fromEvent(evt: Event | any): Promise<(FileWithPath | DataTransferItem)[]> {\n if (isObject(evt) && isDataTransfer(evt)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n } else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n } else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt)\n }\n return [];\n}\n\nfunction isDataTransfer(value: any): value is DataTransfer {\n return isObject(value.dataTransfer);\n}\n\nfunction isChangeEvt(value: any): value is Event {\n return isObject(value) && isObject(value.target);\n}\n\nfunction isObject(v: any): v is T {\n return typeof v === 'object' && v !== null\n}\n\nfunction getInputFiles(evt: Event) {\n return fromList((evt.target as HTMLInputElement).files).map(file => toFileWithPath(file));\n}\n\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nasync function getFsHandleFiles(handles: any[]) {\n const files = await Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n}\n\n\nasync function getDataTransferFiles(dt: DataTransfer | null, type: string) {\n if (dt === null) {\n return [];\n }\n\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList | null): T[] {\n if (items === null) {\n return [];\n }\n\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
    \n * \n *

    Drag 'n' drop some files here, or click to select files

    \n *
    \n * )}\n *
    \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
    \n * \n *

    Drag and drop some files here, or click to select files

    \n *
    \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\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","value","ref","React","current","getBadgeUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","BadgeUnstyled","props","anchorOrigin","anchorOriginProp","vertical","horizontal","classesProp","classes","component","children","className","components","componentsProps","max","maxProp","showZero","variant","variantProp","other","_objectWithoutPropertiesLoose","badgeContentProp","badgeContent","invisible","invisibleProp","prevProps","usePreviousProps","displayValue","Number","useBadge","_extends","ownerState","slots","root","badge","capitalize","composeClasses","useUtilityClasses","Root","rootProps","appendOwnerState","Badge","badgeProps","_jsxs","clsx","_jsx","Slot","isHostComponent","badgeClasses","badgeUnstyledClasses","BadgeRoot","styled","name","overridesResolver","styles","position","display","verticalAlign","flexShrink","BadgeBadge","overlap","color","theme","flexDirection","flexWrap","justifyContent","alignContent","alignItems","boxSizing","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","minWidth","RADIUS_STANDARD","lineHeight","padding","height","borderRadius","zIndex","transition","transitions","create","easing","easeInOut","duration","enteringScreen","backgroundColor","palette","main","contrastText","RADIUS_DOT","top","right","transform","transformOrigin","bottom","left","leavingScreen","inProps","_componentsProps$root","_componentsProps$badg","useThemeProps","overlapProp","colorProp","extendUtilityClasses","shouldSpreadAdditionalProps","as","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","text","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","composedClasses","type","file","acceptedFiles","acceptedFilesArray","Array","isArray","split","fileName","mimeType","toLowerCase","baseMimeType","replace","some","validType","trim","charAt","endsWith","deselectCurrent","clipboardToIE11Formatting","module","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","style","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","baseGetTag","isObjectLike","Object","defineProperty","CopyToClipboard","_react","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","length","indexOf","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","this","_len","arguments","args","_key","concat","event","_this$props","elem","Children","only","result","onClick","protoProps","staticProps","subClass","superClass","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","undefined","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","f","y","t","g","_","label","sent","trys","ops","verb","n","v","op","pop","__read","m","r","ar","COMMON_MIME_TYPES","Map","toFileWithPath","path","lastIndexOf","ext","get","withMimeType","webkitRelativePath","FILES_TO_IGNORE","isObject","getInputFiles","evt","fromList","files","map","getFsHandleFiles","handles","h","getFile","_a","getDataTransferFiles","dt","items","item","kind","toFilePromises","noIgnoredFiles","flatten","webkitGetAsEntry","fromDataTransferItem","entry","isDirectory","fromDirEntry","reduce","acc","getAsFile","fwp","fromEntry","fromFileEntry","reader","createReader","entries","readEntries","batch","err_1","fullPath","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","from","_unsupportedIterableToArray","_nonIterableRest","len","arr2","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","join","code","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","_ref","multiple","maxFiles","every","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","types","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","fns","_len2","_key2","fn","canUseFileSystemAccessAPI","filePickerOptionsTypes","description","a","b","_excluded2","_excluded3","_excluded4","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Dropzone","forwardRef","_useDropzone","useDropzone","open","useImperativeHandle","Fragment","displayName","defaultProps","getFilesFromEvent","isChangeEvt","Infinity","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","propTypes","PropTypes","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","onFileDialogOpenCb","useMemo","noop","onFileDialogCancelCb","rootRef","useRef","inputRef","_useReducer","useReducer","reducer","_useReducer2","state","dispatch","onWindowFocus","setTimeout","useEffect","removeEventListener","dragTargetsRef","onDocumentDrop","contains","onDragEnterCb","useCallback","persist","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","splice","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","errors","onDropCb","openFileDialog","opts","showOpenFilePicker","catch","finally","click","onKeyDownCb","isEqualNode","keyCode","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2","_ref2$refKey","refKey","role","onKeyDown","onFocus","onBlur","rest","tabIndex","onInputElementClick","getInputProps","_ref3","_ref3$refKey","onChange","autoComplete","fileCount","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5586.a2da5401.chunk.js b/portal-ui/build/static/js/5586.a2da5401.chunk.js new file mode 100644 index 000000000..1e2d381ab --- /dev/null +++ b/portal-ui/build/static/js/5586.a2da5401.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5586],{26759:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");e.Z=c},70366:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");e.Z=c},77961:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");e.Z=c},97911:function(t,e,n){"use strict";var o=n(95318);e.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");e.Z=c},94454:function(t,e,n){"use strict";n.d(e,{Z:function(){return M}});var o=n(4942),r=n(63366),i=n(87462),c=n(72791),a=n(90767),u=n(12065),s=n(97278),l=n(76189),d=n(80184),f=(0,l.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"),v=(0,l.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"),p=(0,l.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"),h=n(14036),m=n(93736),x=n(47630),Z=n(95159);function k(t){return(0,Z.Z)("MuiCheckbox",t)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),b=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],w=(0,x.ZP)(s.Z,{shouldForwardProp:function(t){return(0,x.FO)(t)||"classes"===t},name:"MuiCheckbox",slot:"Root",overridesResolver:function(t,e){var n=t.ownerState;return[e.root,n.indeterminate&&e.indeterminate,"default"!==n.color&&e["color".concat((0,h.Z)(n.color))]]}})((function(t){var e,n=t.theme,r=t.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,u.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&&(e={},(0,o.Z)(e,"&.".concat(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(e,"&.".concat(z.disabled),{color:n.palette.action.disabled}),e))})),C=(0,d.jsx)(v,{}),y=(0,d.jsx)(f,{}),j=(0,d.jsx)(p,{}),M=c.forwardRef((function(t,e){var n,o,u=(0,m.Z)({props:t,name:"MuiCheckbox"}),s=u.checkedIcon,l=void 0===s?C:s,f=u.color,v=void 0===f?"primary":f,p=u.icon,x=void 0===p?y:p,Z=u.indeterminate,z=void 0!==Z&&Z,M=u.indeterminateIcon,H=void 0===M?j:M,S=u.inputProps,g=u.size,V=void 0===g?"medium":g,I=(0,r.Z)(u,b),T=z?H:x,P=z?H:l,O=(0,i.Z)({},u,{color:v,indeterminate:z,size:V}),B=function(t){var e=t.classes,n=t.indeterminate,o=t.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},c=(0,a.Z)(r,k,e);return(0,i.Z)({},e,c)}(O);return(0,d.jsx)(w,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},S),icon:c.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:V}),checkedIcon:c.cloneElement(P,{fontSize:null!=(o=P.props.fontSize)?o:V}),ownerState:O,ref:e},I,{classes:B}))}))},20821:function(t,e,n){var o=n(26050),r=/^\s+/;t.exports=function(t){return t?t.slice(0,o(t)+1).replace(r,""):t}},26050:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},48573:function(t,e,n){var o=n(8092),r=n(50072),i=n(42582),c=Math.max,a=Math.min;t.exports=function(t,e,n){var u,s,l,d,f,v,p=0,h=!1,m=!1,x=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function Z(e){var n=u,o=s;return u=s=void 0,p=e,d=t.apply(o,n)}function k(t){return p=t,f=setTimeout(b,e),h?Z(t):d}function z(t){var n=t-v;return void 0===v||n>=e||n<0||m&&t-p>=l}function b(){var t=r();if(z(t))return w(t);f=setTimeout(b,function(t){var n=e-(t-v);return m?a(n,l-(t-p)):n}(t))}function w(t){return f=void 0,x&&u?Z(t):(u=s=void 0,d)}function C(){var t=r(),n=z(t);if(u=arguments,s=this,v=t,n){if(void 0===f)return k(v);if(m)return clearTimeout(f),f=setTimeout(b,e),Z(v)}return void 0===f&&(f=setTimeout(b,e)),d}return e=i(e)||0,o(n)&&(h=!!n.leading,l=(m="maxWait"in n)?c(i(n.maxWait)||0,e):l,x="trailing"in n?!!n.trailing:x),C.cancel=function(){void 0!==f&&clearTimeout(f),p=0,u=v=s=f=void 0},C.flush=function(){return void 0===f?d:w(r())},C}},26769:function(t,e,n){var o=n(39066),r=n(93629),i=n(43141);t.exports=function(t){return"string"==typeof t||!r(t)&&i(t)&&"[object String]"==o(t)}},50072:function(t,e,n){var o=n(97009);t.exports=function(){return o.Date.now()}},42582:function(t,e,n){var o=n(20821),r=n(8092),i=n(70152),c=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,u=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=o(t);var n=a.test(t);return n||u.test(t)?s(t.slice(2),n?2:8):c.test(t)?NaN:+t}}}]); +//# sourceMappingURL=5586.a2da5401.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5586.a2da5401.chunk.js.map b/portal-ui/build/static/js/5586.a2da5401.chunk.js.map new file mode 100644 index 000000000..21aa3c041 --- /dev/null +++ b/portal-ui/build/static/js/5586.a2da5401.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5586.a2da5401.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/Help.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/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/isString.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\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 trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\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 root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\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","trimmedEndIndex","reTrimStart","module","string","slice","replace","reWhitespace","index","length","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","baseGetTag","isArray","isObjectLike","value","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5588.1a32c1c3.chunk.js b/portal-ui/build/static/js/5588.1a32c1c3.chunk.js deleted file mode 100644 index b781521c9..000000000 --- a/portal-ui/build/static/js/5588.1a32c1c3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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.1a32c1c3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5588.1a32c1c3.chunk.js.map b/portal-ui/build/static/js/5588.1a32c1c3.chunk.js.map deleted file mode 100644 index 135e4ddf0..000000000 --- a/portal-ui/build/static/js/5588.1a32c1c3.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5588.1a32c1c3.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/5588.3894176c.chunk.js b/portal-ui/build/static/js/5588.3894176c.chunk.js new file mode 100644 index 000000000..69b0df984 --- /dev/null +++ b/portal-ui/build/static/js/5588.3894176c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5588],{45588:function(e,t,n){n.r(t),n.d(t,{default:function(){return _}});var r=n(29439),i=n(1413),a=n(72791),u=n(61889),c=n(36151),o=n(40986),d=n(11135),s=n(25787),l=n(23814),b=n(81207),f=n(21435),m=n(83679),k=n(45248),h=n(62666),x=n(60364),g=n(42209);function p(e,t){return e===t}function v(e){return"function"===typeof e?function(){return e}:e}function j(e,t,n){var r=n&&n.equalityFn||p,i=function(e){var t=(0,a.useState)(v(e)),n=t[0],r=t[1];return[n,(0,a.useCallback)((function(e){return r(v(e))}),[])]}(e),u=i[0],c=i[1],o=function(e,t,n){var r=this,i=(0,a.useRef)(null),u=(0,a.useRef)(0),c=(0,a.useRef)(null),o=(0,a.useRef)([]),d=(0,a.useRef)(),s=(0,a.useRef)(),l=(0,a.useRef)(e),b=(0,a.useRef)(!0);l.current=e;var f=!t&&0!==t&&"undefined"!==typeof window;if("function"!==typeof e)throw new TypeError("Expected a function");t=+t||0;var m=!!(n=n||{}).leading,k=!("trailing"in n)||!!n.trailing,h="maxWait"in n,x=h?Math.max(+n.maxWait||0,t):null;(0,a.useEffect)((function(){return b.current=!0,function(){b.current=!1}}),[]);var g=(0,a.useMemo)((function(){var e=function(e){var t=o.current,n=d.current;return o.current=d.current=null,u.current=e,s.current=l.current.apply(n,t)},n=function(e,t){f&&cancelAnimationFrame(c.current),c.current=f?requestAnimationFrame(e):setTimeout(e,t)},a=function(e){if(!b.current)return!1;var n=e-i.current,r=e-u.current;return!i.current||n>=t||n<0||h&&r>=x},g=function(t){return c.current=null,k&&o.current?e(t):(o.current=d.current=null,s.current)},p=function e(){var r=Date.now();if(a(r))return g(r);if(b.current){var c=r-i.current,o=r-u.current,d=t-c,s=h?Math.min(d,x-o):d;n(e,s)}},v=function(){for(var l=[],f=0;fclick me\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"],"names":["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","withStyles","theme","createStyles","buttonContainer","marginTop","textAlign","marginLeft","error","color","border","padding","borderRadius","title","marginBottom","headTitle","fontWeight","fontSize","paddingLeft","h6title","paddingBottom","containerForHeader","spacing","classes","addLoading","setAddLoading","sendEnabled","setSendEnabled","lockingFieldDisabled","setLockingFieldDisabled","resetForm","valid","trim","parseInt","Number","isNaN","Fragment","PageHeader","label","BackLink","to","PageLayout","Grid","item","xs","className","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","onClick","LinearProgress"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.0998d919.chunk.js b/portal-ui/build/static/js/5662.0998d919.chunk.js deleted file mode 100644 index e6197e1be..000000000 --- a/portal-ui/build/static/js/5662.0998d919.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","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(29439),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(93433),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.0998d919.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.0998d919.chunk.js.map b/portal-ui/build/static/js/5662.0998d919.chunk.js.map deleted file mode 100644 index 4a50bb728..000000000 --- a/portal-ui/build/static/js/5662.0998d919.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5662.0998d919.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,+LCiB3B,KAAeQ,EAAAA,EAAAA,IA1GA,SAAC7B,GAAD,OACb8B,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAwGP,EArFsB,SAAC,GAcI,IAAD,IAbxBC,OAAAA,OAawB,SAZxBC,EAYwB,EAZxBA,QACAC,EAWwB,EAXxBA,SACAC,EAUwB,EAVxBA,UAUwB,IATxBlB,QAAAA,OASwB,MATd,GASc,MARxBmB,MAAAA,OAQwB,MARhB,GAQgB,EAPxBC,EAOwB,EAPxBA,UACAC,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,KAGJX,UAAWL,EAAQhB,KACnBwB,GAAI,CACF,mBAAoB,CAClBvB,QAAS,wBAVf,WAcE,UAAC,IAAD,CAAaoB,UAAWL,EAAQmB,MAAhC,WACE,iBAAKd,UAAWL,EAAQ8B,UAAxB,UACGJ,EADH,IACeP,MAEf,gBAAKd,UAAWL,EAAQ+B,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACX1B,UAAWL,EAAQgC,YACnB/B,QAASe,EACTiB,eAAa,EACb1B,KAAK,QALP,UAOE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAeF,UAAWL,EAAQkC,QAAlC,SACGb,KAEH,UAAC,IAAD,CAAehB,UAAWL,EAAQmC,QAAlC,WACE,SAAC,KAAD,gBACE9B,UAAWL,EAAQoC,aACnBnC,QAASgB,GAAYD,EACrBd,SAAUkB,EACViB,KAAK,UACDZ,GALN,IAMErC,QAAQ,WACRF,MAAM,UACNoD,GAAI,iBARN,SAUGhB,MAGH,SAAC,KAAD,gBACEjB,UAAWL,EAAQuC,cACnBF,KAAK,SACLpC,QAASiB,EACTsB,QAASpB,EACTlB,SAAUkB,EACVhC,QAAQ,WACRF,MAAM,YACNuD,gBAAgB,QAChBC,WAAW,SAAC,WAAD,IACXC,WAAS,EACTL,GAAI,cACAd,GAZN,aAcGD,e,qNC6DLqB,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAetC,EAAAA,EAAAA,IAvIA,SAAC7B,GAAD,OACb8B,EAAAA,EAAAA,IAAa,kBACRC,EAAAA,IADO,IAEVoB,QAAS,CACPjD,QAAS,GACTkE,cAAe,GAEjBC,iBAAkB,CAChBvD,MAAO,OACPwD,SAAU,MAETC,EAAAA,OA4HP,CAAkCV,GAzHb,SAAC,GAWF,IAVlB5B,EAUiB,EAVjBA,QACAuC,EASiB,EATjBA,UACApC,EAQiB,EARjBA,MACAqC,EAOiB,EAPjBA,SACAxD,EAMiB,EANjBA,QAMiB,IALjByD,UAAAA,OAKiB,SAJjBV,EAIiB,EAJjBA,kBACAW,EAGiB,EAHjBA,iBACAR,EAEiB,EAFjBA,qBAEiB,IADjBxB,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCiC,EAAAA,EAAAA,WAAkB,GAA1D,eAAOC,EAAP,KAAqBC,EAArB,MAEAC,EAAAA,EAAAA,YAAU,WACRZ,EAAqB,MACpB,CAACA,KAEJY,EAAAA,EAAAA,YAAU,WACR,GAAIf,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBgB,QAEpB,YADAF,GAAgB,GAIa,UAA3Bd,EAAkBV,MACpBwB,GAAgB,MAGnB,CAACd,IAEJ,IAKMiB,EAAaP,EACf,CACEzD,QAAS,CACPiE,MAAOjE,EAAQoD,mBAGnB,CAAEC,SAAU,KAAea,WAAW,GAEtCH,EAAU,GAYd,OAVIhB,IACFgB,EAAUhB,EAAkBoB,kBAEa,KAAvCpB,EAAkBoB,kBAClBpB,EAAkBoB,iBAAiBC,OAAS,KAE5CL,EAAUhB,EAAkBgB,WAK9B,UAAC,KAAD,gBACEpC,KAAM4B,EACNvD,QAASA,GACLgE,GAHN,IAIEK,OAAQ,QACRrD,QAAS,SAACY,EAAOC,GACA,kBAAXA,GACFb,KAGJX,UAAWL,EAAQhB,KAVrB,WAYE,UAAC,IAAD,CAAaqB,UAAWL,EAAQmB,MAAhC,WACE,iBAAKd,UAAWL,EAAQ8B,UAAxB,UACGJ,EADH,IACeP,MAEf,gBAAKd,UAAWL,EAAQ+B,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXO,GAAI,QACJjC,UAAWL,EAAQgC,YACnB/B,QAASe,EACTiB,eAAa,EACb1B,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAW+D,SAAS,KACpB,SAAC,IAAD,CACE3C,KAAMiC,EACNvD,UAAWL,EAAQuE,cACnBvD,QAAS,WA3Db6C,GAAgB,GAChBX,EAAqB,KA6DjBa,QAASA,EACTS,aAAc,CACZnE,UAAU,GAAD,OAAKL,EAAQyE,SAAb,YACP1B,GAAgD,UAA3BA,EAAkBV,KACnCrC,EAAQ0E,cACR,KAGRC,iBACE5B,GAAgD,UAA3BA,EAAkBV,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAehC,UAAWqD,EAAmB,GAAK1D,EAAQkC,QAA1D,SACGsB,a,gMCaT,KAAe5C,EAAAA,EAAAA,IA3JA,SAAC7B,GAAD,OACb8B,EAAAA,EAAAA,IAAa,QACX+D,gBAAiB,CACfC,UAAW,SAEbC,eAAgB,CACdnE,QAAS,OACToE,WAAY,SACZC,eAAgB,cAElBC,oBAAqB,CACnBnF,WAAY,GAEdoF,gBAAiB,CACfvE,QAAS,OACTwE,SAAU,EACVJ,WAAY,SACZ,QAAS,CACPI,SAAU,EACVtF,MAAO,SAGXuF,eAAgB,CACdzE,QAAS,OACTqE,eAAgB,cAElBK,WAAY,CACV3E,SAAU,GACV4E,WAAY,IACZT,UAAW,UAEbU,gBAAiB,CACf7E,SAAU,GACVxB,MAAO,OACP2F,UAAW,UAEbW,UAAW,CACTC,oBAAqB,sBACrB9E,QAAS,OACT+E,QAAS,GACTC,aAAc,KAEbC,EAAAA,OAiHP,EA9GoB,SAAC,GAOK,IANxB5F,EAMuB,EANvBA,QACA6F,EAKuB,EALvBA,UACAC,EAIuB,EAJvBA,UACAC,EAGuB,EAHvBA,aACAC,EAEuB,EAFvBA,MACAC,EACuB,EADvBA,SAEMC,EAAkB,SAACC,GACvBF,GAASG,EAAAA,EAAAA,GAAqBJ,EAAOG,MAGvCrC,EAAAA,EAAAA,YAAU,WAGR,IAFA,IAAIuC,EAAmC,GAE9BC,EAAI,EAAGA,EAAIR,EAAU1B,OAAQkC,IACpCD,EAAkBE,KAAK,CACrBC,SAAS,OAAD,OAASF,EAAEG,YACnBC,UAAU,EACVC,MAAOb,EAAUQ,GAAGM,IACpBC,QAAS,yBACTC,qBAAsB,gBAExBT,EAAkBE,KAAK,CACrBC,SAAS,OAAD,OAASF,EAAEG,YACnBC,UAAU,EACVC,MAAOb,EAAUQ,GAAGK,MACpBE,QAAS,yBACTC,qBAAsB,kBAI1B,IAAMC,GAAYC,EAAAA,EAAAA,GAAqBX,GACvCJ,EAASc,KACR,CAACjB,EAAWG,IAEf,IAAIgB,EAAiBnB,EAAUoB,KAAI,SAACC,EAAGC,GACrC,OACE,SAAC,EAAAC,SAAD,WACE,iBAAKhH,UAAWL,EAAQwF,UAAxB,WACE,SAAC,IAAD,CACElD,GAAE,cAAS8E,EAAMX,YACjBa,MAAO,GACPC,YAAa,MACbC,KAAI,cAASJ,EAAMX,YACnBE,MAAOb,EAAUsB,GAAOR,IACxBa,SAAU,SAACC,GACT,IAAIC,GAAU,OAAO7B,GACrB6B,EAAWP,GAAOR,IAAMc,EAAEE,OAAOjB,MACjCZ,EAAa4B,GACbzB,EAAgB,OAAD,OAAQkB,EAAMX,cAE/BW,MAAOA,EAEPpB,MAAOA,EAAM,OAAD,OAAQoB,EAAMX,cAAiB,IAd7C,kBAakBW,EAAMX,cAGxB,SAAC,IAAD,CACEnE,GAAE,cAAS8E,EAAMX,YACjBa,MAAO,GACPC,YAAa,QACbC,KAAI,cAASJ,EAAMX,YACnBE,MAAOb,EAAUsB,GAAOT,MACxBc,SAAU,SAACC,GACT,IAAIC,GAAU,OAAO7B,GACrB6B,EAAWP,GAAOT,MAAQe,EAAEE,OAAOjB,MACnCZ,EAAa4B,GACbzB,EAAgB,OAAD,OAAQkB,EAAMX,cAE/BW,MAAOA,EAEPpB,MAAOA,EAAM,OAAD,OAAQoB,EAAMX,cAAiB,IAd7C,kBAakBW,EAAMX,cAGxB,SAAC,IAAD,CAAStF,MAAK,cAAS0E,GAAa,aAAW,WAA/C,UACE,SAAC,IAAD,CACEtF,KAAM,QACNN,QAAS,WACP,IAAI0H,GAAU,OAAO7B,GACrB6B,EAAWpB,KAAK,CAAEK,IAAK,GAAID,MAAO,KAClCZ,EAAa4B,IALjB,UAQE,SAAC,IAAD,SAGJ,SAAC,IAAD,CAASxG,MAAM,SAAS,aAAW,cAAnC,UACE,SAAC,IAAD,CACEZ,KAAM,QACNsH,MAAO,CAAE/H,WAAY,IACrBG,QAAS,WAIP,GAHyB,IAArB6F,EAAU1B,QACZ2B,EAAa,CAAC,CAAEa,IAAK,GAAID,MAAO,MAE9Bb,EAAU1B,OAAS,EAAG,CACxB,IAAIuD,GAAU,OAAO7B,GACrB6B,EAAWG,OAAOV,EAAO,GACzBrB,EAAa4B,KAVnB,UAcE,SAAC,IAAD,YA7DR,mBAA2BP,EAAMX,gBAqErC,OAAO,SAAC,EAAAY,SAAD,UAAWJ,Q,kJChFdrE,GAAYC,EAAAA,EAAAA,KA9BD,SAACC,GAAD,MAAsB,CACrCiF,cAAejF,EAAMkF,QAAQC,cAAcF,cAC3CG,eAAgBpF,EAAMkF,QAAQC,cAAcE,cAC5CC,OAAQtF,EAAMkF,QAAQC,cAAcI,WACpCC,WAAYC,GAAAA,CAAIzF,EAAMkF,QAAQC,cAAcI,WAAY,cAAc,GACtEG,kBAAmBD,GAAAA,CACjBzF,EAAMkF,QAAQC,cAAcI,WAC5B,qBACA,GAEFI,kBAAmBF,GAAAA,CACjBzF,EAAMkF,QAAQC,cAAcI,WAC5B,qBACA,GAEFK,SAAUH,GAAAA,CAAIzF,EAAMkF,QAAQC,cAAcI,WAAY,YAAY,GAClEM,WAAYJ,GAAAA,CAAIzF,EAAMkF,QAAQC,cAAcI,WAAY,cAAc,GACtEO,eAAgBL,GAAAA,CACdzF,EAAMkF,QAAQC,cAAcI,WAC5B,kBACA,GAEFQ,UAAWN,GAAAA,CAAIzF,EAAMkF,QAAQC,cAAcI,WAAY,gBAAgB,GACvES,YAAaP,GAAAA,CACXzF,EAAMkF,QAAQC,cAAcI,WAC5B,kBACA,MAIgC,MAEpC,KAAezH,EAAAA,EAAAA,IA/DA,SAAC7B,GAAD,OACb8B,EAAAA,EAAAA,IAAa,kBACRkI,EAAAA,IADO,IAEVC,YAAa,CACXnE,UAAW,UAEboE,WAAY,CACVC,OAAQ,QAEPC,EAAAA,EAAAA,IAAmBpK,EAAMqK,QAAQ,QAsDxC,CAAkCxG,GAnDd,SAAC,GAAoD,IAAlD5C,EAAiD,EAAjDA,QAASqJ,EAAwC,EAAxCA,QAASC,EAA+B,EAA/BA,WACvC,OACE,SAAC,EAAAjC,SAAD,WACE,SAAC,IAAD,CACEkC,QAAS,CACP,CAAEjC,MAAO,MAAOkC,WAAY,OAC5B,CAAElC,MAAO,QAASkC,WAAY,UAEhCpI,WAAW,EACXiI,QAASA,EACTI,YAAa,GACbC,WAAYJ,EACZK,QAAQ,OACRC,kBAAmB5J,EAAQiJ,oB,uCC3D/BY,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,wCACD,OAEJN,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,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,0GACD,SAEJN,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,kFACD,UAEJN,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,GAC1DzD,KAAM,cACNiD,KAAM,OACNU,kBAAmB,SAAChM,EAAOiM,GACzB,IACEC,EACElM,EADFkM,WAEF,MAAO,CAACD,EAAOpM,KAAMqM,EAAWC,eAAiBF,EAAOE,cAAoC,YAArBD,EAAWnM,OAAuBkM,EAAO,QAAD,QAASG,EAAAA,EAAAA,GAAWF,EAAWnM,YAR7H4L,EAUlB,kBACD/L,EADC,EACDA,MACAsM,EAFC,EAEDA,WAFC,OAGGG,EAAAA,EAAAA,GAAS,CACbtM,MAAOH,EAAMO,QAAQS,KAAKL,YACxB2L,EAAWpJ,eAAiB,CAC9B,UAAW,CACTwJ,iBAAiBC,EAAAA,EAAAA,IAA2B,YAArBL,EAAWnM,MAAsBH,EAAMO,QAAQqM,OAAOC,OAAS7M,EAAMO,QAAQ+L,EAAWnM,OAAOM,KAAMT,EAAMO,QAAQqM,OAAOE,cAEjJ,uBAAwB,CACtBJ,gBAAiB,iBAGC,YAArBJ,EAAWnM,QAAX,2BACK4M,EAAAA,QADL,eACmCA,EAAAA,eAAkC,CACpE5M,MAAOH,EAAMO,QAAQ+L,EAAWnM,OAAOM,QAFxC,qBAIKsM,EAAAA,UAA6B,CACjC5M,MAAOH,EAAMO,QAAQqM,OAAOzL,WAL7B,OASG6L,GAAkCxB,EAAAA,EAAAA,KAAKyB,EAAc,IAErDC,GAA2B1B,EAAAA,EAAAA,KAAK2B,EAA0B,IAE1DC,GAAwC5B,EAAAA,EAAAA,KAAK6B,EAA2B,IAoK9E,EAlK8BC,EAAAA,YAAiB,SAAkBC,EAASC,GACxE,IAAIC,EAAsBC,EAEpBtN,GAAQuN,EAAAA,EAAAA,GAAc,CAC1BvN,MAAOmN,EACP9E,KAAM,gBAGR,EAQIrI,EAPFwN,YAAAA,OADF,MACgBZ,EADhB,IAQI5M,EANFD,MAAAA,OAFF,MAEU,UAFV,IAQIC,EALFiB,KAAMwM,OAHR,MAGmBX,EAHnB,IAQI9M,EAJFmM,cAAAA,OAJF,WAQInM,EAHF0N,kBAAmBC,OALrB,MAK6CX,EAL7C,EAMEY,EAEE5N,EAFF4N,WANF,EAQI5N,EADFoB,KAAAA,OAPF,MAOS,SAPT,EASMyM,GAAQC,EAAAA,EAAAA,GAA8B9N,EAAOyL,GAE7CxK,EAAOkL,EAAgBwB,EAAwBF,EAC/CC,EAAoBvB,EAAgBwB,EAAwBH,EAE5DtB,GAAaG,EAAAA,EAAAA,GAAS,GAAIrM,EAAO,CACrCD,MAAAA,EACAoM,cAAAA,EACA/K,KAAAA,IAGIP,EA/EkB,SAAAqL,GACxB,IACErL,EAGEqL,EAHFrL,QACAsL,EAEED,EAFFC,cACApM,EACEmM,EADFnM,MAEIgO,EAAQ,CACZlO,KAAM,CAAC,OAAQsM,GAAiB,gBAA1B,gBAAmDC,EAAAA,EAAAA,GAAWrM,MAEhEiO,GAAkBC,EAAAA,EAAAA,GAAeF,EAAO1C,EAAyBxK,GACvE,OAAOwL,EAAAA,EAAAA,GAAS,GAAIxL,EAASmN,GAqEbE,CAAkBhC,GAClC,OAAoBd,EAAAA,EAAAA,KAAKM,GAAcW,EAAAA,EAAAA,GAAS,CAC9CnJ,KAAM,WACN0K,YAAYvB,EAAAA,EAAAA,GAAS,CACnB,qBAAsBF,GACrByB,GACH3M,KAAmBiM,EAAAA,aAAmBjM,EAAM,CAC1CM,SAA0D,OAA/C8L,EAAuBpM,EAAKjB,MAAMuB,UAAoB8L,EAAuBjM,IAE1FoM,YAA0BN,EAAAA,aAAmBQ,EAAmB,CAC9DnM,SAAwE,OAA7D+L,EAAwBI,EAAkB1N,MAAMuB,UAAoB+L,EAAwBlM,IAEzG8K,WAAYA,EACZkB,IAAKA,GACJS,EAAO,CACRhN,QAASA,S,sBChHb,IAAIsN,EAAaxD,EAAQ,OACrByD,EAAUzD,EAAQ,OAClB0D,EAAe1D,EAAQ,OA2B3B2D,EAAO1D,QALP,SAAkBpD,GAChB,MAAuB,iBAATA,IACV4G,EAAQ5G,IAAU6G,EAAa7G,IArBrB,mBAqB+B2G,EAAW3G","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/6041.a11c2e9a.chunk.js b/portal-ui/build/static/js/6041.a11c2e9a.chunk.js deleted file mode 100644 index f0dbcb7d7..000000000 --- a/portal-ui/build/static/js/6041.a11c2e9a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(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(93656),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(29439),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.a11c2e9a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6041.a11c2e9a.chunk.js.map b/portal-ui/build/static/js/6041.a11c2e9a.chunk.js.map deleted file mode 100644 index ac3281fbe..000000000 --- a/portal-ui/build/static/js/6041.a11c2e9a.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6041.a11c2e9a.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.ac2c3fb7.chunk.js b/portal-ui/build/static/js/6137.ac2c3fb7.chunk.js deleted file mode 100644 index 7ef46e198..000000000 --- a/portal-ui/build/static/js/6137.ac2c3fb7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(93656),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(29439),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.ac2c3fb7.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6137.ac2c3fb7.chunk.js.map b/portal-ui/build/static/js/6137.ac2c3fb7.chunk.js.map deleted file mode 100644 index 0e61e4ffe..000000000 --- a/portal-ui/build/static/js/6137.ac2c3fb7.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6137.ac2c3fb7.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/6137.c0b24aaa.chunk.js b/portal-ui/build/static/js/6137.c0b24aaa.chunk.js new file mode 100644 index 000000000..b9bec19a7 --- /dev/null +++ b/portal-ui/build/static/js/6137.c0b24aaa.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6137],{75578:function(e,t,o){var n=o(1413),r=o(72791),a=o(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function o(o){return(0,a.jsx)(r.Suspense,{fallback:t,children:(0,a.jsx)(e,(0,n.Z)({},o))})}return o}},96137:function(e,t,o){o.r(t);var n=o(29439),r=o(1413),a=o(72791),l=o(60364),i=o(26181),s=o.n(i),c=o(61889),p=o(11135),d=o(25787),u=o(36151),m=o(81207),g=o(42649),f=o(15514),h=o(23814),y=o(32291),b=o(62666),S=o(75578),T=o(84669),v=o(74794),E=o(56087),k=o(80184),A=(0,S.Z)(a.lazy((function(){return o.e(4781).then(o.bind(o,84781))}))),_=(0,S.Z)(a.lazy((function(){return o.e(9478).then(o.bind(o,29478))}))),x=(0,S.Z)(a.lazy((function(){return o.e(7164).then(o.bind(o,27164))}))),N={serverNeedsRestart:g.o8,setErrorSnackMessage:g.Ih},L=(0,l.$j)(null,N);t.default=L((0,d.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},h.oO),h.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,o=e.saveAndRefresh,r=e.serverNeedsRestart,l=e.classes,i=e.setErrorSnackMessage,p=(0,a.useState)([]),d=(0,n.Z)(p,2),g=d[0],h=d[1],S=(0,a.useState)(!1),N=(0,n.Z)(S,2),L=N[0],q=N[1],w=t.params.service;(0,a.useEffect)((function(){if(L){var e={key_values:(0,f.DD)(g)};m.Z.invoke("PUT","/api/v1/configs/".concat(w),e).then((function(){q(!1),r(!0),b.Z.push(E.gA.NOTIFICATIONS_ENDPOINTS)})).catch((function(e){q(!1),i(e)}))}}),[L,r,w,g,o,i]);var C,j=(0,a.useCallback)((function(e){h(e)}),[h]);switch(w){case f.ee:C=(0,k.jsx)(x,{onChange:j});break;case f.dM:C=(0,k.jsx)(A,{onChange:j});break;default:var Z=s()(f.oj,w,[]);C=(0,k.jsx)(_,{fields:Z,onChange:j})}var I=f.BR.find((function(e){return e.actionTrigger===w}));return(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(y.Z,{label:(0,k.jsx)(a.Fragment,{children:(0,k.jsx)(T.Z,{to:E.gA.NOTIFICATIONS_ENDPOINTS_ADD,label:"Notification Endpoint"})}),actions:(0,k.jsx)(a.Fragment,{})}),(0,k.jsx)(v.Z,{children:(0,k.jsx)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),q(!0)},children:""!==w&&(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:I&&(0,k.jsxs)("div",{className:l.lambdaNotif,children:[(0,k.jsx)("div",{className:l.lambdaNotifIcon,children:(0,k.jsx)("img",{src:I.logo,className:l.logoButton,alt:I.targetTitle})}),(0,k.jsx)("div",{className:l.lambdaNotifTitle,children:(0,k.jsxs)("b",{children:[I?I.targetTitle:"","Notification Endpoint"]})})]},"icon-".concat(I.targetTitle))}),(0,k.jsxs)("div",{className:l.formBox,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:l.configForm,children:C}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:l.settingsButtonContainer,children:(0,k.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:L,children:"Save Notification Target"})})]})]})})})]})})))},15514:function(e,t,o){o.d(t,{BR:function(){return h},DD:function(){return b},dM:function(){return l},ee:function(){return a},fk:function(){return f},oj:function(){return S}});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",u="notify_elasticsearch",m="notify_webhook",g="notify_nsq",f=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},h=[{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:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,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}))},S=(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,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,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=6137.c0b24aaa.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6137.c0b24aaa.chunk.js.map b/portal-ui/build/static/js/6137.c0b24aaa.chunk.js.map new file mode 100644 index 000000000..d34072f52 --- /dev/null +++ b/portal-ui/build/static/js/6137.c0b24aaa.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6137.c0b24aaa.chunk.js","mappings":"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","sources":["screens/Console/Common/Components/withSuspense.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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

    (\n WrappedComponent: ComponentType

    ,\n fallback: SuspenseProps[\"fallback\"] = null\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, 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":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","ConfMySql","withSuspense","React","ConfTargetGeneric","ConfPostgres","mapDispatchToProps","serverNeedsRestart","setErrorSnackMessage","connector","connect","withStyles","theme","createStyles","modalBasic","settingsCommon","lambdaNotif","background","border","borderRadius","height","display","alignItems","justifyContent","marginBottom","cursor","padding","overflow","lambdaNotifIcon","backgroundColor","width","maxWidth","maxHeight","lambdaNotifTitle","color","fontSize","fontFamily","paddingLeft","formBox","match","saveAndRefresh","classes","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","Fragment","label","to","actions","noValidate","onSubmit","event","preventDefault","item","xs","className","src","logo","logoButton","alt","targetTitle","configForm","settingsButtonContainer","type","variant","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/6233.589f83fe.chunk.js b/portal-ui/build/static/js/6233.589f83fe.chunk.js deleted file mode 100644 index 89a4b329f..000000000 --- a/portal-ui/build/static/js/6233.589f83fe.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(93656),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(93433),x=t(29439),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(93656),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(29439),o=t(1413),a=t(72791),s=t(26181),r=t.n(s),c=t(60364),l=t(11135),d=t(25787),u=t(78029),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(29439),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(93656),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(29439),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(29439),o=t(1413),a=t(72791),s=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),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(93656),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(29439),o=t(64554),a=t(36151),s=t(21435),r=t(93656),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.589f83fe.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.589f83fe.chunk.js.map b/portal-ui/build/static/js/6233.589f83fe.chunk.js.map deleted file mode 100644 index 7ef90fd98..000000000 --- a/portal-ui/build/static/js/6233.589f83fe.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6233.589f83fe.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/6233.f8460b26.chunk.js b/portal-ui/build/static/js/6233.f8460b26.chunk.js new file mode 100644 index 000000000..44b84df0f --- /dev/null +++ b/portal-ui/build/static/js/6233.f8460b26.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6233],{56233:function(e,n,t){t.r(n),t.d(n,{default:function(){return at}});var i=t(1413),s=t(72791),o=t(60364),a=t(11135),r=t(25787),c=t(20068),l=t(13400),d=t(61889),u=t(26181),f=t.n(u),h=t(23814),m=t(3925),p=t(93433),x=t(29439),b=t(57831),j=t(79271),g=t(81207),v=t(92983),Z=t(45248),S=t(20890),k=t(82422),y=t(91523),w=t(93656),C=t(36151),N=t(62666),E=t(38442),_=t(56087),F=t(75578),P=t(80184),T=(0,F.Z)(s.lazy((function(){return t.e(3678).then(t.bind(t,83678))}))),I={setVersionsModeEnabled:m.db},D=(0,o.$j)((function(e){var n=e.objectBrowser;return{rewindEnabled:f()(n,"rewind.rewindEnabled",!1),versionsMode:f()(n,"versionsMode",!1),versionedFile:f()(n,"versionedFile","")}}),I),O=(0,r.Z)((function(e){return(0,a.Z)((0,i.Z)({},h.cx))}))(D((function(e){var n=e.classes,t=e.bucketName,i=e.internalPaths,o=e.rewindEnabled,a=e.existingFiles,r=e.versionsMode,u=e.versionedFile,f=e.hidePathButton,h=e.setVersionsModeEnabled,m=e.additionalOptions,b=(0,s.useState)(!1),j=(0,x.Z)(b,2),g=j[0],v=j[1],S=i;""!==i&&(S="/".concat(i));var k=S.split("/").filter((function(e){return""!==e})),F=k.length-1,I=k.map((function(e,n){var i=k.slice(0,n+1).join("/"),o="/buckets/".concat(t,"/browse/").concat(i?"".concat((0,Z.ug)(i)):"");return n===F&&e===u?null:(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)("span",{children:" / "}),(0,P.jsx)(y.rU,{to:o,onClick:function(){h(!1)},children:e})]},"breadcrumbs-".concat(n.toString()))})),D=[];r&&(D=[(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("span",{children:[" / ",u," - Versions"]})},"breadcrumbs-versionedItem")]);var O=[(0,P.jsx)(s.Fragment,{children:(0,P.jsx)(y.rU,{to:"/buckets/".concat(t,"/browse"),onClick:function(){h(!1)},children:t})},"breadcrumbs-root-path")].concat((0,p.Z)(I),(0,p.Z)(D));return(0,P.jsxs)("div",{className:n.breadcrumbsMain,children:[g&&(0,P.jsx)(T,{modalOpen:g,bucketName:t,folderName:i,onClose:function(){v(!1)},existingFiles:a}),(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.breadcrumbs),children:[(0,P.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,P.jsx)(w.ub,{})}),(0,P.jsx)("div",{className:n.breadcrumbsList,dir:"rtl",children:O}),(0,P.jsx)("div",{className:n.additionalOptions,children:m})]}),!f&&(0,P.jsx)(c.Z,{title:"Choose or create a new path",children:(0,P.jsx)(C.Z,{id:"new-path",onClick:function(){v(!0)},disabled:o||!(0,E.F)(t,[_.Ft.S3_PUT_OBJECT]),endIcon:(0,P.jsx)(w.N$,{}),disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,sx:{color:"#969FA8",border:"#969FA8 1px solid",whiteSpace:"nowrap",minWidth:"160px"},variant:"outlined",children:"Create new path"})})]})}))),M=t(47922),B=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,a.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,o=void 0!==i&&i,a=e.uploadFileFunction,r=e.uploadFolderFunction,c=e.classes,l=s.useState(null),d=(0,x.Z)(l,2),u=d[0],f=d[1],h=Boolean(u),m=function(){f(null)},p=(0,E.F)(n,[_.Ft.S3_PUT_OBJECT]),b=(0,E.F)(t,[_.Ft.S3_PUT_OBJECT],!1,!0),j=p||b;return(0,P.jsxs)(s.Fragment,{children:[(0,P.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){f(e.currentTarget)},text:"Upload",icon:(0,P.jsx)(w.rG,{}),color:"primary",variant:"contained",disabled:o||!j}),(0,P.jsxs)(A.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:u,open:h,onClose:function(){m()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,P.jsxs)(V.Z,{onClick:function(){a(m)},disabled:!p||o,children:[(0,P.jsx)(G.Z,{className:c.listUploadIcons,children:(0,P.jsx)(w.rG,{})}),(0,P.jsx)(U.Z,{children:"Upload File"})]}),(0,P.jsxs)(V.Z,{onClick:function(){r(m)},disabled:!b||o,children:[(0,P.jsx)(G.Z,{className:c.listUploadIcons,children:(0,P.jsx)(w.oX,{})}),(0,P.jsx)(U.Z,{children:"Upload Folder"})]})]})]})})),K=(0,r.Z)((function(e){return(0,a.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,s=e.children;return(0,P.jsxs)(d.ZP,{item:!0,className:"".concat(n.detailsList," ").concat(t?"open":""),children:[(0,P.jsx)(l.Z,{onClick:i,className:n.closePanel,children:(0,P.jsx)(w.ot,{})}),s]})})),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),se=t(83679),oe=t(4942),ae=t(28182),re=t(30829),ce=t(68096),le=t(58406),de=t(4834),ue=t(84570),fe=(0,r.Z)((function(e){return(0,a.Z)({root:{"& .MuiSelect-icon":{color:"#000","&.Mui-disabled":{color:"#9c9c9c"}}},input:{borderBottom:0,fontSize:12}})}))(de.ZP),he=(0,s.forwardRef)((function(e,n){var t=e.classes,i=e.id,o=e.label,a=e.disableOptions,r=void 0!==a&&a,l=e.addSwitch,u=void 0!==l&&l,f=e.tooltip,h=void 0===f?"":f,m=e.borderBottom,p=void 0!==m&&m,b=e.onDateChange,j=e.value,g=void 0===j?"":j;(0,s.useImperativeHandle)(n,(function(){return{resetDate:B}}));var v=(0,s.useState)(!1),Z=(0,x.Z)(v,2),S=Z[0],k=Z[1],y=(0,s.useState)(""),w=(0,x.Z)(y,2),C=w[0],N=w[1],E=(0,s.useState)(""),_=(0,x.Z)(E,2),F=_[0],T=_[1],I=(0,s.useState)(""),D=(0,x.Z)(I,2),O=D[0],M=D[1];(0,s.useEffect)((function(){if(""!==g){var e=g.split("-");M(e[0]),N(e[1]),T("".concat(parseInt(e[2])))}}),[g]),(0,s.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var s=parseInt(n),o=parseInt(t),a=s<10?"0".concat(s):s,r=o<10?"0".concat(o):o,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(a,"-").concat(r);return[c===l,l]}(O,C,F),n=(0,x.Z)(e,2),t=n[0],i=n[1];b(i,t)}),[C,F,O,b]);var B=function(){N(""),T(""),M("")},L=function(){return r||!!u&&!S};return(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:(0,ae.Z)(t.fieldContainer,(0,oe.Z)({},t.fieldContainerBorder,p)),children:[(0,P.jsx)("div",{className:t.labelContainer,children:(0,P.jsxs)(d.ZP,{container:!0,children:[(0,P.jsxs)(re.Z,{htmlFor:i,className:t.inputLabel,children:[(0,P.jsx)("span",{children:o}),""!==h&&(0,P.jsx)("div",{className:t.tooltipContainer,children:(0,P.jsx)(c.Z,{title:h,placement:"top-start",children:(0,P.jsx)("div",{className:t.tooltip,children:(0,P.jsx)(ue.Z,{})})})})]}),u&&(0,P.jsx)(ie.Z,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:S,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){k(e.target.checked),e.target.checked||b("",!0)},switchOnly:!0})]})}),(0,P.jsxs)("div",{children:[(0,P.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:C,displayEmpty:!0,onChange:function(e){N(e.target.value)},input:(0,P.jsx)(fe,{}),children:[(0,P.jsx)(V.Z,{value:"",disabled:!0,children:""}),X.map((function(e){return(0,P.jsx)(V.Z,{value:e.value,children:e.label},"select-".concat(i,"-monthOP-").concat(e.label))}))]})}),(0,P.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:F,displayEmpty:!0,onChange:function(e){T(e.target.value)},input:(0,P.jsx)(fe,{}),children:[(0,P.jsx)(V.Z,{value:"",disabled:!0,children:""}),Q.map((function(e){return(0,P.jsx)(V.Z,{value:e,children:e},"select-".concat(i,"-dayOP-").concat(e))}))]})}),(0,P.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:O,displayEmpty:!0,onChange:function(e){M(e.target.value)},input:(0,P.jsx)(fe,{}),children:[(0,P.jsx)(V.Z,{value:"",disabled:!0,children:""}),ne.map((function(e){return(0,P.jsx)(V.Z,{value:e,children:e},"select-".concat(i,"-yearOP-").concat(e))}))]})})]})]})})),me=(0,r.Z)((function(e){return(0,a.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:B.zb},xe=(0,o.$j)(null,pe),be=(0,r.Z)((function(e){return(0,a.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,o=e.objectName,a=e.objectInfo,r=e.bucketName,c=e.setModalErrorSnackMessage,l=(0,s.useState)(!0),u=(0,x.Z)(l,2),f=u[0],h=u[1],m=(0,s.useState)(""),p=(0,x.Z)(m,2),b=p[0],j=p[1],v=(0,s.useState)(""),S=(0,x.Z)(v,2),k=S[0],y=S[1],w=(0,s.useState)(!1),N=(0,x.Z)(w,2),E=N[0],_=N[1],F=(0,s.useState)(!1),T=(0,x.Z)(F,2),I=T[0],D=T[1],O=(0,s.useState)(!1),M=(0,x.Z)(O,2),B=M[0],L=M[1];(0,s.useEffect)((function(){if(a.retention_mode&&(j(a.retention_mode.toLowerCase()),L(!0)),a.retention_until_date){var e=new Date(a.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(s=e.getMonth()+1)<10?"0".concat(s):"".concat(s),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||y("".concat(n,"-").concat(t,"-").concat(i))}L(!0)}var s}),[a]);var R=(0,s.useRef)(null),z=function(){h(!1),j(""),R.current&&R.current.resetDate()},A=B&&("governance"===b||""===b);return(0,P.jsxs)(te.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){z(),i(!1)},children:[(0,P.jsxs)("div",{className:n.spacerBottom,children:[(0,P.jsx)("strong",{children:"Selected Object"}),": ",o]}),(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[A&&(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(ie.Z,{value:"status",id:"status",name:"status",checked:f,onChange:function(e){h(!f)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(se.Z,{currentSelection:b,id:"type",name:"type",label:"Type",disableOptions:!f||B&&""!==b,onChange:function(e){j(e.target.value)},selectorOptions:[{label:"Governance",value:"governance"},{label:"Compliance",value:"compliance"}]})}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,P.jsx)(me,{id:"date",label:"Date",disableOptions:!(f&&("governance"===b||"compliance"===b)),ref:R,value:k,borderBottom:!0,onDateChange:function(e,n){_(n),n&&y(e)}})}),(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,P.jsx)(C.Z,{type:"button",variant:"outlined",color:"primary",onClick:z,children:"Reset"}),(0,P.jsx)(C.Z,{type:"submit",variant:"contained",color:"primary",disabled:f&&""===b||f&&!E||I,onClick:function(){D(!0);var e=a.name,n=a.version_id,t=f||"governance"!==b?"".concat(k,"T23:59:59Z"):"";f||"governance"!==b?function(e,n,t){g.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){D(!1),i(!0)})).catch((function(e){c(e),D(!1)}))}(e,n,t):function(e,n){g.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.ug)(e),"&version_id=").concat(n)).then((function(){D(!1),i(!0)})).catch((function(e){c(e),D(!1)}))}(e,n)},children:"Save"})]})]})]})}))),je=t(51691),ge=t(2148),ve=t(9505),Ze={setErrorSnackMessage:B.Ih},Se=(0,o.$j)(null,Ze)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,a=e.setErrorSnackMessage,r=e.versioning,c=e.selectedVersion,l=void 0===c?"":c,d=(0,ve.Z)((function(){return n(!0)}),(function(e){return a(e)})),u=(0,x.Z)(d,2),f=u[0],h=u[1],m=(0,s.useState)(!1),p=(0,x.Z)(m,2),b=p[0],j=p[1];if(!o)return null;return(0,P.jsx)(ge.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,P.jsx)(w.Nv,{}),isLoading:f,onConfirm:function(){var e=(0,Z.le)(o).endsWith("/");h("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(o).concat(""!==l?"&version_id=".concat(l):"&recursive=".concat(e,"&all_versions=").concat(b)))},onClose:function(){return n(!1)},confirmationContent:(0,P.jsxs)(je.Z,{children:["Are you sure you want to delete: ",(0,P.jsx)("br",{}),(0,P.jsx)("b",{children:(0,Z.le)(o)})," ",""!==l?(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"Version ID:",(0,P.jsx)("br",{}),(0,P.jsx)("strong",{children:l})]}):"","? ",(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),r&&""===l&&(0,P.jsx)(ie.Z,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:b,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){j(!b)},description:""})]})})})),ke={setModalErrorSnackMessage:B.zb},ye=(0,o.$j)(null,ke),we=(0,r.Z)((function(e){return(0,a.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.DF),h.ID),h.bK))}))(ye((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,o=e.objectName,a=e.bucketName,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=(0,s.useState)(!1),u=(0,x.Z)(l,2),h=u[0],m=u[1],p=(0,s.useState)(!1),b=(0,x.Z)(p,2),j=b[0],v=b[1],S=r.version_id;(0,s.useEffect)((function(){var e=f()(r,"legal_hold_status","OFF");m("ON"===e)}),[r]);var k=function(){m(!1)};return(0,P.jsxs)(te.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){k(),i(!1)},children:[(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",a]}),(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),v(!0),g.Z.invoke("PUT","/api/v1/buckets/".concat(a,"/objects/legalhold?prefix=").concat((0,Z.ug)(o),"&version_id=").concat(S),{status:h?"enabled":"disabled"}).then((function(){v(!1),i(!0)})).catch((function(e){c(e),v(!1)}))}(e)},children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(ie.Z,{value:"legalhold",id:"legalhold",name:"legalhold",checked:h,onChange:function(e){m(!h)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,P.jsx)(C.Z,{type:"button",color:"primary",variant:"outlined",onClick:k,children:"Clear"}),(0,P.jsx)(C.Z,{type:"submit",variant:"contained",color:"primary",disabled:j,children:"Save"})]})]})]})}))),Ce=t(78562),Ne=t(79836),Ee=t(53382),_e=t(35855),Fe=t(53994),Pe=(0,r.Z)((function(e){return(0,a.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,o=e.actualInfo,a=e.linear,r=void 0!==a&&a,c=(0,s.useState)({}),l=(0,x.Z)(c,2),u=l[0],h=l[1],m=(0,ve.Z)((function(e){var n=f()(e,"objectMetadata",{});h(n)}),(function(e){return!1})),p=(0,x.Z)(m,2)[1],b=Object.keys(u),j=(0,s.useCallback)((function(){p("GET","/api/v1/buckets/".concat(n,"/objects/metadata?prefix=").concat(t))}),[n,t,o]);return(0,s.useEffect)((function(){o&&j()}),[o,j]),r?(0,P.jsx)(s.Fragment,{children:b.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,P.jsxs)(Y.Z,{className:i.metadataLinear,children:[(0,P.jsx)("strong",{children:e}),(0,P.jsx)("br",{}),t]},"box-meta-".concat(e,"-").concat(n.toString()))}))}):(0,P.jsxs)(d.ZP,{container:!0,children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,P.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,P.jsx)(d.ZP,{item:!0,xs:12,children:(0,P.jsx)(Ne.Z,{className:i.table,"aria-label":"simple table",children:(0,P.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,P.jsxs)(_e.Z,{children:[(0,P.jsx)(Fe.Z,{component:"th",scope:"row",className:i.titleItem,children:e}),(0,P.jsx)(Fe.Z,{align:"right",children:t})]},"tRow-".concat(n.toString()))}))})})})]})})),Te=t(45987),Ie=["disabled","onClick","icon","label","classes"],De=(0,r.Z)((function(e){return(0,a.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,s=e.icon,o=e.label,a=e.classes,r=(0,Te.Z)(e,Ie);return(0,P.jsx)(C.Z,(0,i.Z)((0,i.Z)({},r),{},{disabled:n,onClick:t,className:a.root,startIcon:s,children:(0,P.jsx)("span",{className:"buttonItem",children:o})}))})),Oe=(0,r.Z)((function(){return(0,a.Z)((0,i.Z)({},h.$b))}))((function(e){var n=e.items,t=e.classes,i=e.title;return(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)("div",{className:t.titleLabel,children:i}),(0,P.jsxs)("ul",{className:t.objectActions,children:[(0,P.jsx)("li",{children:"Actions:"}),n.map((function(e,n){return(0,P.jsx)("li",{children:(0,P.jsx)(De,{label:e.label,icon:e.icon,onClick:e.action,disabled:e.disabled})},"action-element-".concat(n.toString()))}))]})]})})),Me=t(37762),Be=t(71863),Le=t(82314),Re=(0,r.Z)((function(e){return(0,a.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,P.jsxs)("div",{className:e.classes.fileName,children:[e.icon,(0,P.jsx)("span",{className:e.classes.fileNameText,children:e.strings[e.strings.length-1]})]})})),ze=s.lazy((function(){return Promise.resolve().then(t.bind(t,76181))})),Ae=s.lazy((function(){return Promise.resolve().then(t.bind(t,49563))})),Ve=s.lazy((function(){return Promise.resolve().then(t.bind(t,21733))})),Ue=s.lazy((function(){return Promise.resolve().then(t.bind(t,95232))})),Ge=s.lazy((function(){return Promise.resolve().then(t.bind(t,27529))})),We=s.lazy((function(){return Promise.resolve().then(t.bind(t,60527))})),He=s.lazy((function(){return Promise.resolve().then(t.bind(t,69812))})),Ke=s.lazy((function(){return Promise.resolve().then(t.bind(t,46454))})),Je=s.lazy((function(){return Promise.resolve().then(t.bind(t,84820))})),Ye=s.lazy((function(){return Promise.resolve().then(t.bind(t,40599))})),$e=s.lazy((function(){return Promise.resolve().then(t.bind(t,72995))})),qe=s.lazy((function(){return Promise.resolve().then(t.bind(t,34171))})),Xe=s.lazy((function(){return Promise.resolve().then(t.bind(t,30745))})),Qe=s.lazy((function(){return Promise.resolve().then(t.bind(t,84033))})),en=s.lazy((function(){return Promise.resolve().then(t.bind(t,52009))})),nn=[{icon:(0,P.jsx)(Xe,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,P.jsx)(Je,{}),extensions:["mp3","m4a","aac"]},{icon:(0,P.jsx)(Ye,{}),extensions:["pdf"]},{icon:(0,P.jsx)($e,{}),extensions:["ppt","pptx"]},{icon:(0,P.jsx)(Qe,{}),extensions:["xls","xlsx"]},{icon:(0,P.jsx)(He,{}),extensions:["cer","crt","pem"]},{icon:(0,P.jsx)(Ae,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,P.jsx)(Ve,{}),extensions:["cfg","yaml"]},{icon:(0,P.jsx)(Ue,{}),extensions:["sql"]},{icon:(0,P.jsx)(Ge,{}),extensions:["ttf","otf"]},{icon:(0,P.jsx)(qe,{}),extensions:["txt"]},{icon:(0,P.jsx)(en,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,P.jsx)(ze,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,P.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,P.jsx)(Be.Z,{});e.endsWith("/")&&(i=(0,P.jsx)(Le.Z,{}),t=e.slice(0,-1));var s,o=e.toLowerCase(),a=(0,Me.Z)(nn);try{for(a.s();!(s=a.n()).done;){var r,c=s.value,l=(0,Me.Z)(c.extensions);try{for(l.s();!(r=l.n()).done;){var d=r.value;o.endsWith(".".concat(d))&&(i=c.icon)}}catch(f){l.e(f)}finally{l.f()}}}catch(f){a.e(f)}finally{a.f()}!e.endsWith("/")&&e.indexOf(".")<0&&(i=(0,P.jsx)(Ke,{}));var u=t.split("/");return n?i:(0,P.jsx)(Re,{icon:i,strings:u})},sn=t(21435),on=t(81918),an=t(29823),rn={setModalErrorSnackMessage:B.zb},cn=(0,o.$j)((function(e){var n=e.system;return{distributedSetup:f()(n,"distributedSetup",!1)}}),rn),ln=(0,r.Z)((function(e){return(0,a.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,o=e.bucketName,a=e.distributedSetup,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=e.classes,u=(0,s.useState)(""),h=(0,x.Z)(u,2),m=h[0],p=h[1],b=(0,s.useState)(""),j=(0,x.Z)(b,2),v=j[0],S=j[1],k=(0,s.useState)(!1),y=(0,x.Z)(k,2),N=y[0],F=y[1],T=(0,s.useState)(!1),I=(0,x.Z)(T,2),D=I[0],O=I[1],M=(0,s.useState)(""),B=(0,x.Z)(M,2),L=B[0],R=B[1],z=(0,s.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,P.jsx)(s.Fragment,{children:(0,P.jsx)(te.Z,{modalOpen:n,title:D?"Delete Tag":"Edit Tags for ".concat(K),onClose:function(){t(!0)},titleIcon:(0,P.jsx)(w.Dg,{}),children:D?(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)(d.ZP,{container:!0,children:["Are you sure you want to delete the tag"," ",(0,P.jsxs)("b",{className:l.wrapText,children:[L," : ",V]})," ","from ",K,"?",(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,P.jsx)(C.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){R(""),U(""),O(!1)},children:"No"}),(0,P.jsx)(C.Z,{type:"submit",variant:"outlined",color:"secondary",onClick:function(){var e=(0,i.Z)({},W);delete e[L];var n=a?r.version_id:"null";g.Z.invoke("PUT","/api/v1/buckets/".concat(o,"/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,P.jsxs)(d.ZP,{container:!0,children:[(0,P.jsx)(E.s,{scopes:[_.Ft.S3_GET_OBJECT_TAGGING],resource:o,children:(0,P.jsxs)(Y.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,P.jsx)("strong",{children:"Current Tags:"}),0===H.length?"No Tags for this object":"",(0,P.jsx)(Y.Z,{children:H.map((function(e,n){var t=f()(W,"".concat(e),"");return""!==t?(0,P.jsx)(E.s,{scopes:[_.Ft.S3_DELETE_OBJECT_TAGGING],resource:o,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,P.jsx)(on.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,P.jsx)(an.Z,{}),onDelete:function(){!function(e,n){R(e),U(n),O(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})}),(0,P.jsx)(E.s,{scopes:[_.Ft.S3_PUT_OBJECT_TAGGING],resource:o,errorProps:{disabled:!0,onClick:null},children:(0,P.jsxs)(d.ZP,{container:!0,children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,className:l.newTileHeader,children:"Add New Tag"}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,P.jsx)(sn.Z,{value:m,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){p(e.target.value)}})}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,P.jsx)(sn.Z,{value:v,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){S(e.target.value)}})}),(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,P.jsx)(C.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){S(""),p("")},children:"Clear"}),(0,P.jsx)(C.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===v.trim()||""===m.trim()||N,onClick:function(){F(!0);var e={};e[m]=v;var n=(0,i.Z)((0,i.Z)({},W),e),s=a?r.version_id:"null";g.Z.invoke("PUT","/api/v1/buckets/".concat(o,"/objects/tags?prefix=").concat(G,"&version_id=").concat(s),{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),fn=t.n(un),hn=t(73669),mn={setErrorSnackMessage:B.Ih},pn=(0,o.$j)(null,mn),xn=(0,r.Z)((function(e){return(0,a.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,o=e.inspectPath,a=e.volumeName,r=e.setErrorSnackMessage,c=function(){return t(!1)},l=(0,s.useState)(!0),u=(0,x.Z)(l,2),f=u[0],h=u[1],m=(0,s.useState)(""),p=(0,x.Z)(m,2),b=p[0],j=p[1],g=(0,s.useState)(""),v=(0,x.Z)(g,2),S=v[0],k=v[1];if(!o)return null;var y=function(){var e=(0,dn.Z)(fn().mark((function e(n){return fn().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)(fn().mark((function e(){var n,t,i;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=encodeURIComponent(o+"/xl.meta"),t=encodeURIComponent(a),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(f),y(i).then(function(){var e=(0,dn.Z)(fn().mark((function e(n){var t,i,s,o;return fn().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,s=n.headers.get("content-disposition").split('"')[1],o=(0,Z.Do)(s)||"",(0,Z.zZ)(i,s),k(s),""!==o){e.next=15;break}return c(),e.abrupt("return");case 15:j(o);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,P.jsxs)(s.Fragment,{children:[!b&&(0,P.jsx)(te.Z,{modalOpen:i,titleIcon:(0,P.jsx)($.Gp,{}),title:"Inspect Object",onClose:c,children:(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,P.jsx)("b",{children:(0,Z.le)(o)}),"?"," ",(0,P.jsx)("br",{}),(0,P.jsx)(ie.Z,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:f,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){h(!f)},description:""}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:(0,P.jsx)(C.Z,{type:"submit",variant:"contained",color:"primary",onClick:N,children:"Inspect"})})]})}),b?(0,P.jsx)(te.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,Z.kT)(S),c(),j("")},titleIcon:(0,P.jsx)(w.tv,{}),children:(0,P.jsxs)(je.Z,{children:[(0,P.jsxs)(Y.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,P.jsx)("br",{}),"Use secure medium to share this key."]}),(0,P.jsx)(Y.Z,{children:(0,P.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},jn={setErrorSnackMessage:B.Ih,setSnackBarMessage:B.y1,setNewObject:m.Mc,updateProgress:m.RO,completeObject:m.oK,setVersionsModeEnabled:m.db,setLoadingObjectInfo:m.vH,setLoadingVersions:m.Eq,setSelectedVersion:m.M3},gn=(0,o.$j)((function(e){var n=e.objectBrowser,t=e.system;return{rewindEnabled:f()(n,"rewind.rewindEnabled",!1),rewindDate:f()(n,"rewind.dateToRewind",null),bucketToRewind:f()(n,"rewind.bucketToRewind",""),distributedSetup:f()(t,"distributedSetup",!1),versionsMode:f()(n,"versionsMode",!1),selectedVersion:f()(n,"selectedVersion",""),loadingObjectInfo:f()(n,"loadingObjectInfo",!1)}}),jn)((0,r.Z)((function(){return(0,a.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,o=e.distributedSetup,a=e.versioning,r=e.locking,c=e.setErrorSnackMessage,l=e.setNewObject,u=e.updateProgress,h=e.completeObject,m=e.versionsMode,p=e.selectedVersion,b=e.onClosePanel,j=e.setVersionsModeEnabled,v=e.loadingObjectInfo,S=e.setLoadingObjectInfo,k=e.setLoadingVersions,y=e.setSelectedVersion,N=(0,s.useState)(!1),F=(0,x.Z)(N,2),T=F[0],I=F[1],D=(0,s.useState)(!1),O=(0,x.Z)(D,2),B=O[0],L=O[1],R=(0,s.useState)(!1),z=(0,x.Z)(R,2),A=z[0],V=z[1],U=(0,s.useState)(!1),G=(0,x.Z)(U,2),W=G[0],H=G[1],K=(0,s.useState)(!1),X=(0,x.Z)(K,2),Q=X[0],ee=X[1],ne=(0,s.useState)(null),te=(0,x.Z)(ne,2),ie=te[0],se=te[1],oe=(0,s.useState)([]),ae=(0,x.Z)(oe,2),re=ae[0],ce=ae[1],le=(0,s.useState)(null),de=(0,x.Z)(le,2),ue=de[0],fe=de[1],he=(0,s.useState)([]),me=(0,x.Z)(he,2),pe=me[0],xe=me[1],je=(0,s.useState)(!1),ge=(0,x.Z)(je,2),ve=ge[0],Ze=ge[1],ke=(0,s.useState)(!1),ye=(0,x.Z)(ke,2),Ne=ye[0],Ee=ye[1],_e=(0,s.useState)(0),Fe=(0,x.Z)(_e,2),Te=Fe[0],Ie=Fe[1],De=((0,Z.le)(t)||"").split("/").pop()||"",Me=[];ie&&(Me=ie.name.split("/")),(0,s.useEffect)((function(){""!==i&&t&&S(!0)}),[t,i,S]),(0,s.useEffect)((function(){if(o&&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),se(e)}}),[p,o,re]),(0,s.useEffect)((function(){v&&""!==t&&g.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(o?"&with_versions=true":"")).then((function(e){var n=f()(e,"objects",[]);if(o){ce(n),xe(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);Ie(t)}else se(n[0]),xe([]);S(!1)})).catch((function(e){c(e),S(!1)}))}),[v,i,t,c,o,p,S]);var Be=[];ie&&ie.tags&&(Be=Object.keys(ie.tags));if(!ie)return null;var Le=Me.length>0?Me[Me.length-1]:ie.name,Re=[i,De,[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,M.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,[_.Ft.S3_GET_OBJECT]),icon:(0,P.jsx)(w._8,{}),tooltip:"Download this Object"},{action:function(){I(!0)},label:"Share",disabled:!!ie.is_delete_marker||!(0,E.F)(Re,[_.Ft.S3_GET_OBJECT]),icon:(0,P.jsx)(w.aA,{}),tooltip:"Share this File"},{action:function(){Ee(!0)},label:"Preview",disabled:!!ie.is_delete_marker||"none"===(0,M.Bg)(De)||!(0,E.F)(Re,[_.Ft.S3_GET_OBJECT]),icon:(0,P.jsx)(w.P9,{}),tooltip:"Preview this File"},{action:function(){H(!0)},label:"Legal Hold",disabled:!r||!o||!!ie.is_delete_marker||!(0,E.F)(i,[_.Ft.S3_PUT_OBJECT_LEGAL_HOLD])||""!==p,icon:(0,P.jsx)(w.fN,{}),tooltip:"Change Legal Hold rules for this File"},{action:function(){L(!0)},label:"Retention",disabled:!o||!!ie.is_delete_marker||!(0,E.F)(Re,[_.Ft.S3_GET_OBJECT_RETENTION])||""!==p,icon:(0,P.jsx)(w.E9,{}),tooltip:"Change Retention rules for this File"},{action:function(){V(!0)},label:"Tags",disabled:!!ie.is_delete_marker||""!==p||!(0,E.F)(Re,[_.Ft.S3_PUT_OBJECT_TAGGING]),icon:(0,P.jsx)(w.Dg,{}),tooltip:"Change Tags for this File"},{action:function(){ee(!0)},label:"Inspect",disabled:!o||!!ie.is_delete_marker||""!==p||!(0,E.F)(Re,[_.Ft.ADMIN_INSPECT_DATA]),icon:(0,P.jsx)($.Gp,{}),tooltip:"Inspect this file"},{action:function(){j(!m,Le)},label:m?"Hide Object Versions":"Display Object Versions",icon:(0,P.jsx)(w.cR,{}),disabled:!o||!(ie.version_id&&"null"!==ie.version_id)||!(0,E.F)(Re,[_.Ft.S3_GET_BUCKET_VERSIONING,_.Ft.S3_PUT_BUCKET_VERSIONING,_.Ft.S3_GET_OBJECT_VERSION]),tooltip:"Display Versions for this file"}];return(0,P.jsxs)(s.Fragment,{children:[T&&ie&&(0,P.jsx)(q.default,{open:T,closeModalAndRefresh:function(){fe(null),I(!1)},bucketName:i,dataObject:ue||ie}),B&&ie&&(0,P.jsx)(be,{open:B,closeModalAndRefresh:function(e){L(!1),e&&S(!0)},objectName:De,objectInfo:ie,bucketName:i}),ve&&(0,P.jsx)(Se,{deleteOpen:ve,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){Ze(!1),e&&""===p?b(!0):(k(!0),y(""),S(!0))},versioning:o&&a,selectedVersion:p}),W&&ie&&(0,P.jsx)(we,{open:W,closeModalAndRefresh:function(e){H(!1),e&&S(!0)},objectName:ie.name,bucketName:i,actualInfo:ie}),Ne&&ie&&(0,P.jsx)(Ce.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,P.jsx)(ln,{modalOpen:A,bucketName:i,actualInfo:ie,onCloseAndUpdate:function(e){V(!1),e&&S(!0)}}),Q&&ie&&(0,P.jsx)(xn,{inspectOpen:Q,volumeName:i,inspectPath:ie.name,closeInspectModalAndRefresh:function(e){ee(!1),e&&S(!0)}}),!ie&&(0,P.jsx)(d.ZP,{item:!0,xs:12,children:(0,P.jsx)(J.Z,{})}),(0,P.jsx)(Oe,{title:(0,P.jsxs)("div",{className:n.ObjectDetailsTitle,children:[tn(Le,!0),(0,P.jsx)("span",{className:n.objectNameContainer,children:Le})]}),items:ze}),(0,P.jsx)(d.ZP,{item:!0,xs:12,sx:{textAlign:"center"},children:(0,P.jsx)(E.s,{resource:[i,De,[i,ie.name].join("/")],scopes:[_.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,P.jsxs)(C.Z,{startIcon:(0,P.jsx)(w.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,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.headerForSection,children:[(0,P.jsx)("span",{children:"Object Info"}),(0,P.jsx)(w.Gv,{})]}),(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Name:"}),(0,P.jsx)("br",{}),Le]}),""!==p&&(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Version ID:"}),(0,P.jsx)("br",{}),p]}),(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Size:"}),(0,P.jsx)("br",{}),(0,Z.ae)(ie.size||"0")]}),ie.version_id&&"null"!==ie.version_id&&""===p&&(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Versions:"}),(0,P.jsx)("br",{}),pe.length," version",1!==pe.length?"s":"",","," ",(0,Z.l5)(Te)]}),""===p&&(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Last Modified:"}),(0,P.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),s=(0,Z.nF)(i,"ms");return""!==s.trim()?"".concat(s," ago"):"Just now"}(ie.last_modified)]}),(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"ETAG:"}),(0,P.jsx)("br",{}),ie.etag||"N/A"]}),(0,P.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Tags:"}),(0,P.jsx)("br",{}),0===Be.length?"N/A":Be.map((function(e,n){return(0,P.jsxs)("span",{children:[e,":",f()(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,s=e.isSelected,o=e.onShare,a=e.onDownload,r=e.onRestore,u=e.onPreview,f=e.globalClick,h=e.index,m=i.is_delete_marker,p=[{icon:(0,P.jsx)(w.P9,{}),action:u,tooltip:"Preview"},{icon:(0,P.jsx)(w._8,{}),action:a,tooltip:"Download this version"},{icon:(0,P.jsx)(w.aA,{}),action:o,tooltip:"Share this version"},{icon:(0,P.jsx)(w.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,P.jsx)(d.ZP,{container:!0,flex:1,className:n.ctrItem,onClick:function(){f(i)},children:(0,P.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.intermediateLayer," ").concat(s?"selected":""),children:(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.mainFileVersionItem," ").concat(i.is_delete_marker?"deleted":""),children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,justifyContent:"space-between",children:(0,P.jsxs)(d.ZP,{container:!0,children:[(0,P.jsxs)(d.ZP,{item:!0,xs:4,className:n.versionContainer,children:[tn(t,!0)," v",h.toString(),x&&(0,P.jsx)(Pn,{type:x})]}),(0,P.jsx)(d.ZP,{item:!0,xs:8,className:n.buttonContainer,children:p.map((function(e,t){return(0,P.jsx)(c.Z,{title:e.tooltip,children:(0,P.jsx)(l.Z,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"".concat(n.spacing," ").concat(m?n.buttonDisabled:""),disabled:m,onClick:function(n){n.stopPropagation(),m?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,P.jsx)(d.ZP,{item:!0,xs:12,className:n.versionID,children:"null"!==i.version_id?i.version_id:"-"}),(0,P.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,P.jsxs)("span",{className:n.versionData,children:[(0,P.jsx)("strong",{children:"Last modified:"})," ",(0,P.jsx)(Zn(),{children:i.last_modified})]}),(0,P.jsxs)("span",{className:n.versionData,children:[(0,P.jsx)("strong",{children:"Size:"})," ",(0,Z.ae)(i.size||"0")]})]})]})})})})),In=t(90673),Dn={setErrorSnackMessage:B.Ih},On=(0,o.$j)(null,Dn)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,a=e.setErrorSnackMessage,r=(0,s.useState)(!1),c=(0,x.Z)(r,2),l=c[0],u=c[1],f=(0,s.useState)(""),h=(0,x.Z)(f,2),m=h[0],p=h[1];if((0,s.useEffect)((function(){l&&g.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(o,"&non_current_versions=true")).then((function(){n(!0)})).catch((function(e){a(e),u(!1)}))}),[l,n,a,o,i]),!o)return null;return(0,P.jsx)(ge.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,P.jsx)(w.Nv,{}),isLoading:l,onConfirm:function(){u(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==m||l},confirmationContent:(0,P.jsxs)(je.Z,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,P.jsx)("b",{children:(0,Z.le)(o)}),"? ",(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"To continue please type ",(0,P.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,P.jsx)(d.ZP,{item:!0,xs:12,children:(0,P.jsx)(sn.Z,{id:"type-confirm",name:"retype-tenant",onChange:function(e){p(e.target.value)},label:"",value:m})})]})})})),Mn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},Bn={setErrorSnackMessage:B.Ih,setSnackBarMessage:B.y1,setNewObject:m.Mc,updateProgress:m.RO,completeObject:m.oK,setSelectedVersion:m.M3,setLoadingVersions:m.Eq,setLoadingObjectInfo:m.vH},Ln=(0,o.$j)((function(e){var n=e.system,t=e.objectBrowser;return{distributedSetup:f()(n,"distributedSetup",!1),searchVersions:t.searchVersions,loadingVersions:t.loadingVersions,selectedVersion:t.selectedVersion}}),Bn)((0,r.Z)((function(e){return(0,a.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,o=e.setNewObject,a=e.updateProgress,r=e.searchVersions,c=e.loadingVersions,l=e.selectedVersion,u=e.completeObject,h=e.internalPaths,m=e.bucketName,p=e.setSelectedVersion,b=e.setLoadingVersions,j=e.setLoadingObjectInfo,v=(0,s.useState)(!1),S=(0,x.Z)(v,2),k=S[0],y=S[1],C=(0,s.useState)(null),N=(0,x.Z)(C,2),E=N[0],_=N[1],F=(0,s.useState)(null),T=(0,x.Z)(F,2),I=T[0],D=T[1],B=(0,s.useState)([]),R=(0,x.Z)(B,2),z=R[0],A=R[1],V=(0,s.useState)(!1),U=(0,x.Z)(V,2),G=U[0],H=U[1],K=(0,s.useState)(""),Y=(0,x.Z)(K,2),$=Y[0],X=Y[1],Q=(0,s.useState)("date"),ee=(0,x.Z)(Q,2),ne=ee[0],te=ee[1],ie=(0,s.useState)(!1),se=(0,x.Z)(ie,2),oe=se[0],ae=se[1],re=(0,s.useState)(!1),ce=(0,x.Z)(re,2),le=ce[0],de=ce[1],ue=[];E&&(ue=E.name.split("/")),(0,s.useEffect)((function(){c&&""!==h&&g.Z.invoke("GET","/api/v1/buckets/".concat(m,"/objects?prefix=").concat(h).concat(t?"&with_versions=true":"")).then((function(e){var n=f()(e,"objects",[]);t?(_(n.find((function(e){return e.is_latest}))||Mn),A(n)):(_(n[0]),A([])),b(!1)})).catch((function(e){i(e),b(!1)}))}),[b,c,m,h,i,t]);var fe=function(e){D(e),y(!0)},he=function(e){D(e),ae(!0)},me=function(e){X(e.version_id||""),H(!0)},pe=function(e){!function(e){var n=(0,Z.ug)("".concat(m,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));o({bucketName:m,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,M.LR)(m,h,e.version_id,parseInt(e.size||"0"),(function(e){a(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)})),je=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,P.jsxs)(s.Fragment,{children:[k&&E&&(0,P.jsx)(q.default,{open:k,closeModalAndRefresh:function(){D(null),y(!1),ae(!1)},bucketName:m,dataObject:I||E}),G&&E&&(0,P.jsx)(_n,{restoreOpen:G,bucketName:m,versionID:$,objectPath:E.name,onCloseAndUpdate:function(e){H(!1),X(""),e&&(b(!0),j(!0))}}),oe&&E&&(0,P.jsx)(Ce.default,{open:oe,bucketName:m,object:{name:E.name,version_id:I&&I.version_id?I.version_id:"null",size:parseInt(I&&I.size?I.size:"0"),content_type:"",last_modified:new Date(E.last_modified)},onClosePreview:function(){ae(!1)}}),le&&(0,P.jsx)(On,{deleteOpen:le,closeDeleteModalAndRefresh:function(e){de(!1),e&&(b(!0),p(""),j(!0))},selectedBucket:m,selectedObject:h}),(0,P.jsxs)(d.ZP,{container:!0,className:n.versionsContainer,children:[!E&&(0,P.jsx)(d.ZP,{item:!0,xs:12,children:(0,P.jsx)(J.Z,{})}),E&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,children:(0,P.jsx)(O,{bucketName:m,internalPaths:(0,Z.le)(h),existingFiles:[],hidePathButton:!0})}),(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,P.jsx)(L.Z,{icon:(0,P.jsx)("span",{className:n.listIcon,children:(0,P.jsx)(w.cR,{})}),title:(0,P.jsxs)("span",{className:n.titleSpacer,children:[ue.length>0?ue[ue.length-1]:E.name," ","Versions"]}),subTitle:(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,P.jsx)("span",{className:n.detailsSpacer,children:(0,P.jsxs)("strong",{children:[z.length," Version",1===z.length?"":"s","\xa0\xa0\xa0"]})}),(0,P.jsx)("span",{className:n.detailsSpacer,children:(0,P.jsx)("strong",{children:(0,Z.l5)(je)})})]})}),actions:(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(W.Z,{id:"delete-non-current",tooltip:"Delete Non Current Versions",onClick:function(){de(!0)},text:"",icon:(0,P.jsx)(w.ut,{}),color:"secondary",style:{marginRight:15},disabled:z.length<=1}),(0,P.jsx)("span",{className:n.sortByLabel,children:"Sort by"}),(0,P.jsx)(In.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,P.jsx)(d.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:E.version_id&&"null"!==E.version_id&&(0,P.jsx)(Fn.Z,{rowRenderFunction:function(e){var n=be[e],t=z.length-z.indexOf(n);return(0,P.jsx)(Tn,{fileName:(null===E||void 0===E?void 0:E.name)||"",versionInfo:n,index:t,onDownload:pe,onRestore:me,onShare:fe,onPreview:he,globalClick:xe,isSelected:l===n.version_id})},totalItems:be.length,defaultHeight:108})})]})]})]})}))),Rn=t(34866),zn=s.lazy((function(){return Promise.resolve().then(t.bind(t,13065))})),An=s.lazy((function(){return Promise.resolve().then(t.bind(t,28789))})),Vn=s.lazy((function(){return Promise.resolve().then(t.bind(t,74768))})),Un=(0,F.Z)(s.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),Gn=(0,F.Z)(s.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),Wn=(0,F.Z)(s.lazy((function(){return Promise.all([t.e(5561),t.e(8810),t.e(6901)]).then(t.bind(t,26901))}))),Hn=(0,F.Z)(s.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,P.jsx)(S.Z,{component:"h3",children:"Loading..."}),qn={setSnackBarMessage:B.y1,setErrorSnackMessage:B.Ih,resetRewind:m._w,setBucketDetailsLoad:R.d5,setBucketInfo:R.f4,setNewObject:m.Mc,updateProgress:m.RO,completeObject:m.oK,openList:m.LD,setSearchObjects:m.G4,setVersionsModeEnabled:m.db,setShowDeletedObjects:m.mz,setLoadingVersions:m.Eq},Xn=(0,o.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{routesList:f()(n,"routesList",[]),downloadingFiles:f()(n,"downloadingFiles",[]),rewindEnabled:f()(n,"rewind.rewindEnabled",!1),rewindDate:f()(n,"rewind.dateToRewind",null),bucketToRewind:f()(n,"rewind.bucketToRewind",""),versionsMode:f()(n,"versionsMode",!1),loadingBucket:t.bucketDetails.loadingBucket,bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,showDeleted:n.showDeleted}}),qn),Qn=(0,j.EN)(Xn((0,r.Z)((function(e){return(0,a.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,o=e.history,a=e.rewindEnabled,r=e.rewindDate,c=e.bucketToRewind,l=e.setSnackBarMessage,u=e.setErrorSnackMessage,h=e.resetRewind,m=e.setBucketDetailsLoad,j=e.loadingBucket,y=e.setBucketInfo,C=e.bucketInfo,N=e.setNewObject,F=e.updateProgress,T=e.completeObject,I=e.setSearchObjects,D=e.searchObjects,B=e.versionsMode,R=e.openList,A=e.setVersionsModeEnabled,V=e.showDeleted,U=e.setShowDeletedObjects,G=e.setLoadingVersions,J=(0,s.useState)([]),Y=(0,x.Z)(J,2),$=Y[0],q=Y[1],X=(0,s.useState)(!0),Q=(0,x.Z)(X,2),ee=Q[0],ne=Q[1],te=(0,s.useState)([]),ie=(0,x.Z)(te,2),se=ie[0],oe=ie[1],ae=(0,s.useState)(!1),re=(0,x.Z)(ae,2),ce=re[0],le=re[1],de=(0,s.useState)(!1),ue=(0,x.Z)(de,2),fe=ue[0],he=ue[1],me=(0,s.useState)(0),pe=(0,x.Z)(me,2),xe=pe[0],be=pe[1],je=(0,s.useState)($n),ge=(0,x.Z)(je,2),ve=ge[0],Ze=ge[1],Se=(0,s.useState)(!0),ke=(0,x.Z)(Se,2),ye=ke[0],we=ke[1],Ce=(0,s.useState)(!1),Ne=(0,x.Z)(Ce,2),Ee=Ne[0],_e=Ne[1],Fe=(0,s.useState)(!0),Pe=(0,x.Z)(Fe,2),Te=Pe[0],Ie=Pe[1],De=(0,s.useState)(!1),Me=(0,x.Z)(De,2),Be=Me[0],Le=Me[1],Re=(0,s.useState)(!1),ze=(0,x.Z)(Re,2),Ae=ze[0],Ve=ze[1],Ue=(0,s.useState)([]),Ge=(0,x.Z)(Ue,2),We=Ge[0],He=Ge[1],Ke=(0,s.useState)(!1),Je=(0,x.Z)(Ke,2),Ye=Je[0],$e=Je[1],qe=(0,s.useState)(null),Xe=(0,x.Z)(qe,2),Qe=Xe[0],en=Xe[1],nn=(0,s.useState)(!1),tn=(0,x.Z)(nn,2),sn=tn[0],on=tn[1],an=(0,s.useState)("ASC"),rn=(0,x.Z)(an,2),cn=rn[0],ln=rn[1],dn=(0,s.useState)("name"),un=(0,x.Z)(dn,2),fn=un[0],hn=un[1],mn=(0,s.useState)(!1),pn=(0,x.Z)(mn,2),xn=pn[0],bn=pn[1],jn=(0,s.useState)(!1),vn=(0,x.Z)(jn,2),Zn=vn[0],Sn=vn[1],kn=(0,s.useState)(!1),Cn=(0,x.Z)(kn,2),Nn=Cn[0],En=Cn[1],_n=(0,s.useState)(!1),Fn=(0,x.Z)(_n,2),Pn=Fn[0],Tn=Fn[1],In=(0,s.useState)(null),Dn=(0,x.Z)(In,2),On=Dn[0],Mn=Dn[1],Bn=(0,s.useState)(null),qn=(0,x.Z)(Bn,2),Xn=qn[0],Qn=qn[1],et=f()(t.params,"subpaths",""),nt=t.params.bucketName,tt=(0,s.useRef)(null),it=(0,s.useRef)(null);(0,s.useEffect)((function(){null!==it.current&&(it.current.setAttribute("directory",""),it.current.setAttribute("webkitdirectory",""))}),[it]),(0,s.useEffect)((function(){if(1===We.length){var e=We[0];"none"!==(0,M.Bg)(e)?En(!0):En(!1),e.endsWith("/")?Sn(!1):Sn(!0)}else Sn(!1),En(!1)}),[We]),(0,s.useEffect)((function(){Xn||g.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,s.useEffect)((function(){We.length>0?Tn(!0):0===We.length&&null===On&&Tn(!1)}),[We,On]);var st=(0,E.F)(nt,[_.Ft.S3_DELETE_OBJECT]),ot=(0,E.F)(nt,[_.Ft.S3_LIST_BUCKET]);(0,s.useEffect)((function(){xn||(m(!0),bn(!0))}),[xn,m,bn]),function(e,n){var t=(0,s.useRef)(null);(0,s.useEffect)((function(){t.current=e}),[e]),(0,s.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,P.jsx)(s.Fragment,{children:(0,P.jsxs)(S.Z,{component:"h3",children:["This operation is taking longer than expected... (",Math.ceil(e/1e3),"s)"]})})):e/1e3>=3&&Ze((0,P.jsx)(S.Z,{component:"h3",children:"This operation is taking longer than expected..."}))}()}),1e3),(0,s.useEffect)((function(){ye&&(ot?g.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/versioning")).then((function(e){_e(e.is_versioned),we(!1)})).catch((function(e){u(e),we(!1)})):we(!1))}),[nt,ye,u,ot]),(0,s.useEffect)((function(){Te&&(ot?g.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/object-locking")).then((function(e){Le(e.object_locking_enabled),Ie(!1)})).catch((function(e){u(e),Ie(!1)})):Ie(!1))}),[nt,Te,u,ot]),(0,s.useEffect)((function(){if(a){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+"/"}g.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)}));oe(n)}else oe([])})).catch((function(e){le(!1),u(e)}))}}}),[a,r,c,nt,t,u,h,et]),(0,s.useEffect)((function(){ne(!0),Tn(!1),I("")}),[et,I]),(0,s.useEffect)((function(){if(ee)if(ot){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 s=(new Date).toISOString();i="/api/v1/buckets/".concat(nt,"/rewind/").concat(s)}g.Z.invoke("GET","".concat(i).concat(e?"?prefix=".concat((0,Z.ug)(e)):"")).then((function(n){var t=n.objects||[],i=[],s=[];t.forEach((function(e){e.name!==(0,Z.le)(et)&&(e.name.endsWith("/")?i.push(e):s.push(e))}));var o=[].concat(i,s);if(q(o),n.objects||""===e)ne(!1);else if(a){var c=r.toISOString(),l="";if(et){var d=(0,Z.le)(et);l=d.endsWith("/")?d:d+"/"}g.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 g.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":"","."),j={413:"Error - File size too large"};p.withCredentials=!1,p.onload=function(e){if(p.status>=200&&p.status<300)T(m),o({status:p.status});else{if(j[p.status])b=j[p.status];else if(p.response)try{var n=JSON.parse(p.response);b=n.detailedMessage}catch(t){b="something went wrong"}a({status:p.status,message:b})}},p.upload.addEventListener("error",(function(e){a(b)})),p.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);F(m,n)})),p.onerror=function(){a(b)},p.onloadend=function(){0===e.length&&ne(!0)};var g=new FormData;void 0!==s.size&&(g.append(s.size.toString(),l,c),p.send(g))}))},o=[];R();for(var a=0;a0){var t=o.length,i=o.length-n.length,s={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(i,"/").concat(t)};console.log("upload results",e),u(s)}}))}(e,nt,t,n)}),[nt,T,et,R,N,u,F]),ct=(0,s.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,ft=lt.isDragActive,ht=lt.isDragAccept,mt=(0,s.useMemo)((function(){return(0,i.Z)((0,i.Z)((0,i.Z)({},Kn),ft?Jn:{}),ht?Yn:{})}),[ft,ht]),pt=$.filter((function(e){return""===D||e.name.toLowerCase().indexOf(D.toLowerCase())>=0})),xt=(0,Z.le)(et),bt=xt.split("/").filter((function(e){return""!==e})),jt=(a?se:pt).sort((0,M.P_)(fn)),gt=[];gt="ASC"===cn?jt:jt.reverse();var vt=[nt];bt.length>0&&(vt=vt.concat(bt));var Zt=function(e){Tn(!1),Mn(null),He([]),A(!1),e&&ne(!0)},St=[{type:"view",label:"View",onClick:function(e){if(He([]),e.endsWith("/")){var n="/buckets/".concat(nt,"/browse").concat(e?"/".concat((0,Z.ug)(e)):"");o.push(n)}else Tn(!0),G(!0),Mn("".concat(e?"".concat((0,Z.ug)(e)):""))},sendOnlyId:!0}],kt=[{action:function(){if(0!==We.length){var e=function(e){return We.includes(e.name)};(a?se.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,M.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,P.jsx)(w._8,{}),tooltip:"Download Selected"},{action:function(){if(1===We.length){var e;(e=pt.find((function(e){return We.includes(e.name)})))&&(en(e),on(!0))}},label:"Share",disabled:1!==We.length||!Zn,icon:(0,P.jsx)(w.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,P.jsx)(w.P9,{}),tooltip:"Preview Selected File"},{action:function(){he(!0)},label:"Delete",icon:(0,P.jsx)(Vn,{}),disabled:!(0,E.F)(nt,[_.Ft.S3_DELETE_OBJECT])||0===We.length||!st,tooltip:"Delete Selected Files"}];return(0,P.jsxs)(s.Fragment,{children:[sn&&Qe&&(0,P.jsx)(Gn,{open:sn,closeModalAndRefresh:function(){on(!1),en(null)},bucketName:nt,dataObject:{name:Qe.name,last_modified:"",version_id:Qe.version_id}}),fe&&(0,P.jsx)(Un,{deleteOpen:fe,selectedBucket:nt,selectedObjects:We,closeDeleteModalAndRefresh:function(e){he(!1),e&&(l("Objects deleted successfully."),He([]),ne(!0))},versioning:Ee}),Ae&&(0,P.jsx)(Wn,{open:Ae,closeModalAndRefresh:function(e){Ve(!1)},bucketName:nt}),Ye&&(0,P.jsx)(Hn,{open:Ye,bucketName:nt,object:Qe,onClosePreview:function(){$e(!1),en(null)}}),(0,P.jsxs)(z.Z,{children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,P.jsx)(L.Z,{className:n.screenTitle,icon:(0,P.jsx)("span",{className:n.listIcon,children:(0,P.jsx)(w.wN,{})}),title:(0,P.jsx)("span",{className:n.titleSpacer,children:nt}),subTitle:(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,P.jsxs)("span",{className:n.detailsSpacer,children:["Created:\xa0\xa0\xa0",(0,P.jsx)("strong",{children:(null===C||void 0===C?void 0:C.creation_date)||""})]}),(0,P.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,P.jsx)("strong",{children:(null===C||void 0===C?void 0:C.access)||""})]}),C&&(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("span",{className:n.detailsSpacer,children:[C.size&&(0,P.jsx)(s.Fragment,{children:(0,Z.l5)(C.size)}),C.size&&Xn&&(0,P.jsxs)(s.Fragment,{children:[" / ",(0,Z.l5)(Xn.quota)]}),C.size&&C.objects?" - ":"",C.objects&&(0,P.jsxs)(s.Fragment,{children:[C.objects,"\xa0Object",C.objects&&1!==C.objects?"s":""]})]})})]})}),actions:(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(W.Z,{id:"rewind-objects-list",tooltip:"Rewind Bucket",text:"Rewind",icon:(0,P.jsx)(k.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!a,className:n.badgeOverlap,sx:{height:12},children:(0,P.jsx)(zn,{})}),color:"primary",variant:"outlined",onClick:function(){Ve(!0)},disabled:!Ee||!(0,E.F)(nt,[_.Ft.S3_PUT_OBJECT])}),(0,P.jsx)(W.Z,{id:"refresh-objects-list",tooltip:"Reload List",text:"Refresh",icon:(0,P.jsx)(An,{}),color:"primary",variant:"outlined",onClick:function(){B?G(!0):ne(!0)},disabled:!(0,E.F)(nt,[_.Ft.S3_LIST_BUCKET])||a}),(0,P.jsx)("input",{type:"file",multiple:!0,onChange:at,style:{display:"none"},ref:tt}),(0,P.jsx)("input",{type:"file",multiple:!0,onChange:at,style:{display:"none"},ref:it}),(0,P.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,P.jsxs)("div",(0,i.Z)((0,i.Z)({id:"object-list-wrapper"},dt({style:(0,i.Z)({},mt)})),{},{children:[(0,P.jsx)("input",(0,i.Z)({},ut())),(0,P.jsxs)(d.ZP,{item:!0,xs:12,className:n.tableBlock,sx:{border:"#EAEDEE 1px solid",borderTop:0},children:[B?(0,P.jsx)(s.Fragment,{children:null!==On&&(0,P.jsx)(Ln,{internalPaths:On,bucketName:nt})}):(0,P.jsx)(E.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,P.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,P.jsx)(d.ZP,{item:!0,xs:12,className:n.breadcrumbsContainer,children:(0,P.jsx)(O,{bucketName:nt,internalPaths:xt,existingFiles:$||[],additionalOptions:!Ee||a?null:(0,P.jsx)("div",{children:(0,P.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,P.jsx)(v.Z,{itemActions:St,columns:a?wn:yn,isLoading:a?ce:ee,loadingMessage:ve,entityName:"Objects",idField:"name",records:gt,customPaperHeight:"".concat(n.browsePaper," ").concat(Pn?"actionsPanelOpen":""),selectedItems:We,onSelect:function(e){var n=e.target,t=n.value,i=n.checked,s=(0,p.Z)(We);return i?s.push(t):s=s.filter((function(e){return e!==t})),He(s),Mn(null),s},customEmptyMessage:"This location is empty".concat(a?"":", please try uploading a new file"),sortConfig:{currentSort:fn,currentDirection:cn,triggerSort:function(e){var n=f()(e,"sortDirection","DESC");hn(e.sortBy),ln(n),ne(!0)}},onSelectAll:function(){if(Mn(null),We.length!==gt.length){var e=gt.map((function(e){return e.name}));He(e)}else He([])},rowStyle:function(e){var n,t=e.index;return null!==(n=gt[t])&&void 0!==n&&n.delete_flag?"deleted":""}})]})}),(0,P.jsx)(E.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,P.jsxs)(K,{open:Pn,closePanel:function(){Zt(!1)},children:[We.length>0&&(0,P.jsx)(Oe,{items:kt,title:"Selected Objects:"}),null!==On&&(0,P.jsx)(gn,{internalPaths:On,bucketName:nt,onClosePanel:Zt,versioning:Ee,locking:Be})]})})]})]}))]})]})})))),et=t(32291),nt=t(95792),tt=t(59114),it=t(84669),st={setVersionsModeEnabled:m.db,setErrorSnackMessage:B.Ih,setSearchObjects:m.G4,setSearchVersions:m.Pr},ot=(0,o.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{versionsMode:f()(n,"versionsMode",!1),bucketToRewind:f()(n,"rewind.bucketToRewind",""),bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,versionedFile:n.versionedFile,searchVersions:n.searchVersions}}),st),at=(0,r.Z)((function(e){return(0,a.Z)((0,i.Z)({breadcrumLink:{textDecoration:"none",color:"black"},backToBuckets:{color:"#000",fontSize:14,padding:0,marginTop:-8}},(0,h.Bz)(e.spacing(4))))}))(ot((function(e){var n=e.versionsMode,t=e.match,i=e.history,o=(e.classes,e.setVersionsModeEnabled),a=e.searchObjects,r=e.setSearchObjects,u=e.setSearchVersions,h=e.versionedFile,m=e.searchVersions,p=t.params.bucketName,x=f()(t.params,"subpaths","");(0,s.useEffect)((function(){o(!1)}),[x,o]);return(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(et.Z,{label:(0,P.jsx)(it.Z,{label:"Buckets",to:_.gA.BUCKETS}),actions:(0,P.jsx)(E.s,{scopes:_.D[_.EI.BUCKET_ADMIN],resource:p,errorProps:{disabled:!0},children:(0,P.jsx)(c.Z,{title:"Configure Bucket",children:(0,P.jsx)(l.Z,{color:"primary","aria-label":"Configure Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(p,"/admin"))},size:"large",children:(0,P.jsx)(nt.Z,{})})})}),middleComponent:(0,P.jsx)(s.Fragment,{children:n?(0,P.jsx)(s.Fragment,{children:(0,P.jsx)(tt.Z,{placeholder:"Start typing to filter versions of ".concat(h),onChange:function(e){u(e)},value:m})}):(0,P.jsx)(E.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:p,errorProps:{disabled:!0},children:(0,P.jsx)(tt.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(e){r(e)},value:a})})})}),(0,P.jsx)(d.ZP,{children:(0,P.jsx)(Qn,{})})]})})))},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return F}});var i=t(29439),s=t(1413),o=t(72791),a=t(26181),r=t.n(a),c=t(60364),l=t(11135),d=t(25787),u=t(78029),f=t.n(u),h=t(61889),m=t(36151),p=t(40986),x=t(23814),b=t(42649),j=t(81207),g=t(56028),v=t(64163),Z=t(30829),S=t(72426),k=t.n(S),y=t(21435),w=t(80184),C=(0,d.Z)((function(e){return(0,l.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},x.YI),x.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,s.Z)((0,s.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,s=e.initialDate,a=e.label,r=e.maxDays,c=e.entity,l=e.onChange,d=(0,o.useState)(7),u=(0,i.Z)(d,2),f=u[0],m=u[1],p=(0,o.useState)(0),x=(0,i.Z)(p,2),b=x[0],j=x[1],g=(0,o.useState)(0),v=(0,i.Z)(g,2),S=v[0],C=v[1],N=(0,o.useState)(!0),E=(0,i.Z)(N,2),_=E[0],F=E[1],P=(0,o.useState)(k()()),T=(0,i.Z)(P,2),I=T[0],D=T[1];(0,o.useEffect)((function(){D(function(e,n,t,i){return k()(e).add(n,"days").add(t,"hours").add(i,"minutes")}(s,f,b,S))}),[s,f,b,S]),(0,o.useEffect)((function(){_?l(I.format("YYYY-MM-DDTHH:mm:ss"),!0):l("0000-00-00",!1)}),[I,l,_]),(0,o.useEffect)((function(){var e=!0;(f<0||r&&f>r||isNaN(f))&&(e=!1),(b<0||b>23||isNaN(b))&&(e=!1),(S<0||S>59||isNaN(S))&&(e=!1),!r||f!==r||0===b&&0===S||(e=!1),F(e)}),[I,r,l,f,b,S]);var O={style:{textAlign:"center",paddingRight:10,paddingLeft:10,width:25},className:"removeArrows"};return(0,w.jsx)(o.Fragment,{children:(0,w.jsxs)(h.ZP,{container:!0,className:n.fieldContainer,children:[(0,w.jsxs)(h.ZP,{item:!0,xs:12,alignItems:"center",justifyContent:"center",children:[(0,w.jsx)(h.ZP,{item:!0,xs:12,className:n.labelContainer,children:(0,w.jsx)(Z.Z,{htmlFor:t,className:n.inputLabel,children:(0,w.jsx)("span",{children:a})})}),(0,w.jsxs)(h.ZP,{item:!0,xs:12,className:n.durationInputs,children:[(0,w.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,w.jsx)(y.Z,{id:t,type:"number",min:"0",max:r?r.toString():"999",label:"Days",name:t,onChange:function(e){m(parseInt(e.target.value))},value:f.toString(),extraInputProps:O,noLabelMinWidth:!0})}),(0,w.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,w.jsx)(y.Z,{id:t,type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){j(parseInt(e.target.value))},value:b.toString(),extraInputProps:O,noLabelMinWidth:!0})}),(0,w.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,w.jsx)(y.Z,{id:t,type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){C(parseInt(e.target.value))},value:S.toString(),extraInputProps:O,noLabelMinWidth:!0})})]})]}),(0,w.jsx)(h.ZP,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:_?(0,w.jsxs)("div",{className:n.validityText,children:[(0,w.jsxs)("div",{className:n.validityLabel,children:[c," will be available until:"]})," ",(0,w.jsx)("div",{className:n.validTill,children:I.format("MM/DD/YYYY HH:mm:ss")})]}):(0,w.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),N=t(45248),E=o.lazy((function(){return Promise.resolve().then(t.bind(t,79880))})),_=(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,s.Z)((0,s.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))}))(_((function(e){var n=e.classes,t=e.open,s=e.closeModalAndRefresh,a=e.bucketName,c=e.dataObject,l=e.distributedSetup,d=e.setModalSnackMessage,u=e.setModalErrorSnackMessage,x=(0,o.useState)(""),b=(0,i.Z)(x,2),Z=b[0],S=b[1],k=(0,o.useState)(!0),y=(0,i.Z)(k,2),_=y[0],F=y[1],P=(0,o.useState)(!1),T=(0,i.Z)(P,2),I=T[0],D=T[1],O=(0,o.useState)(""),M=(0,i.Z)(O,2),B=M[0],L=M[1],R=(0,o.useState)(!0),z=(0,i.Z)(R,2),A=z[0],V=z[1],U=(0,o.useState)("null"),G=(0,i.Z)(U,2),W=G[0],H=G[1],K=new Date;return(0,o.useEffect)((function(){if(void 0===c.version_id)return l?(j.Z.invoke("GET","/api/v1/buckets/".concat(a,"/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)}),[a,c,l,u]),(0,o.useEffect)((function(){if(A&&!_){D(!0),S("");var e=new Date("".concat(B)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&j.Z.invoke("GET","/api/v1/buckets/".concat(a,"/objects/share?prefix=").concat((0,N.ug)(c.name),"&version_id=").concat(W).concat(""!==B?"&expires=".concat(t,"s"):"")).then((function(e){S(e),D(!1)})).catch((function(e){u(e),S(""),D(!1)}))}}),[c,B,a,A,S,u,l,_,W]),(0,w.jsx)(o.Fragment,{children:(0,w.jsxs)(g.Z,{title:"Share File",modalOpen:t,onClose:function(){s()},children:[_&&(0,w.jsx)(h.ZP,{item:!0,xs:12,children:(0,w.jsx)(p.Z,{})}),!_&&(0,w.jsxs)(o.Fragment,{children:[(0,w.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,w.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,w.jsx)(h.ZP,{item:!0,xs:12,className:n.dateContainer,children:(0,w.jsx)(C,{initialDate:K,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){V(n),n?L(e):(L(""),S(""))},entity:"Link"})}),(0,w.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(n.copyShareLink," ").concat(n.formFieldRow," "),children:[(0,w.jsx)(h.ZP,{item:!0,xs:10,className:n.copyShareLinkInput,children:(0,w.jsx)(v.Z,{content:Z})}),(0,w.jsx)(h.ZP,{item:!0,xs:2,className:n.copyShareLinkBtn,children:(0,w.jsx)(f(),{text:Z,children:(0,w.jsx)(m.Z,{variant:"contained",color:"primary",endIcon:(0,w.jsx)(E,{}),onClick:function(){d("Share URL Copied to clipboard")},disabled:""===Z||I,children:"Copy"})})})]})]})]})})})))},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return b}});var i=t(72791),s=t(56028),o=t(4942),a=t(29439),r=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),f=t(45248),h=t(28182),m=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,s=e.isFullscreen,r=void 0!==s&&s,c=e.classes,p=(0,i.useState)(!0),x=(0,a.Z)(p,2),b=x[0],j=x[1],g="";if(t){var v=(0,f.ug)(t.name),Z=document.baseURI.replace(window.location.origin,"");g="".concat(window.location.origin).concat(Z,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(v),t.version_id&&(g=g.concat("&version_id=".concat(t.version_id)))}var S=(0,u.Bg)((null===t||void 0===t?void 0:t.name)||""),k=function(){j(!1)};return(0,m.jsxs)(i.Fragment,{children:[b&&(0,m.jsx)(l.ZP,{item:!0,xs:12,children:(0,m.jsx)(d.Z,{})}),"video"===S&&(0,m.jsx)("video",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:k,children:(0,m.jsx)("source",{src:g,type:"video/mp4"})}),"audio"===S&&(0,m.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:k,children:(0,m.jsx)("source",{src:g,type:"audio/mpeg"})}),"image"===S&&(0,m.jsx)("img",{style:{width:"100%",height:"auto"},src:g,alt:"preview",onLoad:k}),"video"!==S&&"audio"!==S&&"image"!==S&&(0,m.jsx)("div",{className:(0,h.Z)(c.iframeBase,(0,o.Z)({},c.iframeHidden,b)),children:(0,m.jsx)("iframe",{src:g,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(r?"fullHeight":S),onLoad:k,children:"File couldn't be loaded. Please try Download instead"})})]})})),x=t(93656),b=function(e){var n=e.open,t=e.bucketName,o=e.object,a=e.onClosePreview;return(0,m.jsx)(i.Fragment,{children:(0,m.jsx)(s.Z,{modalOpen:n,title:"Preview - ".concat(null===o||void 0===o?void 0:o.name),onClose:a,wideLimit:!1,titleIcon:(0,m.jsx)(x.$3,{}),children:(0,m.jsx)(p,{bucketName:t,object:o})})})}},47922:function(e,n,t){t.d(n,{Bg:function(){return s},LR:function(){return i},P_:function(){return o}});var i=function(e,n,t,i,s,o){var a=document.createElement("a");document.body.appendChild(a);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);s&&s(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];o&&o();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()},s=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"},o=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)}}}},75578:function(e,n,t){var i=t(1413),s=t(72791),o=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,o.jsx)(s.Suspense,{fallback:n,children:(0,o.jsx)(e,(0,i.Z)({},t))})}return t}},64163:function(e,n,t){var i=t(1413),s=t(72791),o=t(61889),a=t(11135),r=t(25787),c=t(23814),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,a.Z)((0,i.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,a=e.content,r=e.multiLine,c=void 0!==r&&r;return(0,l.jsx)(s.Fragment,{children:(0,l.jsxs)(o.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,l.jsx)(o.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,l.jsx)(o.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:a})})]})})}))},9505:function(e,n,t){var i=t(29439),s=t(72791),o=t(81207);n.Z=function(e,n){var t=(0,s.useState)(!1),a=(0,i.Z)(t,2),r=a[0],c=a[1];return[r,function(t,i,s){c(!0),o.Z.invoke(t,i,s).then((function(n){c(!1),e(n)})).catch((function(e){c(!1),n(e)}))}]}},56028:function(e,n,t){var i=t(29439),s=t(1413),o=t(72791),a=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),f=t(11135),h=t(25787),m=t(23814),p=t(42649),x=t(29823),b=t(28057),j=t(80184),g=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,h.Z)((function(e){return(0,f.Z)((0,s.Z)((0,s.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))(g((function(e){var n=e.onClose,t=e.modalOpen,a=e.title,f=e.children,h=e.classes,m=e.wideLimit,p=void 0===m||m,g=e.modalSnackMessage,v=e.noContentPadding,Z=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,y=(0,o.useState)(!1),w=(0,i.Z)(y,2),C=w[0],N=w[1];(0,o.useEffect)((function(){Z("")}),[Z]),(0,o.useEffect)((function(){if(g){if(""===g.message)return void N(!1);"error"!==g.type&&N(!0)}}),[g]);var E=p?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},_="";return g&&(_=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(_=g.message)),(0,j.jsxs)(l.Z,(0,s.Z)((0,s.Z)({open:t,classes:h},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:h.root,children:[(0,j.jsxs)(d.Z,{className:h.title,children:[(0,j.jsxs)("div",{className:h.titleText,children:[k," ",a]}),(0,j.jsx)("div",{className:h.closeContainer,children:(0,j.jsx)(r.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,j.jsx)(x.Z,{})})})]}),(0,j.jsx)(b.Z,{isModal:!0}),(0,j.jsx)(c.Z,{open:C,className:h.snackBarModal,onClose:function(){N(!1),Z("")},message:_,ContentProps:{className:"".concat(h.snackBar," ").concat(g&&"error"===g.type?h.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,j.jsx)(u.Z,{className:v?"":h.content,children:f})]}))})))},59114:function(e,n,t){var i=t(4942),s=t(1413),o=(t(72791),t(63466)),a=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,s.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,s=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,f=e.overrideClass,h=e.value,m=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:s.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(r.Z,{placeholder:t,className:f||s.searchField,id:"search-resource",label:"",InputProps:m,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},98994:function(e,n,t){var i=t(72791),s=t(22338),o=t(79762),a=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)(o.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)(a.qj,{children:function(e){var o=e.width,a=e.height;return(0,r.jsx)(s.t7,{itemSize:l||220,height:a,itemCount:t,width:o,ref:i,onItemsRendered:n,children:d})}})}})})}},73669:function(e,n,t){var i=t(29439),s=t(64554),o=t(36151),a=t(21435),r=t(93656),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],f=d[1];return(0,l.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,l.jsx)(a.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)(o.Z,{sx:{marginLeft:"10px"},variant:"contained",onClick:function(){return f(!u)},children:"Show/Hide"})]})}}}]); +//# sourceMappingURL=6233.f8460b26.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.f8460b26.chunk.js.map b/portal-ui/build/static/js/6233.f8460b26.chunk.js.map new file mode 100644 index 000000000..377ba4d73 --- /dev/null +++ b/portal-ui/build/static/js/6233.f8460b26.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6233.f8460b26.chunk.js","mappings":"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","sources":["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/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/Components/withSuspense.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.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, { 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 const lastBreadcrumbsIndex = splitPaths.length - 1;\n\n\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = splitPaths.slice(0, index + 1).join(\"/\");\n const route = `/buckets/${bucketName}/browse/${\n subSplit ? `${encodeFileName(subSplit)}` : ``\n }`;\n\n if(index === lastBreadcrumbsIndex && objectItem === versionedFile) {\n return null;\n }\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.slice(0, -1);\n }\n\n const lowercaseElement = element.toLowerCase();\n for (const etc of extensionToIcon) {\n for (const ext of etc.extensions) {\n if (lowercaseElement.endsWith(`.${ext}`)) {\n icon = etc.icon;\n }\n }\n }\n\n if (!element.endsWith(\"/\") && element.indexOf(\".\") < 0) {\n icon = ;\n }\n\n const splitItem = elementString.split(\"/\");\n\n if (returnOnlyIcon) {\n return icon;\n }\n\n return ;\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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, { 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","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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 .\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":["CreateFolderModal","withSuspense","React","mapDispatchToProps","setVersionsModeEnabled","connector","connect","objectBrowser","rewindEnabled","get","versionsMode","versionedFile","withStyles","theme","createStyles","objectBrowserCommon","classes","bucketName","internalPaths","existingFiles","hidePathButton","additionalOptions","useState","createFolderOpen","setCreateFolderOpen","paths","splitPaths","split","filter","path","lastBreadcrumbsIndex","length","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeFileName","Fragment","to","onClick","toString","versionsItem","listBreadcrumbs","className","breadcrumbsMain","modalOpen","folderName","onClose","Grid","item","xs","breadcrumbs","IconButton","history","sx","border","backgroundColor","borderLeft","borderRadius","width","height","marginRight","breadcrumbsList","dir","Tooltip","title","Button","id","disabled","hasPermission","IAM_SCOPES","endIcon","disableTouchRipple","disableRipple","focusRipple","color","whiteSpace","minWidth","variant","listUploadIcons","fill","uploadPath","forceDisable","uploadFileFunction","uploadFolderFunction","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","RBIconButton","tooltip","undefined","event","currentTarget","text","icon","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","label","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","SelectStyled","root","input","borderBottom","fontSize","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","display","alignItems","justifyContent","paddingBottom","marginTop","marginBottom","setModalErrorSnackMessage","formFieldStyles","modalStyleUtils","spacingUtils","dateSelector","paddingLeft","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","fontWeight","restProps","startIcon","items","titleLabel","objectActions","actionItem","action","fileName","fileNameText","overflow","textOverflow","props","strings","FileBookIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileImageIcon","FileLockIcon","FileMissingIcon","FileMusicIcon","FilePdfIcon","FilePptIcon","FileTxtIcon","FileVideoIcon","FileXlsIcon","FileZipIcon","extensionToIcon","extensions","displayFileIconName","returnOnlyIcon","elementString","ObjectBrowserIcon","ObjectBrowserFolderIcon","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","paddingTop","paddingRight","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","textDecoration","backToBuckets","PageHeader","BackLink","IAM_PAGES","IAM_PERMISSIONS","IAM_ROLES","SettingsIcon","middleComponent","SearchBox","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","link","href","URL","createObjectURL","removeChild","fileExtension","fieldSort","localeCompare","WrappedComponent","fallback","ComponentWithSuspense","Suspense","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","onSuccess","onError","setIsLoading","data","modalSnackMessage","modalSnackBar","deleteDialogStyles","customDialogSize","snackBarCommon","noContentPadding","openSnackbar","setOpenSnackbar","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","adornment","adornmentPosition","overrideClass","inputProps","disableUnderline","InputProps","itemStatusMap","RenderItemLine","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","itemSize","shown","setShown","sm","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/63.830fd6fc.chunk.js b/portal-ui/build/static/js/63.830fd6fc.chunk.js new file mode 100644 index 000000000..eeb502b9c --- /dev/null +++ b/portal-ui/build/static/js/63.830fd6fc.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[63],{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},37267: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)("circle",{cx:"12",cy:"12",r:"8"}),"FiberManualRecord");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},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(90767),s=n(12065),d=n(97278),l=n(76189),u=n(80184),v=(0,l.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,l.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,l.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),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],j=(0,Z.ZP)(d.Z,{shouldForwardProp:function(e){return(0,Z.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),S=(0,u.jsx)(h,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),d=s.checkedIcon,l=void 0===d?w:d,v=s.color,p=void 0===v?"primary":v,h=s.icon,Z=void 0===h?P:h,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,y=void 0===g?S:g,E=s.inputProps,M=s.size,C=void 0===M?"medium":M,I=(0,r.Z)(s,k),H=z?y:Z,L=z?y:l,R=(0,i.Z)({},s,{color:p,indeterminate:z,size:C}),V=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)(j,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},E),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:C}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:C}),ownerState:R,ref:t},I,{classes:V}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(28182),s=n(90767),d=n(14036),l=n(20890),u=n(93840),v=n(52930),p=n(47630),h=n(95159);function m(e){return(0,h.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,d.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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),j=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,p=n.className,h=n.component,Z=void 0===h?"div":h,j=n.disablePointerEvents,w=void 0!==j&&j,P=n.disableTypography,S=void 0!==P&&P,g=n.position,y=n.variant,E=(0,r.Z)(n,z),M=(0,v.Z)()||{},C=y;y&&M.variant,M&&!C&&(C=M.variant);var I=(0,i.Z)({},n,{hiddenLabel:M.hiddenLabel,size:M.size,disablePointerEvents:w,position:g,variant:C}),H=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,d.Z)(r)),a,o&&"hiddenLabel",i&&"size".concat((0,d.Z)(i))]};return(0,s.Z)(c,m,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,i.Z)({as:Z,ownerState:I,className:(0,c.Z)(H.root,p),ref:t},E,{children:"string"!==typeof o||S?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(l.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)}}}]); +//# sourceMappingURL=63.830fd6fc.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/63.830fd6fc.chunk.js.map b/portal-ui/build/static/js/63.830fd6fc.chunk.js.map new file mode 100644 index 000000000..d53332cef --- /dev/null +++ b/portal-ui/build/static/js/63.830fd6fc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/63.830fd6fc.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/FiberManualRecord.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":["\"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)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"8\"\n}), 'FiberManualRecord');\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":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","cx","cy","r","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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6496.0cee9f03.chunk.js b/portal-ui/build/static/js/6496.0cee9f03.chunk.js deleted file mode 100644 index 6157fe2d6..000000000 --- a/portal-ui/build/static/js/6496.0cee9f03.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(29439),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(93656),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.0cee9f03.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6496.0cee9f03.chunk.js.map b/portal-ui/build/static/js/6496.0cee9f03.chunk.js.map deleted file mode 100644 index c7ccb52a7..000000000 --- a/portal-ui/build/static/js/6496.0cee9f03.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6496.0cee9f03.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.0a047d81.chunk.js b/portal-ui/build/static/js/6683.0a047d81.chunk.js new file mode 100644 index 000000000..1b067328a --- /dev/null +++ b/portal-ui/build/static/js/6683.0a047d81.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6683],{54639:function(e,n,i){i.d(n,{Z:function(){return _}});var l=i(29439),t=i(1413),a=i(72791),r=i(26181),o=i.n(r),d=i(61889),s=i(30829),c=i(20068),u=i(13400),v=i(99663),m=i(86711),p=i(11135),Z=i(25787),x=i(23814),g=i(84570),y=i(22512),f=i(80184),_=(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,i=e.classes,t=e.onChange,r=e.id,p=e.name,Z=e.disabled,x=void 0!==Z&&Z,_=e.tooltip,h=void 0===_?"":_,j=e.required,k=e.error,b=void 0===k?"":k,C=e.accept,S=void 0===C?"":C,P=e.value,K=void 0===P?"":P,w=(0,a.useState)(!1),N=(0,l.Z)(w,2),A=N[0],I=N[1];return(0,f.jsx)(a.Fragment,{children:(0,f.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(i.fileInputField," ").concat(i.fieldBottom," ").concat(i.fieldContainer," ").concat(""!==b?i.errorInField:""),children:[""!==n&&(0,f.jsxs)(s.Z,{htmlFor:r,className:"".concat(""!==b?i.fieldLabelError:""," ").concat(i.inputLabel),children:[(0,f.jsxs)("span",{children:[n,j?"*":""]}),""!==h&&(0,f.jsx)("div",{className:i.tooltipContainer,children:(0,f.jsx)(c.Z,{title:h,placement:"top-start",children:(0,f.jsx)("div",{className:i.tooltip,children:(0,f.jsx)(g.Z,{})})})})]}),A||""===K?(0,f.jsxs)("div",{className:i.textBoxContainer,children:[(0,f.jsx)("input",{type:"file",name:p,onChange:function(e){var n=o()(e,"target.files[0].name","");!function(e,n){var i=e.target.files[0],l=new FileReader;l.readAsDataURL(i),l.onload=function(){var e=l.result;if(e){var i=e.toString().split("base64,");2===i.length&&n(i[1])}}}(e,(function(e){t(e,n)}))},accept:S,required:j,disabled:x,className:i.fileInputField}),""!==K&&(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!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:i.fileReselect,children:[(0,f.jsx)("div",{className:i.valueString,children:K}),(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(v.Z,{})})]})]})})}))},98952:function(e,n,i){i.d(n,{Z:function(){return j}});i(72791);var l=i(11135),t=i(25787),a=i(90983),r=i(81918),o=i(26445),d=i(61889),s=i(20890),c=i(64554),u=i(94721),v=i(90493),m=i(15021),p=i(20653),Z=i(49900),x=i(52502),g=i(46431),y=i.n(g),f=i(1413),_=i(80184),h=function(e){return(0,_.jsxs)("svg",(0,f.Z)((0,f.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,_.jsx)("defs",{children:(0,_.jsx)("clipPath",{id:"certificate_svg__a",children:(0,_.jsx)("path",{"data-name":"Rect\\xE1ngulo 2156",fill:"#07193e",d:"M0 0h256v222.048H0z"})})}),(0,_.jsxs)("g",{"data-name":"Grupo 4763",transform:"translate(0 17)",clipPath:"url(#certificate_svg__a)",fill:"#07193e",children:[(0,_.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,_.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,_.jsx)("path",{"data-name":"Rect\\xE1ngulo 2157",fill:"none",d:"M0 0h256v256H0z"})]}))},j=(0,t.Z)((function(e){return(0,l.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,i=e.certificateInfo,l=e.onDelete,t=void 0===l?function(){}:l,g=i.domains||[];return(0,_.jsx)(r.Z,{variant:"outlined",color:"primary",className:n.certificateWrapper,label:(0,_.jsxs)(o.Z,{children:[(0,_.jsx)(d.ZP,{item:!0,xs:1,className:n.certificateIcon,children:(0,_.jsx)(h,{})}),(0,_.jsxs)(d.ZP,{item:!0,xs:11,className:n.certificateInfo,children:[(0,_.jsx)(s.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:i.name}),(0,_.jsxs)(c.Z,{className:n.certificateExpiry,children:[(0,_.jsx)(x.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,_.jsx)("span",{className:"label",children:"Expiry:\xa0"}),(0,_.jsx)("span",{children:(0,_.jsx)(y(),{format:"YYYY/MM/DD",children:i.expiry})})]}),(0,_.jsx)(u.Z,{}),(0,_.jsx)("br",{}),(0,_.jsx)(c.Z,{className:n.certificateDomains,children:(0,_.jsx)("span",{className:"label",children:"".concat(g.length," Domain (s):")})}),(0,_.jsx)(v.Z,{className:n.certificatesList,children:g.map((function(e){return(0,_.jsxs)(m.ZP,{className:n.certificatesListItem,children:[(0,_.jsx)(p.Z,{children:(0,_.jsx)(a.Z,{})}),(0,_.jsx)(Z.Z,{primary:e})]})}))})]})]}),onDelete:t},i.name)}))},76683:function(e,n,i){i.r(n);var l=i(93433),t=i(29439),a=i(1413),r=i(11135),o=i(25787),d=i(23814),s=i(72791),c=i(42649),u=i(60364),v=i(75460),m=i(81207),p=i(37516),Z=i(61889),x=i(54639),g=i(21435),y=i(83679),f=i(51691),_=i(36151),h=i(20165),j=i(3579),k=i(84741),b=i(40968),C=i(2148),S=i(98952),P=i(50896),K=i(80184),w={setErrorSnackMessage:c.Ih,setTenantDetailsLoad:v.V2},N=(0,u.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),w);n.default=(0,o.Z)((function(e){return(0,r.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:8},caCertsRow:{borderBottom:"1px solid #eaeaea",display:"flex",alignItems:"center",marginBottom:8}},(0,d.Bz)(e.spacing(4))),d.QV),d.DF),d.oO),d.AK))}))(N((function(e){var n,i,r,o,d,c,u,v,w,N,A,I,z,E,q,R,G,T,D,F,M,V,B,L,U,W,O,H,Y,Q,$,J,X=e.classes,ee=e.tenant,ne=e.setErrorSnackMessage,ie=(0,s.useState)(!1),le=(0,t.Z)(ie,2),te=le[0],ae=le[1],re=(0,s.useState)("vault"),oe=(0,t.Z)(re,2),de=oe[0],se=oe[1],ce=(0,s.useState)("2"),ue=(0,t.Z)(ce,2),ve=ue[0],me=ue[1],pe=(0,s.useState)(""),Ze=(0,t.Z)(pe,2),xe=Ze[0],ge=Ze[1],ye=(0,s.useState)(!1),fe=(0,t.Z)(ye,2),_e=fe[0],he=fe[1],je=(0,s.useState)({fsGroup:"1000",runAsGroup:"1000",runAsNonRoot:!0,runAsUser:"1000"}),ke=(0,t.Z)(je,2),be=ke[0],Ce=ke[1],Se=(0,s.useState)(null),Pe=(0,t.Z)(Se,2),Ke=Pe[0],we=Pe[1],Ne=(0,s.useState)(null),Ae=(0,t.Z)(Ne,2),Ie=Ae[0],ze=Ae[1],Ee=(0,s.useState)(null),qe=(0,t.Z)(Ee,2),Re=qe[0],Ge=qe[1],Te=(0,s.useState)(null),De=(0,t.Z)(Te,2),Fe=De[0],Me=De[1],Ve=(0,s.useState)(null),Be=(0,t.Z)(Ve,2),Le=Be[0],Ue=Be[1],We=(0,s.useState)(!1),Oe=(0,t.Z)(We,2),He=Oe[0],Ye=Oe[1],Qe=(0,s.useState)(!1),$e=(0,t.Z)(Qe,2),Je=$e[0],Xe=$e[1],en=(0,s.useState)(null),nn=(0,t.Z)(en,2),ln=nn[0],tn=nn[1],an=(0,s.useState)(null),rn=(0,t.Z)(an,2),on=rn[0],dn=rn[1],sn=(0,s.useState)(null),cn=(0,t.Z)(sn,2),un=cn[0],vn=cn[1],mn=(0,s.useState)([]),pn=(0,t.Z)(mn,2),Zn=pn[0],xn=pn[1],gn=(0,s.useState)(!1),yn=(0,t.Z)(gn,2),fn=yn[0],_n=yn[1],hn=(0,s.useState)(!1),jn=(0,t.Z)(hn,2),kn=jn[0],bn=jn[1],Cn=(0,s.useState)(!1),Sn=(0,t.Z)(Cn,2),Pn=Sn[0],Kn=Sn[1],wn=(0,s.useState)(null),Nn=(0,t.Z)(wn,2),An=Nn[0],In=Nn[1],zn=(0,s.useState)(null),En=(0,t.Z)(zn,2),qn=En[0],Rn=En[1],Gn=(0,s.useState)(null),Tn=(0,t.Z)(Gn,2),Dn=Tn[0],Fn=Tn[1],Mn=(0,s.useState)(null),Vn=(0,t.Z)(Mn,2),Bn=Vn[0],Ln=Vn[1],Un=(0,s.useState)(null),Wn=(0,t.Z)(Un,2),On=Wn[0],Hn=Wn[1],Yn=(0,s.useState)(null),Qn=(0,t.Z)(Yn,2),$n=Qn[0],Jn=Qn[1],Xn=(0,s.useState)(null),ei=(0,t.Z)(Xn,2),ni=ei[0],ii=ei[1],li=(0,s.useState)({}),ti=(0,t.Z)(li,2),ai=ti[0],ri=ti[1],oi=function(e){ri((0,k.h)(ai,e))},di=(0,s.useState)(!1),si=(0,t.Z)(di,2),ci=si[0],ui=si[1];(0,s.useEffect)((function(){var e=[];if(te){var n,i,t,a,r,o,d,s,c,u,v,m,p,Z,x,g,y,f,_,h,j,k,C,S,P,K,w,N;if(e=[].concat((0,l.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,l.Z)(e),[{fieldKey:"serverKey",required:!1,value:(null===Bn||void 0===Bn?void 0:Bn.encoded_key)||""},{fieldKey:"serverCert",required:!1,value:(null===Bn||void 0===Bn?void 0:Bn.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,l.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:null===Ke||void 0===Ke?void 0:Ke.endpoint},{fieldKey:"vault_id",required:!0,value:null===Ke||void 0===Ke||null===(n=Ke.approle)||void 0===n?void 0:n.id},{fieldKey:"vault_secret",required:!0,value:null===Ke||void 0===Ke||null===(i=Ke.approle)||void 0===i?void 0:i.secret},{fieldKey:"vault_ping",required:!1,value:null===Ke||void 0===Ke||null===(t=Ke.status)||void 0===t?void 0:t.ping,customValidation:parseInt(null===Ke||void 0===Ke||null===(a=Ke.status)||void 0===a?void 0:a.ping)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:null===Ke||void 0===Ke||null===(r=Ke.approle)||void 0===r?void 0:r.retry,customValidation:parseInt(null===Ke||void 0===Ke||null===(o=Ke.approle)||void 0===o?void 0:o.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("aws"===de)e=[].concat((0,l.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"===de)e=[].concat((0,l.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:null===Re||void 0===Re||null===(p=Re.keysecure)||void 0===p?void 0:p.endpoint},{fieldKey:"gemalto_token",required:!0,value:null===Re||void 0===Re||null===(Z=Re.keysecure)||void 0===Z||null===(x=Z.credentials)||void 0===x?void 0:x.token},{fieldKey:"gemalto_domain",required:!0,value:null===Re||void 0===Re||null===(g=Re.keysecure)||void 0===g||null===(y=g.credentials)||void 0===y?void 0:y.domain},{fieldKey:"gemalto_retry",required:!1,value:null===Re||void 0===Re||null===(f=Re.keysecure)||void 0===f||null===(_=f.credentials)||void 0===_?void 0:_.retry,customValidation:parseInt(null===Re||void 0===Re||null===(h=Re.keysecure)||void 0===h||null===(j=h.credentials)||void 0===j?void 0:j.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("azure"===de)e=[].concat((0,l.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:null===Fe||void 0===Fe||null===(k=Fe.keyvault)||void 0===k?void 0:k.endpoint},{fieldKey:"azure_tenant_id",required:!0,value:null===Fe||void 0===Fe||null===(C=Fe.keyvault)||void 0===C||null===(S=C.credentials)||void 0===S?void 0:S.tenant_id},{fieldKey:"azure_client_id",required:!0,value:null===Fe||void 0===Fe||null===(P=Fe.keyvault)||void 0===P||null===(K=P.credentials)||void 0===K?void 0:K.client_id},{fieldKey:"azure_client_secret",required:!0,value:null===Fe||void 0===Fe||null===(w=Fe.keyvault)||void 0===w||null===(N=w.credentials)||void 0===N?void 0:N.client_secret}])}var A=(0,b.R)(e);bn(0===Object.keys(A).length),ri(A)}),[He,te,de,null===Bn||void 0===Bn?void 0:Bn.encoded_key,null===Bn||void 0===Bn?void 0:Bn.encoded_cert,null===un||void 0===un?void 0:un.encoded_key,null===un||void 0===un?void 0:un.encoded_cert,null===Dn||void 0===Dn?void 0:Dn.encoded_key,null===Dn||void 0===Dn?void 0:Dn.encoded_cert,null===On||void 0===On?void 0:On.encoded_key,null===On||void 0===On?void 0:On.encoded_cert,be,Ke,Ie,Re,Fe,Le,ve]);var vi=function(){_e||(he(!0),m.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"),we(e.vault),e.vault.tls&&(In(e.vault.tls.crt),Rn(e.vault.tls.ca))):e.aws?(se("aws"),ze(e.aws)):e.gemalto?(se("gemalto"),Ge(e.gemalto),e.gemalto.keysecure.tls&&Jn(e.gemalto.keysecure.tls.ca)):e.gcp?(se("gcp"),Ue(e.gcp)):e.azure&&(se("azure"),Me(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),he(!1)})).catch((function(e){console.log(e),he(!1)})))};(0,s.useEffect)((function(){vi()}),[]);var mi=function(e){xn([].concat((0,l.Z)(Zn),[e.name])),e.name===(null===ln||void 0===ln?void 0:ln.name)&&tn(null),e.name===(null===on||void 0===on?void 0:on.name)&&dn(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)&&Rn(null),e.name===(null===$n||void 0===$n?void 0:$n.name)&&Jn(null)};return(0,K.jsx)(s.Fragment,{children:(0,K.jsxs)(Z.ZP,{container:!0,spacing:1,children:[ci&&(0,K.jsx)(C.Z,{isOpen:ci,title:te?"Enable encryption at rest for tenant?":"Disable encryption at rest for tenant?",confirmText:te?"Enable":"Disable",cancelText:"Cancel",onClose:function(){return ui(!1)},onConfirm:function(){var e,n,i,l,t,r,o,d,s,c,u,v,p,Z,x,g,y,f,_,h,j,k,b,C,S,P,K,w,N,A,I,z,E,q,R,G,T,D;if(te){var F={};switch(de){case"gemalto":var M={};null!==ni&&void 0!==ni&&ni.encoded_cert&&(M={tls:{ca:null===ni||void 0===ni?void 0:ni.encoded_cert}}),F={gemalto:{keysecure:(0,a.Z)({endpoint:(null===Re||void 0===Re||null===(e=Re.keysecure)||void 0===e?void 0:e.endpoint)||"",credentials:{token:(null===Re||void 0===Re||null===(n=Re.keysecure)||void 0===n||null===(i=n.credentials)||void 0===i?void 0:i.token)||"",domain:(null===Re||void 0===Re||null===(l=Re.keysecure)||void 0===l||null===(t=l.credentials)||void 0===t?void 0:t.domain)||"",retry:parseInt(null===Re||void 0===Re||null===(r=Re.keysecure)||void 0===r||null===(o=r.credentials)||void 0===o?void 0:o.retry)}},M)}};break;case"aws":F={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===(p=Ie.secretsmanager)||void 0===p||null===(Z=p.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":F={azure:{keyvault:{endpoint:(null===Fe||void 0===Fe||null===(y=Fe.keyvault)||void 0===y?void 0:y.endpoint)||"",credentials:{tenant_id:(null===Fe||void 0===Fe||null===(f=Fe.keyvault)||void 0===f||null===(_=f.credentials)||void 0===_?void 0:_.tenant_id)||"",client_id:(null===Fe||void 0===Fe||null===(h=Fe.keyvault)||void 0===h||null===(j=h.credentials)||void 0===j?void 0:j.client_id)||"",client_secret:(null===Fe||void 0===Fe||null===(k=Fe.keyvault)||void 0===k||null===(b=k.credentials)||void 0===b?void 0:b.client_secret)||""}}}};break;case"gcp":F={gcp:{secretmanager:{project_id:(null===Le||void 0===Le||null===(C=Le.secretmanager)||void 0===C?void 0:C.project_id)||"",endpoint:(null===Le||void 0===Le||null===(S=Le.secretmanager)||void 0===S?void 0:S.endpoint)||"",credentials:{client_email:(null===Le||void 0===Le||null===(P=Le.secretmanager)||void 0===P||null===(K=P.credentials)||void 0===K?void 0:K.client_email)||"",client_id:(null===Le||void 0===Le||null===(w=Le.secretmanager)||void 0===w||null===(N=w.credentials)||void 0===N?void 0:N.client_id)||"",private_key_id:(null===Le||void 0===Le||null===(A=Le.secretmanager)||void 0===A||null===(I=A.credentials)||void 0===I?void 0:I.private_key_id)||"",private_key:(null===Le||void 0===Le||null===(z=Le.secretmanager)||void 0===z||null===(E=z.credentials)||void 0===E?void 0:E.private_key)||""}}}};break;case"vault":var V=null,B=null;null!==Dn&&void 0!==Dn&&Dn.encoded_key&&null!==Dn&&void 0!==Dn&&Dn.encoded_cert&&(V={key:null===Dn||void 0===Dn?void 0:Dn.encoded_key,crt:null===Dn||void 0===Dn?void 0:Dn.encoded_cert}),null!==On&&void 0!==On&&On.encoded_cert&&(B={ca:null===On||void 0===On?void 0:On.encoded_cert});var L=null;(V||B)&&(L={tls:(0,a.Z)((0,a.Z)({},V),B)}),F={vault:(0,a.Z)((0,a.Z)({endpoint:(null===Ke||void 0===Ke?void 0:Ke.endpoint)||"",engine:(null===Ke||void 0===Ke?void 0:Ke.engine)||"",namespace:(null===Ke||void 0===Ke?void 0:Ke.namespace)||"",prefix:(null===Ke||void 0===Ke?void 0:Ke.prefix)||"",approle:{engine:(null===Ke||void 0===Ke||null===(q=Ke.approle)||void 0===q?void 0:q.engine)||"",id:(null===Ke||void 0===Ke||null===(R=Ke.approle)||void 0===R?void 0:R.id)||"",secret:(null===Ke||void 0===Ke||null===(G=Ke.approle)||void 0===G?void 0:G.secret)||"",retry:parseInt(null===Ke||void 0===Ke||null===(T=Ke.approle)||void 0===T?void 0:T.retry)}},L),{},{status:{ping:parseInt(null===Ke||void 0===Ke||null===(D=Ke.status)||void 0===D?void 0:D.ping)}})}}var U={},W={};null!==un&&void 0!==un&&un.encoded_key&&null!==un&&void 0!==un&&un.encoded_cert&&(W={client:{key:null===un||void 0===un?void 0:un.encoded_key,crt:null===un||void 0===un?void 0:un.encoded_cert}}),null!==Bn&&void 0!==Bn&&Bn.encoded_key&&null!==Bn&&void 0!==Bn&&Bn.encoded_cert&&(U={server:{key:null===Bn||void 0===Bn?void 0:Bn.encoded_key,crt:null===Bn||void 0===Bn?void 0:Bn.encoded_cert}});var O=(0,a.Z)((0,a.Z)((0,a.Z)({secretsToBeDeleted:Zn||[],replicas:ve,securityContext:be,image:xe},W),U),F);Je||(Xe(!0),m.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"),O).then((function(){ui(!1),Xe(!1),vi()})).catch((function(e){Xe(!1),ui(!1),ne(e)})))}else Je||(Xe(!0),m.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(){vi(),Xe(!1)})).catch((function(e){Xe(!1),ne(e)})))},confirmationContent:(0,K.jsx)(f.Z,{children:te?"Data will be encrypted using and external KMS":"Current encrypted information will not be accessible"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:!0,children:(0,K.jsx)("h1",{className:X.sectionTitle,children:"Encryption"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,K.jsx)(p.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:te,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(){ae(!te)},description:""})}),(0,K.jsx)(Z.ZP,{xs:12,children:(0,K.jsx)("hr",{className:X.hrClass})}),te&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,className:X.encryptionTypeOptions,children:(0,K.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,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{endpoint:e.target.value}))},label:"Endpoint",value:(null===Ke||void 0===Ke?void 0:Ke.endpoint)||"",error:ai.vault_ping||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{engine:e.target.value}))},label:"Engine",value:(null===Ke||void 0===Ke?void 0:Ke.engine)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{namespace:e.target.value}))},label:"Namespace",value:(null===Ke||void 0===Ke?void 0:Ke.namespace)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{prefix:e.target.value}))},label:"Prefix",value:(null===Ke||void 0===Ke?void 0:Ke.prefix)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(P.Z,{children:"App Role"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{approle:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.approle),{},{engine:e.target.value})}))},label:"Engine",value:(null===Ke||void 0===Ke||null===(n=Ke.approle)||void 0===n?void 0:n.engine)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:fn?"text":"password",id:"vault_id",name:"vault_id",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{approle:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.approle),{},{id:e.target.value})}))},label:"AppRole ID",value:(null===Ke||void 0===Ke||null===(i=Ke.approle)||void 0===i?void 0:i.id)||"",required:!0,error:ai.vault_id||"",overlayIcon:fn?(0,K.jsx)(h.Z,{}):(0,K.jsx)(j.Z,{}),overlayAction:function(){return _n(!fn)}})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:Pn?"text":"password",id:"vault_secret",name:"vault_secret",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{approle:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.approle),{},{secret:e.target.value})}))},label:"AppRole Secret",value:(null===Ke||void 0===Ke||null===(r=Ke.approle)||void 0===r?void 0:r.secret)||"",required:!0,error:ai.vault_secret||"",overlayIcon:Pn?(0,K.jsx)(h.Z,{}):(0,K.jsx)(j.Z,{}),overlayAction:function(){return Kn(!Pn)}})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{approle:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.approle),{},{retry:e.target.value})}))},label:"Retry (Seconds)",error:ai.vault_retry||"",value:(null===Ke||void 0===Ke||null===(o=Ke.approle)||void 0===o?void 0:o.retry)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(P.Z,{children:"Vault Certificates (optional)"})}),(0,K.jsxs)(Z.ZP,{item:!0,xs:12,children:[(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Mutual TLS authentication with Vault (optional)"}),An?(0,K.jsx)(S.Z,{certificateInfo:An,onDelete:function(){return mi(An)}}):(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(x.Z,{onChange:function(e,n){return Fn({encoded_key:e||"",id:(null===Dn||void 0===Dn?void 0:Dn.id)||"",key:n||"",cert:(null===Dn||void 0===Dn?void 0:Dn.cert)||"",encoded_cert:(null===Dn||void 0===Dn?void 0:Dn.encoded_cert)||""})},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:(null===Dn||void 0===Dn?void 0:Dn.key)||""}),(0,K.jsx)(x.Z,{onChange:function(e,n){return Fn({encoded_key:(null===Dn||void 0===Dn?void 0:Dn.encoded_key)||"",id:(null===Dn||void 0===Dn?void 0:Dn.id)||"",key:(null===Dn||void 0===Dn?void 0:Dn.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:(null===Dn||void 0===Dn?void 0:Dn.cert)||""})]})]}),(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Vault CA certificate (optional)"}),qn?(0,K.jsx)(S.Z,{certificateInfo:qn,onDelete:function(){return mi(qn)}}):(0,K.jsx)(x.Z,{onChange:function(e,n){return Hn({encoded_key:(null===On||void 0===On?void 0:On.encoded_key)||"",id:(null===On||void 0===On?void 0:On.id)||"",key:(null===On||void 0===On?void 0:On.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:(null===On||void 0===On?void 0:On.cert)||""})]})]}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(P.Z,{children:"Status"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){return we((0,a.Z)((0,a.Z)({},Ke),{},{status:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.status),{},{ping:e.target.value})}))},label:"Ping (Seconds)",error:ai.vault_ping||"",value:(null===Ke||void 0===Ke||null===(d=Ke.status)||void 0===d?void 0:d.ping)||""})})]}),"azure"===de&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){return Me((0,a.Z)((0,a.Z)({},Fe),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe?void 0:Fe.keyvault),{},{endpoint:e.target.value})}))},label:"Endpoint",error:ai.azure_endpoint||"",value:(null===Fe||void 0===Fe||null===(c=Fe.keyvault)||void 0===c?void 0:c.endpoint)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){var n;return Me((0,a.Z)((0,a.Z)({},Fe),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe?void 0:Fe.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe||null===(n=Fe.keyvault)||void 0===n?void 0:n.credentials),{},{tenant_id:e.target.value})})}))},label:"Tenant ID",value:(null===Fe||void 0===Fe||null===(u=Fe.keyvault)||void 0===u||null===(v=u.credentials)||void 0===v?void 0:v.tenant_id)||"",error:ai.azure_tenant_id||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){var n;return Me((0,a.Z)((0,a.Z)({},Fe),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe?void 0:Fe.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe||null===(n=Fe.keyvault)||void 0===n?void 0:n.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===Fe||void 0===Fe||null===(w=Fe.keyvault)||void 0===w||null===(N=w.credentials)||void 0===N?void 0:N.client_id)||"",error:ai.azure_client_id||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){var n;return Me((0,a.Z)((0,a.Z)({},Fe),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe?void 0:Fe.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Fe||void 0===Fe||null===(n=Fe.keyvault)||void 0===n?void 0:n.credentials),{},{client_secret:e.target.value})})}))},label:"Client Secret",value:(null===Fe||void 0===Fe||null===(A=Fe.keyvault)||void 0===A||null===(I=A.credentials)||void 0===I?void 0:I.client_secret)||"",error:ai.azure_client_secret||""})})]})})]}),"gcp"===de&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{project_id:e.target.value})}))},label:"Project ID",value:(null===Le||void 0===Le?void 0:Le.secretmanager.project_id)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Le||void 0===Le?void 0:Le.secretmanager.endpoint)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager.credentials),{},{client_email:e.target.value})})}))},label:"Client Email",value:(null===Le||void 0===Le||null===(z=Le.secretmanager.credentials)||void 0===z?void 0:z.client_email)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===Le||void 0===Le||null===(E=Le.secretmanager.credentials)||void 0===E?void 0:E.client_id)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager.credentials),{},{private_key_id:e.target.value})})}))},label:"Private Key ID",value:(null===Le||void 0===Le||null===(q=Le.secretmanager.credentials)||void 0===q?void 0:q.private_key_id)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Le),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Le||void 0===Le?void 0:Le.secretmanager.credentials),{},{private_key:e.target.value})})}))},label:"Private Key",value:(null===Le||void 0===Le||null===(R=Le.secretmanager.credentials)||void 0===R?void 0:R.private_key)||""})})]})})]}),"aws"===de&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){return ze((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===(G=Ie.secretsmanager)||void 0===G?void 0:G.endpoint)||"",required:!0,error:ai.aws_endpoint||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_region",name:"aws_region",onChange:function(e){return ze((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===(T=Ie.secretsmanager)||void 0===T?void 0:T.region)||"",error:ai.aws_region||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){return ze((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===(D=Ie.secretsmanager)||void 0===D?void 0:D.kmskey)||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){var n;return ze((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===(F=Ie.secretsmanager)||void 0===F||null===(M=F.credentials)||void 0===M?void 0:M.accesskey)||"",error:ai.aws_accessKey||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){var n;return ze((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===(V=Ie.secretsmanager)||void 0===V||null===(B=V.credentials)||void 0===B?void 0:B.secretkey)||"",error:ai.aws_secretKey||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"aws_token",name:"aws_token",onChange:function(e){var n;return ze((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===(L=Ie.secretsmanager)||void 0===L||null===(U=L.credentials)||void 0===U?void 0:U.token)||""})})]})})]}),"gemalto"===de&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){return Ge((0,a.Z)((0,a.Z)({},Re),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.keysecure),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Re||void 0===Re||null===(W=Re.keysecure)||void 0===W?void 0:W.endpoint)||"",error:ai.gemalto_endpoint||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){var n;return Ge((0,a.Z)((0,a.Z)({},Re),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re||null===(n=Re.keysecure)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",value:(null===Re||void 0===Re||null===(O=Re.keysecure)||void 0===O||null===(H=O.credentials)||void 0===H?void 0:H.token)||"",error:ai.gemalto_token||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){var n;return Ge((0,a.Z)((0,a.Z)({},Re),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re||null===(n=Re.keysecure)||void 0===n?void 0:n.credentials),{},{domain:e.target.value})})}))},label:"Domain",value:(null===Re||void 0===Re||null===(Y=Re.keysecure)||void 0===Y||null===(Q=Y.credentials)||void 0===Q?void 0:Q.domain)||"",error:ai.gemalto_domain||"",required:!0})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){var n;return Ge((0,a.Z)((0,a.Z)({},Re),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re||null===(n=Re.keysecure)||void 0===n?void 0:n.credentials),{},{retry:e.target.value})})}))},label:"Retry (seconds)",value:(null===Re||void 0===Re||null===($=Re.keysecure)||void 0===$||null===(J=$.credentials)||void 0===J?void 0:J.retry)||"",error:ai.gemalto_retry||""})})]})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Custom CA Root certificate verification"}),$n?(0,K.jsx)(S.Z,{certificateInfo:$n,onDelete:function(){return mi($n)}}):(0,K.jsx)(x.Z,{onChange:function(e,n){return ii({encoded_key:(null===ni||void 0===ni?void 0:ni.encoded_key)||"",id:(null===ni||void 0===ni?void 0:ni.id)||"",key:(null===ni||void 0===ni?void 0:ni.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:(null===ni||void 0===ni?void 0:ni.cert)||""})]})})]}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(P.Z,{children:"Additional Configuration for KES"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(p.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:He,onChange:function(){return Ye(!He)},label:"Custom Certificates"})}),He&&(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"KES server TLS Certificates (optional)"}),ln?(0,K.jsx)(S.Z,{certificateInfo:ln,onDelete:function(){return mi(ln)}}):(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(x.Z,{onChange:function(e,n){Ln({encoded_key:e||"",id:(null===Bn||void 0===Bn?void 0:Bn.id)||"",key:n||"",cert:(null===Bn||void 0===Bn?void 0:Bn.cert)||"",encoded_cert:(null===Bn||void 0===Bn?void 0:Bn.encoded_cert)||""}),oi("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",value:null===Bn||void 0===Bn?void 0:Bn.key}),(0,K.jsx)(x.Z,{onChange:function(e,n){Ln({encoded_key:(null===Bn||void 0===Bn?void 0:Bn.encoded_key)||"",id:(null===Bn||void 0===Bn?void 0:Bn.id)||"",key:(null===Bn||void 0===Bn?void 0:Bn.key)||"",cert:n||"",encoded_cert:e||""}),oi("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",value:null===Bn||void 0===Bn?void 0:Bn.cert})]})]})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,K.jsx)("legend",{className:X.descriptionText,children:"Mutual TLS authentication with MinIO (optional)"}),on?(0,K.jsx)(S.Z,{certificateInfo:on,onDelete:function(){return mi(on)}}):(0,K.jsxs)(s.Fragment,{children:[(0,K.jsx)(x.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)||""}),oi("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",value:null===un||void 0===un?void 0:un.key}),(0,K.jsx)(x.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||""}),oi("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",value:null===un||void 0===un?void 0:un.cert})]})]})})]}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.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,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(g.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){return me(e.target.value)},label:"Replicas",value:ve,required:!0,error:ai.replicas||""})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(P.Z,{children:"SecurityContext for KES"})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsxs)("div",{className:"".concat(X.multiContainer," ").concat(X.responsiveContainer),children:[(0,K.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,K.jsx)(g.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:ai.kes_securityContext_runAsUser||"",min:"0"})}),(0,K.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,K.jsx)(g.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:ai.kes_securityContext_runAsGroup||"",min:"0"})}),(0,K.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,K.jsx)(g.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:ai.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,K.jsx)(Z.ZP,{item:!0,xs:12,children:(0,K.jsx)(p.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,K.jsx)(Z.ZP,{item:!0,xs:12,textAlign:"right",children:(0,K.jsx)(_.Z,{type:"submit",variant:"contained",color:"primary",disabled:!kn,onClick:function(){return ui(!0)},children:"Save"})})]})})})))},22512:function(e,n,i){var l=i(72791),t=i(20890),a=i(11135),r=i(25787),o=i(80184);n.Z=(0,r.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,i=e.errorMessage,a=e.withBreak,r=void 0===a||a;return(0,o.jsxs)(l.Fragment,{children:[r&&(0,o.jsx)("br",{}),(0,o.jsx)(t.Z,{component:"p",variant:"body1",className:n.errorBlock,children:i})]})}))},3579:function(e,n,i){var l=i(95318);n.Z=void 0;var t=l(i(45649)),a=i(80184),r=(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=r},20165:function(e,n,i){var l=i(95318);n.Z=void 0;var t=l(i(45649)),a=i(80184),r=(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=r}}]); +//# sourceMappingURL=6683.0a047d81.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.0a047d81.chunk.js.map b/portal-ui/build/static/js/6683.0a047d81.chunk.js.map new file mode 100644 index 000000000..0210aa167 --- /dev/null +++ b/portal-ui/build/static/js/6683.0a047d81.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6683.0a047d81.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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 ISecurityContext,\n ITenantEncryptionResponse,\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 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\";\nimport SectionTitle from \"../../Common/SectionTitle\";\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: 8,\n },\n caCertsRow: {\n borderBottom: \"1px solid #eaeaea\",\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: 8,\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 \n

    Encryption

    \n
    \n \n {\n setEncryptionEnabled(!encryptionEnabled);\n }}\n description=\"\"\n />\n \n \n
    \n
    \n {encryptionEnabled && (\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 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 Vault Certificates (optional)\n \n \n
    \n \n Mutual TLS authentication with Vault (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 Vault CA certificate (optional)\n \n {vaultCACertificateSecret ? (\n \n removeCertificate(vaultCACertificateSecret)\n }\n />\n ) : (\n \n setVaultCACertificate({\n encoded_key: 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 Status\n \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 {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.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.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.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.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?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n value={\n gemaltoConfiguration?.keysecure?.credentials?.token ||\n \"\"\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?.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?.credentials,\n retry: e.target.value,\n },\n },\n })\n }\n label=\"Retry (seconds)\"\n value={\n gemaltoConfiguration?.keysecure?.credentials?.retry ||\n \"\"\n }\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
    \n
    \n \n
    \n \n Custom CA Root certificate verification\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 Configuration for KES\n \n \n \n setEnabledCustomCertificates(!enabledCustomCertificates)\n }\n label={\"Custom Certificates\"}\n />\n \n {enabledCustomCertificates && (\n \n \n
    \n \n KES server TLS Certificates (optional)\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: 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 Mutual TLS authentication with MinIO (optional)\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: 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: 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 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 SecurityContext for KES\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 min=\"0\"\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[\"kes_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\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 min=\"0\"\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 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","props","xmlns","fill","viewBox","d","transform","clipPath","root","padding","backgroundColor","textDecoration","cursor","fontSize","palette","info","main","fontFamily","certificateIcon","float","paddingTop","paddingRight","certificateInfo","certificateWrapper","height","userSelect","borderRadius","certificateExpiry","display","alignItems","flexWrap","marginBottom","certificateDomains","certificatesList","textTransform","overflowY","maxHeight","certificatesListItem","borderBottom","minWidth","marginRight","opacity","onDelete","certificates","domains","Chip","variant","Container","Typography","gutterBottom","Box","EventBusy","format","expiry","Divider","List","map","dom","ListItem","ListItemAvatar","Language","ListItemText","primary","mapDispatchToProps","setErrorSnackMessage","setTenantDetailsLoad","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","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","container","isOpen","confirmText","cancelText","onClose","onConfirm","insertEncrypt","gemaltoCAIntroduce","kmskey","secretmanager","project_id","client_email","private_key_id","private_key","vaultKeyPair","vaultCAInsert","key","vaultTLS","engine","prefix","encryptionServerKeyPair","encryptionClientKeyPair","client","dataSend","secretsToBeDeleted","confirmationContent","sectionTitle","justifyContent","indicatorLabels","checked","description","hrClass","Fragment","encryptionTypeOptions","currentSelection","selectorOptions","overlayIcon","overlayAction","min","fieldGroup","descriptionText","encodedValue","cert","style","placeholder","multiContainer","responsiveContainer","formFieldRow","rightSpacer","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/6683.18e77b71.chunk.js b/portal-ui/build/static/js/6683.18e77b71.chunk.js deleted file mode 100644 index 34137c530..000000000 --- a/portal-ui/build/static/js/6683.18e77b71.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(29439),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(93433),t=l(29439),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.18e77b71.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.18e77b71.chunk.js.map b/portal-ui/build/static/js/6683.18e77b71.chunk.js.map deleted file mode 100644 index 2b5c7bc55..000000000 --- a/portal-ui/build/static/js/6683.18e77b71.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6683.18e77b71.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.1da82d5c.chunk.js b/portal-ui/build/static/js/6763.1da82d5c.chunk.js deleted file mode 100644 index 96281a8c7..000000000 --- a/portal-ui/build/static/js/6763.1da82d5c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6763],{74794:function(e,n,t){"use strict";var r=t(1413),i=(t(72791),t(61889)),o=t(11135),s=t(25787),a=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,o.Z)((0,r.Z)({},a.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,o=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:r,children:o})})})}))},32291:function(e,n,t){"use strict";var r=t(72791),i=t(60364),o=t(61889),s=t(11135),a=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),h=t(3925),g=t(93656),p=t(80184),f={toggleList:h.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}}),f);n.Z=x((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,i=e.actions,s=e.sidebarOpen,a=e.operatorMode,h=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,p.jsx)(r.Fragment,{}):(0,p.jsxs)(o.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,p.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,p.jsx)("div",{className:n.logo,children:a?(0,p.jsx)(d.Z,{}):(0,p.jsx)(u.Z,{})}),(0,p.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,p.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,p.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[i&&i,h&&h.length>0&&(0,p.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,p.jsx)(g.gx,{})})]})]})})))},59114:function(e,n,t){"use strict";var r=t(4942),i=t(1413),o=(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,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,h=e.overrideClass,g=e.value,p=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:i.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(a.Z,{placeholder:t,className:h||i.searchField,id:"search-resource",label:"",InputProps:p,onChange:function(e){l(e.target.value)},variant:"standard",value:g})}))},96763:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return W}});var r=t(29439),i=t(1413),o=t(72791),s=t(95087),a=t(11135),l=t(25787),c=t(60364),d=t(4834),u=t(61889),h=t(68096),g=t(58406),p=t(23786),f=t(36151),x=t(72426),m=t.n(x),j=t(81207),v=t(63722),Z=t(26824),b=t(23814),y=t(32291),w=t(74794),S=t(59114),C=t(10703),L=t(79836),P=t(53382),N=t(39281),A=t(35855),M=t(53994),T=t(56125),k=t(64554),R=t(20890),_=t(46431),F=t.n(_),O=t(80184),E=function(e){return(0,O.jsx)("svg",(0,i.Z)((0,i.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,O.jsxs)("g",{id:"Group_2001","data-name":"Group 2001",transform:"translate(1924 369) rotate(180)",children:[(0,O.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#e5e5e5"}),(0,O.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,O.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"})})]})}))},I=function(e){return(0,O.jsx)("svg",(0,i.Z)((0,i.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,O.jsxs)("g",{id:"Group_2476","data-name":"Group 2476",transform:"translate(-1898 -343)",children:[(0,O.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#fbfafa"}),(0,O.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,O.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"})})]})}))},z=function(e){return(0,O.jsxs)("svg",(0,i.Z)((0,i.Z)({id:"WarnFilledIcon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12"},e),{},{className:"min-icon",fill:"currentcolor",children:[(0,O.jsx)("defs",{children:(0,O.jsx)("clipPath",{id:"clip-path",children:(0,O.jsx)("rect",{id:"Rectangle_987","data-name":"Rectangle 987",width:"12",height:"12"})})}),(0,O.jsx)("g",{id:"warning-icon-full",transform:"translate(-0.002 -0.003)",children:(0,O.jsx)("g",{id:"Group_2356","data-name":"Group 2356",transform:"translate(0.002 0.003)","clip-path":"url(#clip-path)",children:(0,O.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)"})})})]}))},B=function(e){var n=e.log,t=(0,o.useState)(!1),i=(0,r.Z)(t,2),s=i[0],a=i[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,O.jsx)(o.Fragment,{});""!==n.ConsoleMsg?d=function(e){var n=e.ConsoleMsg;return n=(n=n.replace(/\x1B/g," ")).replace(/((\[[0-9;]+m))/g,""),(0,O.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,O.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflowX:"auto"},children:(0,O.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,O.jsxs)(o.Fragment,{children:[(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"API:\xa0"}),(0,O.jsx)("span",{style:n,children:e.api.name})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"Time:\xa0"}),(0,O.jsx)("span",{style:n,children:e.time.toString()})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"DeploymentID:\xa0"}),(0,O.jsx)("span",{style:n,children:e.deploymentid})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"RequestID:\xa0"}),(0,O.jsx)("span",{style:n,children:e.requestID})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"RemoteHost:\xa0"}),(0,O.jsx)("span",{style:n,children:e.remotehost})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"UserAgent:\xa0"}),(0,O.jsx)("span",{style:n,children:e.userAgent})]}),(0,O.jsxs)("div",{children:[(0,O.jsx)("b",{style:t,children:"Error:\xa0"}),(0,O.jsx)("span",{style:n,children:e.error&&e.error.message})]}),(0,O.jsx)("br",{}),(0,O.jsx)("div",{children:(0,O.jsx)("b",{style:t,children:"Backtrace:\xa0"})}),e.error&&e.error.source.map((function(e,r){return(0,O.jsxs)("div",{children:[(0,O.jsxs)("b",{style:t,children:[r,":\xa0"]}),(0,O.jsx)("span",{style:n,children:e})]})}))]})}(n)),c=c.replace(/((\[[0-9;]+m))/g,"");var u=(0,O.jsx)(F(),{format:"YYYY/MM/DD UTC HH:mm:ss",children:n.time});return 1===n.time.getFullYear()&&(u=(0,O.jsx)(o.Fragment,{children:"n/a"})),(0,O.jsxs)(o.Fragment,{children:[(0,O.jsxs)(A.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer",borderLeft:"0",borderRight:"0"},style:{backgroundColor:"#FDFDFD"},children:[(0,O.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,O.jsxs)(k.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:[(0,O.jsx)(z,{}),u]})}),(0,O.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,O.jsx)(k.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:n.errKind})}),(0,O.jsx)(M.Z,{onClick:function(){return a(!s)},children:(0,O.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,O.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},children:c})})}),(0,O.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:40},children:(0,O.jsx)(k.Z,{sx:{"& .min-icon":{display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"2px"},"&:hover .min-icon":{fill:"#eaeaea"}},children:s?(0,O.jsx)(E,{}):(0,O.jsx)(I,{})})})]}),s?(0,O.jsxs)(A.Z,{children:[(0,O.jsx)(M.Z,{style:{paddingBottom:0,paddingTop:0,width:200,textTransform:"uppercase",verticalAlign:"top",textAlign:"right",color:"#8399AB",fontWeight:"bold"},children:(0,O.jsx)(T.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,O.jsx)("div",{style:{marginTop:10},children:"Log Details"})})}),(0,O.jsx)(M.Z,{colSpan:2,style:{paddingBottom:0,paddingTop:0},children:(0,O.jsx)(T.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,O.jsx)(k.Z,{sx:{margin:1},children:(0,O.jsx)(R.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:d})})})}),(0,O.jsx)(M.Z,{style:{paddingBottom:0,paddingTop:0,width:40}})]}):null]},n.time.toString())},H=(0,l.Z)((function(e){return(0,a.Z)({root:{lineHeight:"50px","label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(d.ZP),D=null,W=(0,c.$j)((function(e){return{messages:e.logs.logMessages,logsStarted:e.logs.logsStarted}}),{logMessageReceived:v.Qo,logResetMessages:v.i1,setLogsStarted:v.v0})((0,l.Z)((function(e){return(0,a.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.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},nodeField:{width:"100%"},ansidefault:{color:"#000"},midColumnCheckboxes:{display:"flex"},checkBoxLabel:{marginTop:10,fontSize:16,fontWeight:500},highlight:{"& span":{backgroundColor:"#082F5238"}}},b.OR),{},{actionsTray:(0,i.Z)((0,i.Z)({},b.OR.actionsTray),{},{marginBottom:0})},b.qg),b.o$),b.IX),(0,b.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.logMessageReceived,i=e.logResetMessages,a=e.setLogsStarted,l=e.messages,c=e.logsStarted,d=(0,o.useState)(""),x=(0,r.Z)(d,2),v=x[0],b=x[1],A=(0,o.useState)([""]),M=(0,r.Z)(A,2),T=M[0],k=M[1],R=(0,o.useState)("all"),_=(0,r.Z)(R,2),F=_[0],E=_[1],I=(0,o.useState)("Select user agent"),z=(0,r.Z)(I,2),W=z[0],G=z[1],U=(0,o.useState)(["All User Agents"]),Y=(0,r.Z)(U,2),q=Y[0],X=Y[1],$=(0,o.useState)("all"),Q=(0,r.Z)($,2),J=Q[0],K=Q[1],V=(0,o.useState)(!1),ee=(0,r.Z)(V,2),ne=ee[0],te=ee[1],re=v.toLowerCase(),ie=l.filter((function(e){return(e.userAgent===W||"All User Agents"===W||"Select user agent"===W)&&(""===v||(e.ConsoleMsg.toLowerCase().indexOf(re)>=0||(!!(e.error&&e.error.source&&e.error.source.filter((function(e){return e.toLowerCase().indexOf(re)>=0})).length>0)||(!!(e.error&&e.error.message.toLowerCase().indexOf(re)>=0)||!!(e.api&&e.api.name.toLowerCase().indexOf(re)>=0)))))}));return(0,o.useEffect)((function(){te(!0),j.Z.invoke("GET","/api/v1/nodes").then((function(e){k(e),te(!1)})).catch((function(e){te(!1)}))}),[]),(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)(y.Z,{label:"Logs"}),(0,O.jsx)(w.Z,{children:(0,O.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,O.jsx)(u.ZP,{item:!0,xs:4,children:ne?(0,O.jsx)("h3",{children:" Loading nodes"}):(0,O.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,O.jsxs)(g.Z,{id:"node",name:"node","data-test-id":"node-selector",value:F,onChange:function(e){E(e.target.value)},className:n.searchField,disabled:ne||c,input:(0,O.jsx)(H,{}),placeholder:"Select Node",children:[(0,O.jsx)(p.Z,{value:"all",children:"All Nodes"},"select-node-all"),T.map((function(e){return(0,O.jsx)(p.Z,{value:e,children:e},"select-node-name-".concat(e))}))]})})}),(0,O.jsx)(u.ZP,{item:!0,xs:3,children:(0,O.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,O.jsxs)(g.Z,{id:"logType",name:"logType","data-test-id":"log-type",value:J,onChange:function(e){K(e.target.value)},className:n.searchField,disabled:ne||c,input:(0,O.jsx)(H,{}),placeholder:"Select Log Type",children:[(0,O.jsx)(p.Z,{value:"all",children:"All Log Types"},"all-log-types"),(0,O.jsx)(p.Z,{value:"minio",children:"MinIO"},"minio-log-type"),(0,O.jsx)(p.Z,{value:"application",children:"Application"},"app-log-type")]})})}),(0,O.jsx)(u.ZP,{item:!0,xs:3,children:q.length>1&&(0,O.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,O.jsxs)(g.Z,{id:"userAgent",name:"userAgent","data-test-id":"user-agent",value:W,onChange:function(e){G(e.target.value)},className:n.searchField,disabled:q.length<1||c,input:(0,O.jsx)(H,{}),children:[(0,O.jsx)(p.Z,{value:W,disabled:!0,children:"Select User Agent"},"select-user-agent-default"),q.map((function(e){return(0,O.jsx)(p.Z,{value:e,children:e},"select-user-agent-".concat(e))}))]})})}),(0,O.jsxs)(u.ZP,{item:!0,xs:2,textAlign:"right",children:[!c&&(0,O.jsx)(f.Z,{type:"submit",variant:"contained",color:"primary",disabled:!1,onClick:function(){i();var e=new URL(window.location.toString()),n=e.port,r=(0,Z.x2)(e.protocol);D=new s.w3cwebsocket("".concat(r,"://").concat(e.hostname,":").concat(n,"/ws/console/?logType=").concat(J,"&node=").concat("Select node"===F?"":F));var o=null;if(null!==D)return D.onopen=function(){console.log("WebSocket Client Connected"),a(!0),D.send("ok"),o=setInterval((function(){D.send("ok")}),1e4)},D.onmessage=function(e){var n=JSON.parse(e.data.toString());n.time=m()(n.time,"HH:mm:s UTC MM/DD/YYYY").toDate(),n.key=Math.random(),q.indexOf(n.userAgent)<0&&void 0!==n.userAgent&&(q.push(n.userAgent),X(q)),t(n)},D.onclose=function(){clearInterval(o),console.log("connection closed by server"),a(!1)},function(){D.close(1e3),clearInterval(o),console.log("closing websockets"),a(!1)}},children:"Start Logs"}),c&&(0,O.jsx)(f.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){null!==D&&void 0!==D&&(D.close(1e3),a(!1))},children:"Stop Logs"})]}),(0,O.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(S.Z,{placeholder:"Filter",onChange:function(e){b(e)},value:v})}),(0,O.jsx)(u.ZP,{item:!0,xs:12,children:(0,O.jsx)("div",{id:"logs-container",className:n.logList,"data-test-id":"logs-list-container",children:(0,O.jsxs)(N.Z,{component:C.Z,children:[(0,O.jsx)(L.Z,{"aria-label":"collapsible table",children:(0,O.jsx)(P.Z,{children:ie.map((function(e){return(0,O.jsx)(B,{log:e})}))})}),0===ie.length&&(0,O.jsx)("div",{style:{padding:20,textAlign:"center"},children:"No logs to display"})]})})})]})})]})})))},26824:function(e,n,t){"use strict";t.d(n,{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 n="ws";return"https:"===e&&(n="wss"),n}},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return y}});var r=t(4942),i=t(63366),o=t(87462),s=t(72791),a=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),h=t(52930),g=t(47630),p=t(95159);function f(e){return(0,p.Z)("MuiInputAdornment",e)}var x,m=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),j=t(93736),v=t(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,g.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,o.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,r.Z)({},"&.".concat(m.positionStart,"&:not(.").concat(m.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),y=s.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiInputAdornment"}),r=t.children,g=t.className,p=t.component,m=void 0===p?"div":p,y=t.disablePointerEvents,w=void 0!==y&&y,S=t.disableTypography,C=void 0!==S&&S,L=t.position,P=t.variant,N=(0,i.Z)(t,Z),A=(0,h.Z)()||{},M=P;P&&A.variant,A&&!M&&(M=A.variant);var T=(0,o.Z)({},t,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:w,position:L,variant:M}),k=function(e){var n=e.classes,t=e.disablePointerEvents,r=e.hiddenLabel,i=e.position,o=e.size,s=e.variant,a={root:["root",t&&"disablePointerEvents",i&&"position".concat((0,c.Z)(i)),s,r&&"hiddenLabel",o&&"size".concat((0,c.Z)(o))]};return(0,l.Z)(a,f,n)}(T);return(0,v.jsx)(u.Z.Provider,{value:null,children:(0,v.jsx)(b,(0,o.Z)({as:m,ownerState:T,className:(0,a.Z)(k.root,g),ref:n},N,{children:"string"!==typeof r||C?(0,v.jsxs)(s.Fragment,{children:["start"===L?x||(x=(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 f}});var r=t(87462),i=t(63366),o=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),g=["className","component"],p=(0,c.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),f=o.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableContainer"}),o=t.className,c=t.component,d=void 0===c?"div":c,f=(0,i.Z)(t,g),x=(0,r.Z)({},t,{component:d}),m=function(e){var n=e.classes;return(0,a.Z)({root:["root"]},u,n)}(x);return(0,h.jsx)(p,(0,r.Z)({ref:n,as:d,className:(0,s.Z)(m.root,o),ownerState:x},f))}))},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 i=r.WebSocket||r.MozWebSocket,o=t(51496);function s(e,n){return n?new i(e,n):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,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); -//# sourceMappingURL=6763.1da82d5c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6763.1da82d5c.chunk.js.map b/portal-ui/build/static/js/6763.1da82d5c.chunk.js.map deleted file mode 100644 index d9da8bc34..000000000 --- a/portal-ui/build/static/js/6763.1da82d5c.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6763.1da82d5c.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 style={{ width: 200, color: \"#989898\", fontSize: 12 }}\n >\n \n {log.errKind}\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 {\n Grid,\n FormControl,\n MenuItem,\n Select,\n InputBase,\n Button,\n} from \"@mui/material\";\n\nimport moment from \"moment/moment\";\nimport { ErrorResponseHandler } from \"../../../../../src/common/types\";\nimport api from \"../../../../../src/common/api\";\nimport { AppState } from \"../../../../store\";\nimport {\n logMessageReceived,\n logResetMessages,\n setLogsStarted,\n} from \"../actions\";\nimport { LogMessage } from \"../types\";\nimport { wsProtocol } from \"../../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n logsCommon,\n searchField,\n inlineCheckboxes,\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 nodeField: {\n width: \"100%\",\n },\n ansidefault: {\n color: \"#000\",\n },\n midColumnCheckboxes: {\n display: \"flex\",\n },\n checkBoxLabel: {\n marginTop: 10,\n fontSize: 16,\n fontWeight: 500,\n },\n highlight: {\n \"& span\": {\n backgroundColor: \"#082F5238\",\n },\n },\n ...actionsTray,\n actionsTray: {\n ...actionsTray.actionsTray,\n marginBottom: 0,\n },\n ...searchField,\n ...logsCommon,\n ...inlineCheckboxes,\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 ILogs {\n classes: any;\n logMessageReceived: typeof logMessageReceived;\n logResetMessages: typeof logResetMessages;\n setLogsStarted: typeof setLogsStarted;\n messages: LogMessage[];\n logsStarted: boolean;\n}\nvar c: any = null;\n\nconst ErrorLogs = ({\n classes,\n logMessageReceived,\n logResetMessages,\n setLogsStarted,\n messages,\n logsStarted,\n}: ILogs) => {\n const [filter, setFilter] = useState(\"\");\n const [nodes, setNodes] = useState([\"\"]);\n const [selectedNode, setSelectedNode] = useState(\"all\");\n const [selectedUserAgent, setSelectedUserAgent] =\n useState(\"Select user agent\");\n const [userAgents, setUserAgents] = useState([\"All User Agents\"]);\n const [logType, setLogType] = useState(\"all\");\n const [loadingNodes, setLoadingNodes] = useState(false);\n\n const startLogs = () => {\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 c = new W3CWebSocket(\n `${wsProt}://${\n url.hostname\n }:${port}/ws/console/?logType=${logType}&node=${\n selectedNode === \"Select node\" ? \"\" : selectedNode\n }`\n );\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n setLogsStarted(true);\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\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 if (userAgents.indexOf(m.userAgent) < 0 && m.userAgent !== undefined) {\n userAgents.push(m.userAgent);\n setUserAgents(userAgents);\n }\n logMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n setLogsStarted(false);\n };\n return () => {\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n setLogsStarted(false);\n };\n }\n };\n\n const stopLogs = () => {\n if (c !== null && c !== undefined) {\n c.close(1000);\n setLogsStarted(false);\n }\n };\n\n const filtLow = filter.toLowerCase();\n let filteredMessages = messages.filter((m) => {\n if (\n m.userAgent === selectedUserAgent ||\n selectedUserAgent === \"All User Agents\" ||\n selectedUserAgent === \"Select user agent\"\n ) {\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 } else return false;\n });\n\n useEffect(() => {\n setLoadingNodes(true);\n api\n .invoke(\"GET\", `/api/v1/nodes`)\n .then((res: string[]) => {\n setNodes(res);\n // if (res.length > 0) {\n // setSelectedNode(res[0]);\n // }\n setLoadingNodes(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingNodes(false);\n });\n }, []);\n\n return (\n \n \n \n \n \n {!loadingNodes ? (\n \n {\n setSelectedNode(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={loadingNodes || logsStarted}\n input={}\n placeholder={\"Select Node\"}\n >\n \n All Nodes\n \n {nodes.map((aNode) => (\n \n {aNode}\n \n ))}\n \n \n ) : (\n

    Loading nodes

    \n )}\n
    \n\n \n \n {\n setLogType(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={loadingNodes || logsStarted}\n input={}\n placeholder={\"Select Log Type\"}\n >\n \n All Log Types\n \n \n MinIO\n \n \n Application\n \n \n \n \n \n {userAgents.length > 1 && (\n \n {\n setSelectedUserAgent(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={userAgents.length < 1 || logsStarted}\n input={}\n >\n \n Select User Agent\n \n {userAgents.map((anAgent) => (\n \n {anAgent}\n \n ))}\n \n \n )}\n \n \n {!logsStarted && (\n \n Start Logs\n \n )}\n {logsStarted && (\n \n Stop Logs\n \n )}\n \n \n {\n setFilter(e);\n }}\n value={filter}\n />\n \n \n \n \n \n \n {filteredMessages.map((m) => {\n return ;\n })}\n \n
    \n {filteredMessages.length === 0 && (\n
    \n No logs to display\n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.logs.logMessages,\n logsStarted: state.logs.logsStarted,\n});\n\nconst connector = connect(mapState, {\n logMessageReceived: logMessageReceived,\n logResetMessages: logResetMessages,\n setLogsStarted,\n});\n\n//export default withStyles(styles)(connector(ErrorLogs));\nexport default connector(withStyles(styles)(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","errKind","overflow","borderRadius","paddingBottom","textTransform","verticalAlign","Collapse","in","timeout","unmountOnExit","colSpan","margin","Typography","background","border","padding","SelectStyled","root","spacing","input","InputBase","c","messages","logs","logMessages","logsStarted","logMessageReceived","logResetMessages","setLogsStarted","logList","tab","logerror","logerror_tab","nodeField","ansidefault","midColumnCheckboxes","checkBoxLabel","highlight","actionsTray","marginBottom","logsCommon","inlineCheckboxes","containerForHeader","filter","setFilter","nodes","setNodes","selectedNode","setSelectedNode","selectedUserAgent","setSelectedUserAgent","userAgents","setUserAgents","logType","setLogType","loadingNodes","setLoadingNodes","filtLow","toLowerCase","filteredMessages","m","indexOf","x","useEffect","then","res","catch","err","PageHeader","PageLayout","Grid","FormControl","Select","disabled","MenuItem","aNode","anAgent","Button","type","url","URL","window","location","port","wsProt","wsProtocol","protocol","W3CWebSocket","hostname","interval","onopen","send","setInterval","onmessage","JSON","parse","data","moment","toDate","key","Math","random","undefined","push","onclose","clearInterval","close","SearchBox","TableContainer","Paper","Table","TableBody","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","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/6763.e14ad9c3.chunk.js b/portal-ui/build/static/js/6763.e14ad9c3.chunk.js new file mode 100644 index 000000000..685b9b849 --- /dev/null +++ b/portal-ui/build/static/js/6763.e14ad9c3.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6763],{59114:function(e,n,t){"use strict";var r=t(4942),i=t(1413),o=(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,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,h=e.overrideClass,g=e.value,p=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:i.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(a.Z,{placeholder:t,className:h||i.searchField,id:"search-resource",label:"",InputProps:p,onChange:function(e){l(e.target.value)},variant:"standard",value:g})}))},96763:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return G}});var r=t(29439),i=t(1413),o=t(72791),s=t(95087),a=t(11135),l=t(25787),c=t(60364),d=t(4834),u=t(61889),h=t(68096),g=t(58406),p=t(23786),f=t(36151),x=t(72426),m=t.n(x),v=t(81207),j=t(63722),Z=t(26824),b=t(23814),y=t(32291),w=t(74794),S=t(59114),C=t(10703),L=t(79836),A=t(53382),P=t(39281),T=t(35855),M=t(53994),N=t(56125),R=t(64554),k=t(20890),_=t(46431),F=t.n(_),E=t(80184),O=function(e){return(0,E.jsx)("svg",(0,i.Z)((0,i.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,E.jsxs)("g",{id:"Group_2001","data-name":"Group 2001",transform:"translate(1924 369) rotate(180)",children:[(0,E.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#e5e5e5"}),(0,E.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,E.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"})})]})}))},I=function(e){return(0,E.jsx)("svg",(0,i.Z)((0,i.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,E.jsxs)("g",{id:"Group_2476","data-name":"Group 2476",transform:"translate(-1898 -343)",children:[(0,E.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#fbfafa"}),(0,E.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,E.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"})})]})}))},z=function(e){return(0,E.jsxs)("svg",(0,i.Z)((0,i.Z)({id:"WarnFilledIcon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12"},e),{},{className:"min-icon",fill:"currentcolor",children:[(0,E.jsx)("defs",{children:(0,E.jsx)("clipPath",{id:"clip-path",children:(0,E.jsx)("rect",{id:"Rectangle_987","data-name":"Rectangle 987",width:"12",height:"12"})})}),(0,E.jsx)("g",{id:"warning-icon-full",transform:"translate(-0.002 -0.003)",children:(0,E.jsx)("g",{id:"Group_2356","data-name":"Group 2356",transform:"translate(0.002 0.003)","clip-path":"url(#clip-path)",children:(0,E.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)"})})})]}))},B=function(e){var n=e.log,t=(0,o.useState)(!1),i=(0,r.Z)(t,2),s=i[0],a=i[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,E.jsx)(o.Fragment,{});""!==n.ConsoleMsg?d=function(e){var n=e.ConsoleMsg;return n=(n=n.replace(/\x1B/g," ")).replace(/((\[[0-9;]+m))/g,""),(0,E.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,E.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflowX:"auto"},children:(0,E.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,E.jsxs)(o.Fragment,{children:[(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"API:\xa0"}),(0,E.jsx)("span",{style:n,children:e.api.name})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"Time:\xa0"}),(0,E.jsx)("span",{style:n,children:e.time.toString()})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"DeploymentID:\xa0"}),(0,E.jsx)("span",{style:n,children:e.deploymentid})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"RequestID:\xa0"}),(0,E.jsx)("span",{style:n,children:e.requestID})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"RemoteHost:\xa0"}),(0,E.jsx)("span",{style:n,children:e.remotehost})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"UserAgent:\xa0"}),(0,E.jsx)("span",{style:n,children:e.userAgent})]}),(0,E.jsxs)("div",{children:[(0,E.jsx)("b",{style:t,children:"Error:\xa0"}),(0,E.jsx)("span",{style:n,children:e.error&&e.error.message})]}),(0,E.jsx)("br",{}),(0,E.jsx)("div",{children:(0,E.jsx)("b",{style:t,children:"Backtrace:\xa0"})}),e.error&&e.error.source.map((function(e,r){return(0,E.jsxs)("div",{children:[(0,E.jsxs)("b",{style:t,children:[r,":\xa0"]}),(0,E.jsx)("span",{style:n,children:e})]})}))]})}(n)),c=c.replace(/((\[[0-9;]+m))/g,"");var u=(0,E.jsx)(F(),{format:"YYYY/MM/DD UTC HH:mm:ss",children:n.time});return 1===n.time.getFullYear()&&(u=(0,E.jsx)(o.Fragment,{children:"n/a"})),(0,E.jsxs)(o.Fragment,{children:[(0,E.jsxs)(T.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer",borderLeft:"0",borderRight:"0"},style:{backgroundColor:"#FDFDFD"},children:[(0,E.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,E.jsxs)(R.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:[(0,E.jsx)(z,{}),u]})}),(0,E.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,E.jsx)(R.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:n.errKind})}),(0,E.jsx)(M.Z,{onClick:function(){return a(!s)},children:(0,E.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,E.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},children:c})})}),(0,E.jsx)(M.Z,{onClick:function(){return a(!s)},style:{width:40},children:(0,E.jsx)(R.Z,{sx:{"& .min-icon":{display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"2px"},"&:hover .min-icon":{fill:"#eaeaea"}},children:s?(0,E.jsx)(O,{}):(0,E.jsx)(I,{})})})]}),s?(0,E.jsxs)(T.Z,{children:[(0,E.jsx)(M.Z,{style:{paddingBottom:0,paddingTop:0,width:200,textTransform:"uppercase",verticalAlign:"top",textAlign:"right",color:"#8399AB",fontWeight:"bold"},children:(0,E.jsx)(N.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,E.jsx)("div",{style:{marginTop:10},children:"Log Details"})})}),(0,E.jsx)(M.Z,{colSpan:2,style:{paddingBottom:0,paddingTop:0},children:(0,E.jsx)(N.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,E.jsx)(R.Z,{sx:{margin:1},children:(0,E.jsx)(k.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:d})})})}),(0,E.jsx)(M.Z,{style:{paddingBottom:0,paddingTop:0,width:40}})]}):null]},n.time.toString())},D=(0,l.Z)((function(e){return(0,a.Z)({root:{lineHeight:"50px","label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(d.ZP),H=null,G=(0,c.$j)((function(e){return{messages:e.logs.logMessages,logsStarted:e.logs.logsStarted}}),{logMessageReceived:j.Qo,logResetMessages:j.i1,setLogsStarted:j.v0})((0,l.Z)((function(e){return(0,a.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.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},nodeField:{width:"100%"},ansidefault:{color:"#000"},midColumnCheckboxes:{display:"flex"},checkBoxLabel:{marginTop:10,fontSize:16,fontWeight:500},highlight:{"& span":{backgroundColor:"#082F5238"}}},b.OR),{},{actionsTray:(0,i.Z)((0,i.Z)({},b.OR.actionsTray),{},{marginBottom:0})},b.qg),b.o$),b.IX),(0,b.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.logMessageReceived,i=e.logResetMessages,a=e.setLogsStarted,l=e.messages,c=e.logsStarted,d=(0,o.useState)(""),x=(0,r.Z)(d,2),j=x[0],b=x[1],T=(0,o.useState)([""]),M=(0,r.Z)(T,2),N=M[0],R=M[1],k=(0,o.useState)("all"),_=(0,r.Z)(k,2),F=_[0],O=_[1],I=(0,o.useState)("Select user agent"),z=(0,r.Z)(I,2),G=z[0],U=z[1],W=(0,o.useState)(["All User Agents"]),Y=(0,r.Z)(W,2),q=Y[0],X=Y[1],$=(0,o.useState)("all"),J=(0,r.Z)($,2),K=J[0],Q=J[1],V=(0,o.useState)(!1),ee=(0,r.Z)(V,2),ne=ee[0],te=ee[1],re=j.toLowerCase(),ie=l.filter((function(e){return(e.userAgent===G||"All User Agents"===G||"Select user agent"===G)&&(""===j||(e.ConsoleMsg.toLowerCase().indexOf(re)>=0||(!!(e.error&&e.error.source&&e.error.source.filter((function(e){return e.toLowerCase().indexOf(re)>=0})).length>0)||(!!(e.error&&e.error.message.toLowerCase().indexOf(re)>=0)||!!(e.api&&e.api.name.toLowerCase().indexOf(re)>=0)))))}));return(0,o.useEffect)((function(){te(!0),v.Z.invoke("GET","/api/v1/nodes").then((function(e){R(e),te(!1)})).catch((function(e){te(!1)}))}),[]),(0,E.jsxs)(o.Fragment,{children:[(0,E.jsx)(y.Z,{label:"Logs"}),(0,E.jsx)(w.Z,{children:(0,E.jsxs)(u.ZP,{container:!0,spacing:1,children:[(0,E.jsx)(u.ZP,{item:!0,xs:4,children:ne?(0,E.jsx)("h3",{children:" Loading nodes"}):(0,E.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,E.jsxs)(g.Z,{id:"node",name:"node","data-test-id":"node-selector",value:F,onChange:function(e){O(e.target.value)},className:n.searchField,disabled:ne||c,input:(0,E.jsx)(D,{}),placeholder:"Select Node",children:[(0,E.jsx)(p.Z,{value:"all",children:"All Nodes"},"select-node-all"),N.map((function(e){return(0,E.jsx)(p.Z,{value:e,children:e},"select-node-name-".concat(e))}))]})})}),(0,E.jsx)(u.ZP,{item:!0,xs:3,children:(0,E.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,E.jsxs)(g.Z,{id:"logType",name:"logType","data-test-id":"log-type",value:K,onChange:function(e){Q(e.target.value)},className:n.searchField,disabled:ne||c,input:(0,E.jsx)(D,{}),placeholder:"Select Log Type",children:[(0,E.jsx)(p.Z,{value:"all",children:"All Log Types"},"all-log-types"),(0,E.jsx)(p.Z,{value:"minio",children:"MinIO"},"minio-log-type"),(0,E.jsx)(p.Z,{value:"application",children:"Application"},"app-log-type")]})})}),(0,E.jsx)(u.ZP,{item:!0,xs:3,children:q.length>1&&(0,E.jsx)(h.Z,{variant:"outlined",className:n.nodeField,children:(0,E.jsxs)(g.Z,{id:"userAgent",name:"userAgent","data-test-id":"user-agent",value:G,onChange:function(e){U(e.target.value)},className:n.searchField,disabled:q.length<1||c,input:(0,E.jsx)(D,{}),children:[(0,E.jsx)(p.Z,{value:G,disabled:!0,children:"Select User Agent"},"select-user-agent-default"),q.map((function(e){return(0,E.jsx)(p.Z,{value:e,children:e},"select-user-agent-".concat(e))}))]})})}),(0,E.jsxs)(u.ZP,{item:!0,xs:2,textAlign:"right",children:[!c&&(0,E.jsx)(f.Z,{type:"submit",variant:"contained",color:"primary",disabled:!1,onClick:function(){i();var e=new URL(window.location.toString()),n=e.port,r=(0,Z.x2)(e.protocol);H=new s.w3cwebsocket("".concat(r,"://").concat(e.hostname,":").concat(n,"/ws/console/?logType=").concat(K,"&node=").concat("Select node"===F?"":F));var o=null;if(null!==H)return H.onopen=function(){console.log("WebSocket Client Connected"),a(!0),H.send("ok"),o=setInterval((function(){H.send("ok")}),1e4)},H.onmessage=function(e){var n=JSON.parse(e.data.toString());n.time=m()(n.time,"HH:mm:s UTC MM/DD/YYYY").toDate(),n.key=Math.random(),q.indexOf(n.userAgent)<0&&void 0!==n.userAgent&&(q.push(n.userAgent),X(q)),t(n)},H.onclose=function(){clearInterval(o),console.log("connection closed by server"),a(!1)},function(){H.close(1e3),clearInterval(o),console.log("closing websockets"),a(!1)}},children:"Start Logs"}),c&&(0,E.jsx)(f.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){null!==H&&void 0!==H&&(H.close(1e3),a(!1))},children:"Stop Logs"})]}),(0,E.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,E.jsx)(S.Z,{placeholder:"Filter",onChange:function(e){b(e)},value:j})}),(0,E.jsx)(u.ZP,{item:!0,xs:12,children:(0,E.jsx)("div",{id:"logs-container",className:n.logList,"data-test-id":"logs-list-container",children:(0,E.jsxs)(P.Z,{component:C.Z,children:[(0,E.jsx)(L.Z,{"aria-label":"collapsible table",children:(0,E.jsx)(A.Z,{children:ie.map((function(e){return(0,E.jsx)(B,{log:e})}))})}),0===ie.length&&(0,E.jsx)("div",{style:{padding:20,textAlign:"center"},children:"No logs to display"})]})})})]})})]})})))},26824:function(e,n,t){"use strict";t.d(n,{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 n="ws";return"https:"===e&&(n="wss"),n}},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return y}});var r=t(4942),i=t(63366),o=t(87462),s=t(72791),a=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),h=t(52930),g=t(47630),p=t(95159);function f(e){return(0,p.Z)("MuiInputAdornment",e)}var x,m=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),v=t(93736),j=t(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,g.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,o.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,r.Z)({},"&.".concat(m.positionStart,"&:not(.").concat(m.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),y=s.forwardRef((function(e,n){var t=(0,v.Z)({props:e,name:"MuiInputAdornment"}),r=t.children,g=t.className,p=t.component,m=void 0===p?"div":p,y=t.disablePointerEvents,w=void 0!==y&&y,S=t.disableTypography,C=void 0!==S&&S,L=t.position,A=t.variant,P=(0,i.Z)(t,Z),T=(0,h.Z)()||{},M=A;A&&T.variant,T&&!M&&(M=T.variant);var N=(0,o.Z)({},t,{hiddenLabel:T.hiddenLabel,size:T.size,disablePointerEvents:w,position:L,variant:M}),R=function(e){var n=e.classes,t=e.disablePointerEvents,r=e.hiddenLabel,i=e.position,o=e.size,s=e.variant,a={root:["root",t&&"disablePointerEvents",i&&"position".concat((0,c.Z)(i)),s,r&&"hiddenLabel",o&&"size".concat((0,c.Z)(o))]};return(0,l.Z)(a,f,n)}(N);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,o.Z)({as:m,ownerState:N,className:(0,a.Z)(R.root,g),ref:n},P,{children:"string"!==typeof r||C?(0,j.jsxs)(s.Fragment,{children:["start"===L?x||(x=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:r})}))})}))},39281:function(e,n,t){"use strict";t.d(n,{Z:function(){return f}});var r=t(87462),i=t(63366),o=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),g=["className","component"],p=(0,c.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),f=o.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableContainer"}),o=t.className,c=t.component,d=void 0===c?"div":c,f=(0,i.Z)(t,g),x=(0,r.Z)({},t,{component:d}),m=function(e){var n=e.classes;return(0,a.Z)({root:["root"]},u,n)}(x);return(0,h.jsx)(p,(0,r.Z)({ref:n,as:d,className:(0,s.Z)(m.root,o),ownerState:x},f))}))},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 i=r.WebSocket||r.MozWebSocket,o=t(51496);function s(e,n){return n?new i(e,n):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,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=6763.e14ad9c3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6763.e14ad9c3.chunk.js.map b/portal-ui/build/static/js/6763.e14ad9c3.chunk.js.map new file mode 100644 index 000000000..2fc70e7f9 --- /dev/null +++ b/portal-ui/build/static/js/6763.e14ad9c3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6763.e14ad9c3.chunk.js","mappings":"6NA6EA,KAAeA,EAAAA,EAAAA,IApDA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,aAAY,UACPA,EAAAA,GAAAA,aAELC,UAAW,OA+Cf,EAnCkB,SAAC,GAOI,IAAD,IANpBC,YAAAA,OAMoB,MANN,GAMM,EALpBC,EAKoB,EALpBA,QACAC,EAIoB,EAJpBA,SAIoB,IAHpBC,kBAAAA,OAGoB,MAHA,MAGA,EAFpBC,EAEoB,EAFpBA,cACAC,EACoB,EADpBA,MAEMC,GAAU,QACdC,kBAAkB,GADJ,UAEVJ,EAFU,cAGZ,SAAC,IAAD,CACEK,SAAUL,EACVM,UAAWR,EAAQF,UAFrB,UAIE,SAAC,IAAD,OAIN,OACE,SAAC,IAAD,CACEC,YAAaA,EACbS,UAAWL,GAAgCH,EAAQH,YACnDY,GAAG,kBACHC,MAAM,GACNC,WAAYN,EACZJ,SAAU,SAACW,GACTX,EAASW,EAAEC,OAAOT,QAEpBU,QAAQ,WACRV,MAAOA,Q,ocChBb,EArCmB,SAACW,GAAD,OACjB,gCACEC,MAAM,6BACNR,UAAS,WACTS,KAAM,eACNC,QAAQ,aACJH,GALN,cAOE,eACEN,GAAG,aACH,YAAU,aACVU,UAAU,kCAHZ,WAKE,iBACEV,GAAG,iBACH,YAAU,iBACVW,MAAM,KACNC,OAAO,KACPF,UAAU,sBACVF,KAAK,aAEP,cACER,GAAG,uBACHU,UAAU,uCAFZ,UAIE,iBACEV,GAAG,YACH,YAAU,YACVa,EAAE,+MACFH,UAAU,iBACVF,KAAK,qBCGf,EAjCqB,SAACF,GAAD,OACnB,gCACEC,MAAM,6BACNR,UAAS,WACTS,KAAM,eACNC,QAAQ,aACJH,GALN,cAOE,eAAGN,GAAG,aAAa,YAAU,aAAaU,UAAU,wBAApD,WACE,iBACEV,GAAG,iBACH,YAAU,iBACVW,MAAM,KACNC,OAAO,KACPF,UAAU,sBACVF,KAAK,aAEP,cACER,GAAG,uBACHU,UAAU,uCAFZ,UAIE,iBACEV,GAAG,YACH,YAAU,YACVa,EAAE,+MACFH,UAAU,iBACVF,KAAK,qBCaf,EAvCuB,SAACF,GACtB,OACE,iCACEN,GAAG,iBACHO,MAAM,6BACNE,QAAQ,aACJH,GAJN,IAKEP,UAAS,WACTS,KAAM,eANR,WAQE,2BACE,qBAAUR,GAAG,YAAb,UACE,iBACEA,GAAG,gBACH,YAAU,gBACVW,MAAM,KACNC,OAAO,YAIb,cAAGZ,GAAG,oBAAoBU,UAAU,2BAApC,UACE,cACEV,GAAG,aACH,YAAU,aACVU,UAAU,yBACV,YAAU,kBAJZ,UAME,iBACEV,GAAG,YACH,YAAU,YACVa,EAAE,6IACFH,UAAU,sCCiOtB,EA1JgB,SAACJ,GACf,IAAQQ,EAAQR,EAARQ,IACR,GAAwBC,EAAAA,EAAAA,WAAkB,GAA1C,eAAOC,EAAP,KAAaC,EAAb,KAEIC,EAAa,GACM,KAAnBJ,EAAIK,WACND,EAAaJ,EAAIK,WACM,OAAdL,EAAIM,OAAwC,KAAtBN,EAAIM,MAAMC,UACzCH,EAAaJ,EAAIM,MAAMC,SAGzB,IAAIC,EAAkBJ,EAAWK,QAAQ,6CAAgB,IAEzDD,EAAkBA,EAAgBC,QAAQ,kBAAmB,IAG7D,IAEIC,GAAc,SAAC,EAAAC,SAAD,IACK,KAAnBX,EAAIK,WACNK,EAlHyB,SAACV,GAE5B,IAEIU,EAAcV,EAAIK,WAStB,OADAK,GALAA,EAAcA,EAAYD,QAAQ,QAAS,MAKjBA,QAVN,kBAU2B,KAE7C,gBACEG,MAAO,CACLC,QAAS,QACTC,YAAa,QACbjB,MAAO,OACPkB,YAAa,GACbC,aAAc,IANlB,UASE,gBACEJ,MAAO,CACLC,QAAS,aACTI,WAAY,SACZC,aAAc,WACdC,UAAW,QALf,UAQE,yBAAMT,QAmFIU,CAAqBpB,GACZ,OAAdA,EAAIM,OAAwC,KAAtBN,EAAIM,MAAMC,UACzCG,EAhFoB,SAACV,GACvB,IAAMqB,EAAY,CAChBC,MAAO,UACPC,WAAY,IACZC,WAAY,YACZC,SAAU,QAENC,EAAa,CACjBF,WAAY,YACZC,SAAU,QAEZ,OACE,UAAC,EAAAd,SAAD,YACE,4BACE,cAAGC,MAAOc,EAAV,uBACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAI2B,IAAIC,WAEnC,4BACE,cAAGhB,MAAOc,EAAV,wBACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAI6B,KAAKC,iBAEpC,4BACE,cAAGlB,MAAOc,EAAV,gCACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAI+B,mBAE/B,4BACE,cAAGnB,MAAOc,EAAV,6BACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAIgC,gBAE/B,4BACE,cAAGpB,MAAOc,EAAV,8BACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAIiC,iBAE/B,4BACE,cAAGrB,MAAOc,EAAV,6BACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAIkC,gBAE/B,4BACE,cAAGtB,MAAOc,EAAV,yBACA,iBAAMd,MAAOS,EAAb,SAAyBrB,EAAIM,OAASN,EAAIM,MAAMC,cAElD,mBACA,0BACE,cAAGK,MAAOc,EAAV,8BAED1B,EAAIM,OACHN,EAAIM,MAAM6B,OAAOC,KAAI,SAAC/C,EAAGgD,GACvB,OACE,4BACE,eAAGzB,MAAOc,EAAV,UAAuBW,EAAvB,YACA,iBAAMzB,MAAOS,EAAb,SAAyBhC,aA8BrBiD,CAAgBtC,IAGhCQ,EAAkBA,EAAgBC,QATd,kBASmC,IAEvD,IAAI8B,GAAU,SAAC,IAAD,CAAQC,OAAO,0BAAf,SAA0CxC,EAAI6B,OAK5D,OAJ+B,IAA3B7B,EAAI6B,KAAKY,gBACXF,GAAU,SAAC,EAAA5B,SAAD,oBAIV,UAAC,WAAD,YACE,UAAC+B,EAAA,EAAD,CACEC,GAAI,CACF,QAAS,CAAEC,aAAc,SACzBC,OAAQ,UACRC,WAAY,IACZC,YAAa,KAEfnC,MAAO,CAAEoC,gBAAiB,WAP5B,WASE,SAACC,EAAA,EAAD,CACEC,QAAS,kBAAM/C,GAASD,IACxBU,MAAO,CAAEf,MAAO,IAAKyB,MAAO,UAAWG,SAAU,IAFnD,UAIE,UAAC0B,EAAA,EAAD,CACER,GAAI,CACF,cAAe,CAAE9C,MAAO,GAAIuD,YAAa,GACzC7B,WAAY,OACZ8B,WAAY,GAJhB,WAOE,SAAC,EAAD,IACCd,QAGL,SAACU,EAAA,EAAD,CACEC,QAAS,kBAAM/C,GAASD,IACxBU,MAAO,CAAEf,MAAO,IAAKyB,MAAO,UAAWG,SAAU,IAFnD,UAIE,SAAC0B,EAAA,EAAD,CACER,GAAI,CACF,cAAe,CAAE9C,MAAO,GAAIuD,YAAa,GACzC7B,WAAY,OACZ8B,WAAY,GAJhB,SAOGrD,EAAIsD,aAGT,SAACL,EAAA,EAAD,CAAWC,QAAS,kBAAM/C,GAASD,IAAnC,UACE,gBACEU,MAAO,CACLC,QAAS,QACTC,YAAa,QACbjB,MAAO,OACPkB,YAAa,GACbC,aAAc,IANlB,UASE,gBACEJ,MAAO,CACLC,QAAS,aACTI,WAAY,SACZC,aAAc,WACdqC,SAAU,UALd,SAQG/C,SAIP,SAACyC,EAAA,EAAD,CAAWC,QAAS,kBAAM/C,GAASD,IAAOU,MAAO,CAAEf,MAAO,IAA1D,UACE,SAACsD,EAAA,EAAD,CACER,GAAI,CACF,cAAe,CACb9B,QAAS,OACT2C,WAAY,SACZC,eAAgB,SAChBC,aAAc,OAEhB,oBAAqB,CACnBhE,KAAM,YATZ,SAaGQ,GAAO,SAAC,EAAD,KAAiB,SAAC,EAAD,WAI9BA,GACC,UAACwC,EAAA,EAAD,YACE,SAACO,EAAA,EAAD,CACErC,MAAO,CACL+C,cAAe,EACfC,WAAY,EACZ/D,MAAO,IACPgE,cAAe,YACfC,cAAe,MACfC,UAAW,QACXzC,MAAO,UACPC,WAAY,QAThB,UAYE,SAACyC,EAAA,EAAD,CAAUC,GAAI/D,EAAMgE,QAAQ,OAAOC,eAAa,EAAhD,UACE,gBAAKvD,MAAO,CAAEwD,UAAW,IAAzB,8BAGJ,SAACnB,EAAA,EAAD,CAAWoB,QAAS,EAAGzD,MAAO,CAAE+C,cAAe,EAAGC,WAAY,GAA9D,UACE,SAACI,EAAA,EAAD,CAAUC,GAAI/D,EAAMgE,QAAQ,OAAOC,eAAa,EAAhD,UACE,SAAChB,EAAA,EAAD,CAAKR,GAAI,CAAE2B,OAAQ,GAAnB,UACE,SAACC,EAAA,EAAD,CACE3D,MAAO,CACL4D,WAAY,UACZC,OAAQ,oBACRC,QAAS,EACTjD,SAAU,GACVH,MAAO,WANX,SASGZ,WAKT,SAACuC,EAAA,EAAD,CAAWrC,MAAO,CAAE+C,cAAe,EAAGC,WAAY,EAAG/D,MAAO,SAE5D,OApHeG,EAAI6B,KAAKC,aC/C5B6C,GAAexG,EAAAA,EAAAA,IAAW,SAACC,GAAD,OAC9BC,EAAAA,EAAAA,GAAa,CACXuG,KAAM,CACJvB,WAAY,OACZ,YAAa,CACXe,UAAWhG,EAAMyG,QAAQ,IAE3B,4BAA6B,CAC3B7B,gBAAiB,gBAGrB8B,MAAO,CACLhF,OAAQ,GACR2B,SAAU,GACV4B,WAAY,YAdGlF,CAiBnB4G,EAAAA,IAUEC,EAAS,KAuSb,GAPkBC,EAAAA,EAAAA,KALD,SAACC,GAAD,MAAsB,CACrCC,SAAUD,EAAME,KAAKC,YACrBC,YAAaJ,EAAME,KAAKE,eAGU,CAClCC,mBAAoBA,EAAAA,GACpBC,iBAAkBA,EAAAA,GAClBC,eAAAA,EAAAA,IAIF,EAAyBtH,EAAAA,EAAAA,IApXV,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wCACXqH,QAAS,CACPlB,WAAY,OACZmB,UAAW,IACX7F,OAAQ,sBACRyD,SAAU,OACV9B,SAAU,GACViC,aAAc,GAEhBkC,IAAK,CACH7E,YAAa,IAEf8E,SAAU,CACRvE,MAAO,WAETwE,aAAc,CACZxE,MAAO,UACPP,YAAa,IAEfgF,UAAW,CACTlG,MAAO,QAETmG,YAAa,CACX1E,MAAO,QAET2E,oBAAqB,CACnBpF,QAAS,QAEXqF,cAAe,CACb9B,UAAW,GACX3C,SAAU,GACVF,WAAY,KAEd4E,UAAW,CACT,SAAU,CACRnD,gBAAiB,eAGlBoD,EAAAA,IAtCO,IAuCVA,aAAY,kBACPA,EAAAA,GAAAA,aADM,IAETC,aAAc,KAEb/H,EAAAA,IACAgI,EAAAA,IACAC,EAAAA,KACAC,EAAAA,EAAAA,IAAmBpI,EAAMyG,QAAQ,QAqUf1G,EArSP,SAAC,GAOL,IANZM,EAMW,EANXA,QACA8G,EAKW,EALXA,mBACAC,EAIW,EAJXA,iBACAC,EAGW,EAHXA,eACAN,EAEW,EAFXA,SACAG,EACW,EADXA,YAEA,GAA4BrF,EAAAA,EAAAA,UAAiB,IAA7C,eAAOwG,EAAP,KAAeC,EAAf,KACA,GAA0BzG,EAAAA,EAAAA,UAAmB,CAAC,KAA9C,eAAO0G,EAAP,KAAcC,EAAd,KACA,GAAwC3G,EAAAA,EAAAA,UAAiB,OAAzD,eAAO4G,EAAP,KAAqBC,EAArB,KACA,GACE7G,EAAAA,EAAAA,UAAiB,qBADnB,eAAO8G,EAAP,KAA0BC,EAA1B,KAEA,GAAoC/G,EAAAA,EAAAA,UAAmB,CAAC,oBAAxD,eAAOgH,EAAP,KAAmBC,EAAnB,KACA,GAA8BjH,EAAAA,EAAAA,UAAiB,OAA/C,eAAOkH,EAAP,KAAgBC,EAAhB,KACA,GAAwCnH,EAAAA,EAAAA,WAAkB,GAA1D,gBAAOoH,GAAP,MAAqBC,GAArB,MA6DMC,GAAUd,EAAOe,cACnBC,GAAmBtC,EAASsB,QAAO,SAACiB,GACtC,OACEA,EAAExF,YAAc6E,GACM,oBAAtBA,GACsB,sBAAtBA,KAEe,KAAXN,IACEiB,EAAErH,WAAWmH,cAAcG,QAAQJ,KAAY,OAGjDG,EAAEpH,OACFoH,EAAEpH,MAAM6B,QACRuF,EAAEpH,MAAM6B,OAAOsE,QAAO,SAACmB,GACrB,OAAOA,EAAEJ,cAAcG,QAAQJ,KAAY,KAC1CM,OAAS,QAIZH,EAAEpH,OACFoH,EAAEpH,MAAMC,QAAQiH,cAAcG,QAAQJ,KAAY,OAGzCG,EAAE/F,KAAO+F,EAAE/F,IAAIC,KAAK4F,cAAcG,QAAQJ,KAAY,UAyBvE,OAhBAO,EAAAA,EAAAA,YAAU,WACRR,IAAgB,GAChB3F,EAAAA,EAAAA,OACU,MADV,iBAEGoG,MAAK,SAACC,GACLpB,EAASoB,GAITV,IAAgB,MAEjBW,OAAM,SAACC,GACNZ,IAAgB,QAEnB,KAGD,UAAC,EAAA3G,SAAD,YACE,SAACwH,EAAA,EAAD,CAAYhJ,MAAM,UAClB,SAACiJ,EAAA,EAAD,WACE,UAACC,EAAA,GAAD,CAAMC,WAAS,EAACzD,QAAS,EAAzB,WACE,SAACwD,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAf,SACInB,IA0BA,4CAzBA,SAACoB,EAAA,EAAD,CAAalJ,QAAQ,WAAWN,UAAWR,EAAQsH,UAAnD,UACE,UAAC2C,EAAA,EAAD,CACExJ,GAAG,OACH0C,KAAK,OACL,eAAa,gBACb/C,MAAOgI,EACPnI,SAAU,SAACW,GACTyH,EAAgBzH,EAAEC,OAAOT,QAE3BI,UAAWR,EAAQH,YACnBqK,SAAUtB,IAAgB/B,EAC1BR,OAAO,SAACH,EAAD,IACPnG,YAAa,cAXf,WAaE,SAACoK,EAAA,EAAD,CAAU/J,MAAO,MAAjB,yCAGC8H,EAAMvE,KAAI,SAACyG,GAAD,OACT,SAACD,EAAA,EAAD,CAAU/J,MAAOgK,EAAjB,SACGA,GADH,2BAAiDA,eAW3D,SAACR,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAf,UACE,SAACC,EAAA,EAAD,CAAalJ,QAAQ,WAAWN,UAAWR,EAAQsH,UAAnD,UACE,UAAC2C,EAAA,EAAD,CACExJ,GAAG,UACH0C,KAAK,UACL,eAAa,WACb/C,MAAOsI,EACPzI,SAAU,SAACW,GACT+H,EAAW/H,EAAEC,OAAOT,QAEtBI,UAAWR,EAAQH,YACnBqK,SAAUtB,IAAgB/B,EAC1BR,OAAO,SAACH,EAAD,IACPnG,YAAa,kBAXf,WAaE,SAACoK,EAAA,EAAD,CAAU/J,MAAM,MAAhB,0BAA0B,kBAG1B,SAAC+J,EAAA,EAAD,CAAU/J,MAAM,QAAhB,kBAA4B,mBAG5B,SAAC+J,EAAA,EAAD,CAAU/J,MAAM,cAAhB,wBAAkC,wBAMxC,SAACwJ,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAf,SACGvB,EAAWY,OAAS,IACnB,SAACY,EAAA,EAAD,CAAalJ,QAAQ,WAAWN,UAAWR,EAAQsH,UAAnD,UACE,UAAC2C,EAAA,EAAD,CACExJ,GAAG,YACH0C,KAAK,YACL,eAAa,aACb/C,MAAOkI,EACPrI,SAAU,SAACW,GACT2H,EAAqB3H,EAAEC,OAAOT,QAEhCI,UAAWR,EAAQH,YACnBqK,SAAU1B,EAAWY,OAAS,GAAKvC,EACnCR,OAAO,SAACH,EAAD,IAVT,WAYE,SAACiE,EAAA,EAAD,CACE/J,MAAOkI,EAEP4B,UAAU,EAHZ,2DAOC1B,EAAW7E,KAAI,SAAC0G,GAAD,OACd,SAACF,EAAA,EAAD,CACE/J,MAAOiK,EADT,SAIGA,GAJH,4BAE4BA,eAStC,UAACT,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAGzE,UAAW,QAA7B,WACIuB,IACA,SAACyD,EAAA,EAAD,CACEC,KAAK,SACLzJ,QAAQ,YACR+B,MAAM,UACNqH,UAAU,EACVzF,QAnNI,WAChBsC,IACA,IAAMyD,EAAM,IAAIC,IAAIC,OAAOC,SAAStH,YAE9BuH,EAAwBJ,EAAII,KAE5BC,GAASC,EAAAA,EAAAA,IAAWN,EAAIO,UAE9BxE,EAAI,IAAIyE,EAAAA,aAAJ,UACCH,EADD,cAEAL,EAAIS,SAFJ,YAGEL,EAHF,gCAG8BlC,EAH9B,iBAIiB,gBAAjBN,EAAiC,GAAKA,IAG1C,IAAI8C,EAAuB,KAC3B,GAAU,OAAN3E,EA2BF,OA1BAA,EAAE4E,OAAS,WACTC,QAAQ7J,IAAI,8BACZyF,GAAe,GACfT,EAAE8E,KAAK,MACPH,EAAWI,aAAY,WACrB/E,EAAE8E,KAAK,QACN,MAEL9E,EAAEgF,UAAY,SAACzJ,GAIb,IAAImH,EAAgBuC,KAAKC,MAAM3J,EAAQ4J,KAAKrI,YAC5C4F,EAAE7F,KAAOuI,GAAAA,CAAO1C,EAAE7F,KAAM,0BAA0BwI,SAClD3C,EAAE4C,IAAMC,KAAKC,SACTvD,EAAWU,QAAQD,EAAExF,WAAa,QAAqBuI,IAAhB/C,EAAExF,YAC3C+E,EAAWyD,KAAKhD,EAAExF,WAClBgF,EAAcD,IAEhB1B,EAAmBmC,IAErB1C,EAAE2F,QAAU,WACVC,cAAcjB,GACdE,QAAQ7J,IAAI,+BACZyF,GAAe,IAEV,WACLT,EAAE6F,MAAM,KACRD,cAAcjB,GACdE,QAAQ7J,IAAI,sBACZyF,GAAe,KA+JT,wBAUDH,IACC,SAACyD,EAAA,EAAD,CACEC,KAAK,SACLzJ,QAAQ,YACR+B,MAAM,UACN4B,QAzKG,WACL,OAAN8B,QAAoByF,IAANzF,IAChBA,EAAE6F,MAAM,KACRpF,GAAe,KAkKP,2BAUJ,SAAC4C,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,GAAIvJ,UAAWR,EAAQ2H,YAAtC,UACE,SAAC0E,EAAA,EAAD,CACEtM,YAAY,SACZE,SAAU,SAACW,GACTqH,EAAUrH,IAEZR,MAAO4H,OAGX,SAAC4B,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,GAAf,UACE,gBACEtJ,GAAG,iBACHD,UAAWR,EAAQiH,QACnB,eAAa,sBAHf,UAKE,UAACqF,EAAA,EAAD,CAAgBC,UAAWC,EAAAA,EAA3B,WACE,SAACC,EAAA,EAAD,CAAO,aAAW,oBAAlB,UACE,SAACC,EAAA,EAAD,UACG1D,GAAiBrF,KAAI,SAACsF,GACrB,OAAO,SAAC,EAAD,CAAS1H,IAAK0H,WAIE,IAA5BD,GAAiBI,SAChB,gBAAKjH,MAAO,CAAE8D,QAAS,GAAIX,UAAW,UAAtC,oD,4ICnYX,IAEMqH,EAAyB,KACzBC,EAAyB,KACzBC,EAA2B,KAE3B/B,EAAa,SAACC,GACzB,IAAID,EAAa,KAIjB,MAHiB,WAAbC,IACFD,EAAa,OAERA,I,0MC3BF,SAASgC,EAA8BC,GAC5C,OAAOC,EAAAA,EAAAA,GAAqB,oBAAqBD,GAEnD,ICDIE,EDEJ,GAD8BC,E,SAAAA,GAAuB,oBAAqB,CAAC,OAAQ,SAAU,WAAY,WAAY,gBAAiB,cAAe,uBAAwB,cAAe,c,sBCCtLC,EAAY,CAAC,WAAY,YAAa,YAAa,uBAAwB,oBAAqB,WAAY,WAqC5GC,GAAqBC,EAAAA,EAAAA,IAAO,MAAO,CACvClK,KAAM,oBACN4J,KAAM,OACNO,kBAzBwB,SAACvM,EAAOwM,GAChC,IACEC,EACEzM,EADFyM,WAEF,MAAO,CAACD,EAAOpH,KAAMoH,EAAO,WAAD,QAAYE,EAAAA,EAAAA,GAAWD,EAAWjN,aAAkD,IAApCiN,EAAWE,sBAAiCH,EAAOG,qBAAsBH,EAAOC,EAAW1M,YAkB7IuM,EAIxB,gBACD1N,EADC,EACDA,MACA6N,EAFC,EAEDA,WAFC,OAGGG,EAAAA,EAAAA,GAAS,CACbvL,QAAS,OACTf,OAAQ,SAERuM,UAAW,MACX7I,WAAY,SACZvC,WAAY,SACZK,MAAOlD,EAAMkO,QAAQC,OAAOC,QACJ,WAAvBP,EAAW1M,UAAX,sBAEKkN,EAAAA,cAFL,kBAEkDA,EAAAA,YAFlD,KAEyF,CACxFrI,UAAW,KAEY,UAAxB6H,EAAWjN,UAAwB,CAEpCoE,YAAa,GACY,QAAxB6I,EAAWjN,UAAsB,CAElC0N,WAAY,IACyB,IAApCT,EAAWE,sBAAiC,CAE7CQ,cAAe,YA4HjB,EA1HoCC,EAAAA,YAAiB,SAAwBC,EAASC,GACpF,IAAMtN,GAAQuN,EAAAA,EAAAA,GAAc,CAC1BvN,MAAOqN,EACPjL,KAAM,sBAINoL,EAOExN,EAPFwN,SACA/N,EAMEO,EANFP,UAFF,EAQIO,EALFwL,UAAAA,OAHF,MAGc,MAHd,IAQIxL,EAJF2M,qBAAAA,OAJF,WAQI3M,EAHFyN,kBAAAA,OALF,SAMEjO,EAEEQ,EAFFR,SACSkO,EACP1N,EADFD,QAEI4N,GAAQC,EAAAA,EAAAA,GAA8B5N,EAAOoM,GAE7CyB,GAAiBC,EAAAA,EAAAA,MAAoB,GACvC/N,EAAU2N,EAEVA,GAAeG,EAAe9N,QAQ9B8N,IAAmB9N,IACrBA,EAAU8N,EAAe9N,SAG3B,IAAM0M,GAAaG,EAAAA,EAAAA,GAAS,GAAI5M,EAAO,CACrC+N,YAAaF,EAAeE,YAC5BC,KAAMH,EAAeG,KACrBrB,qBAAAA,EACAnN,SAAAA,EACAO,QAAAA,IAGId,EArFkB,SAAAwN,GACxB,IACExN,EAMEwN,EANFxN,QACA0N,EAKEF,EALFE,qBACAoB,EAIEtB,EAJFsB,YACAvO,EAGEiN,EAHFjN,SACAwO,EAEEvB,EAFFuB,KACAjO,EACE0M,EADF1M,QAEIkO,EAAQ,CACZ7I,KAAM,CAAC,OAAQuH,GAAwB,uBAAwBnN,GAAY,WAAJ,QAAekN,EAAAA,EAAAA,GAAWlN,IAAaO,EAASgO,GAAe,cAAeC,GAAQ,OAAJ,QAAWtB,EAAAA,EAAAA,GAAWsB,MAEjL,OAAOE,EAAAA,EAAAA,GAAeD,EAAOlC,EAA+B9M,GAyE5CkP,CAAkB1B,GAClC,OAAoB2B,EAAAA,EAAAA,KAAKC,EAAAA,EAAAA,SAA6B,CACpDhP,MAAO,KACPmO,UAAuBY,EAAAA,EAAAA,KAAK/B,GAAoBO,EAAAA,EAAAA,GAAS,CACvD0B,GAAI9C,EACJiB,WAAYA,EACZhN,WAAW8O,EAAAA,EAAAA,GAAKtP,EAAQmG,KAAM3F,GAC9B6N,IAAKA,GACJK,EAAO,CACRH,SAA8B,kBAAbA,GAA0BC,GAGzBe,EAAAA,EAAAA,MAAMpB,EAAAA,SAAgB,CACtCI,SAAU,CAAc,UAAbhO,EAEX0M,IAAUA,GAAqBkC,EAAAA,EAAAA,KAAK,OAAQ,CAC1C3O,UAAW,cACX+N,SAAU,YACN,KAAMA,MAT8DY,EAAAA,EAAAA,KAAKrJ,EAAAA,EAAY,CAC3FjD,MAAO,iBACP0L,SAAUA,a,+JC1HX,SAASiB,EAA8BzC,GAC5C,OAAOC,EAAAA,EAAAA,GAAqB,oBAAqBD,IAErBG,E,SAAAA,GAAuB,oBAAqB,CAAC,SAA3E,I,WCFMC,EAAY,CAAC,YAAa,aAoB1BsC,GAAqBpC,EAAAA,EAAAA,IAAO,MAAO,CACvClK,KAAM,oBACN4J,KAAM,OACNO,kBAAmB,SAACvM,EAAOwM,GAAR,OAAmBA,EAAOpH,OAHpBkH,CAIxB,CACDjM,MAAO,OACPsB,UAAW,SA4Db,EA1DoCyL,EAAAA,YAAiB,SAAwBC,EAASC,GACpF,IAAMtN,GAAQuN,EAAAA,EAAAA,GAAc,CAC1BvN,MAAOqN,EACPjL,KAAM,sBAIN3C,EAEEO,EAFFP,UADF,EAGIO,EADFwL,UAAAA,OAFF,MAEc,MAFd,EAIMmC,GAAQC,EAAAA,EAAAA,GAA8B5N,EAAOoM,GAE7CK,GAAaG,EAAAA,EAAAA,GAAS,GAAI5M,EAAO,CACrCwL,UAAAA,IAGIvM,EAlCkB,SAAAwN,GACxB,IACExN,EACEwN,EADFxN,QAKF,OAAOiP,EAAAA,EAAAA,GAHO,CACZ9I,KAAM,CAAC,SAEoBqJ,EAA+BxP,GA2B5CkP,CAAkB1B,GAClC,OAAoB2B,EAAAA,EAAAA,KAAKM,GAAoB9B,EAAAA,EAAAA,GAAS,CACpDU,IAAKA,EACLgB,GAAI9C,EACJ/L,WAAW8O,EAAAA,EAAAA,GAAKtP,EAAQmG,KAAM3F,GAC9BgN,WAAYA,GACXkB,Q,kBCpDL,IAAIgB,EAAgB,WACnB,GAAoB,kBAATC,MAAqBA,KAAM,OAAOA,KAC7C,GAAsB,kBAAXjF,QAAuBA,OAAQ,OAAOA,OACjD,MAAM,IAAIkF,MAAM,oCAGjBC,EAAOC,QAAW,WACjB,GAAIC,KAAM,OAAOA,KAKjB,GAA0B,kBAAfC,YAA2BA,WAAY,OAAOA,WAKzD,IACCC,OAAOC,eAAeD,OAAOE,UAAW,aAAc,CACrDC,IAAK,WAAc,OAAOL,MAC1BM,cAAc,IAEd,MAAOxO,GAGR,OAAO6N,IAER,IAEC,OAAKY,YAAmBZ,IAFzB,eAKQO,OAAOE,UAAUG,YA1BR,I,sBCNlB,IAAIC,EACJ,GAA0B,kBAAfP,WACVO,EAAcP,gBAEd,IACCO,EAAcC,EAAQ,OACrB,MAAO3O,IAFT,QAKC,GADK0O,GAAiC,qBAAX7F,SAA0B6F,EAAc7F,SAC9D6F,EAAe,MAAM,IAAIX,MAAM,mCAItC,IAAIa,EAAkBF,EAAYG,WAAaH,EAAYI,aACvDC,EAAoBJ,EAAQ,OAMhC,SAASxF,EAAa6F,EAAKC,GAiB1B,OAdIA,EACe,IAAIL,EAAgBI,EAAKC,GAGzB,IAAIL,EAAgBI,GAYpCJ,GACH,CAAC,aAAc,OAAQ,UAAW,UAAUM,SAAQ,SAASC,GAC5Df,OAAOC,eAAelF,EAAcgG,EAAM,CACzCZ,IAAK,WAAa,OAAOK,EAAgBO,SAQ5CnB,EAAOC,QAAU,CACb,aAAiBW,EAAkBzF,EAAe,KAClD,QAAiB4F,I,sBCpDrBf,EAAOC,QAAU,EAAjBD,OAAAA,S","sources":["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":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 style={{ width: 200, color: \"#989898\", fontSize: 12 }}\n >\n \n {log.errKind}\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 {\n Grid,\n FormControl,\n MenuItem,\n Select,\n InputBase,\n Button,\n} from \"@mui/material\";\n\nimport moment from \"moment/moment\";\nimport { ErrorResponseHandler } from \"../../../../../src/common/types\";\nimport api from \"../../../../../src/common/api\";\nimport { AppState } from \"../../../../store\";\nimport {\n logMessageReceived,\n logResetMessages,\n setLogsStarted,\n} from \"../actions\";\nimport { LogMessage } from \"../types\";\nimport { wsProtocol } from \"../../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n logsCommon,\n searchField,\n inlineCheckboxes,\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 nodeField: {\n width: \"100%\",\n },\n ansidefault: {\n color: \"#000\",\n },\n midColumnCheckboxes: {\n display: \"flex\",\n },\n checkBoxLabel: {\n marginTop: 10,\n fontSize: 16,\n fontWeight: 500,\n },\n highlight: {\n \"& span\": {\n backgroundColor: \"#082F5238\",\n },\n },\n ...actionsTray,\n actionsTray: {\n ...actionsTray.actionsTray,\n marginBottom: 0,\n },\n ...searchField,\n ...logsCommon,\n ...inlineCheckboxes,\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 ILogs {\n classes: any;\n logMessageReceived: typeof logMessageReceived;\n logResetMessages: typeof logResetMessages;\n setLogsStarted: typeof setLogsStarted;\n messages: LogMessage[];\n logsStarted: boolean;\n}\nvar c: any = null;\n\nconst ErrorLogs = ({\n classes,\n logMessageReceived,\n logResetMessages,\n setLogsStarted,\n messages,\n logsStarted,\n}: ILogs) => {\n const [filter, setFilter] = useState(\"\");\n const [nodes, setNodes] = useState([\"\"]);\n const [selectedNode, setSelectedNode] = useState(\"all\");\n const [selectedUserAgent, setSelectedUserAgent] =\n useState(\"Select user agent\");\n const [userAgents, setUserAgents] = useState([\"All User Agents\"]);\n const [logType, setLogType] = useState(\"all\");\n const [loadingNodes, setLoadingNodes] = useState(false);\n\n const startLogs = () => {\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 c = new W3CWebSocket(\n `${wsProt}://${\n url.hostname\n }:${port}/ws/console/?logType=${logType}&node=${\n selectedNode === \"Select node\" ? \"\" : selectedNode\n }`\n );\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n setLogsStarted(true);\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\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 if (userAgents.indexOf(m.userAgent) < 0 && m.userAgent !== undefined) {\n userAgents.push(m.userAgent);\n setUserAgents(userAgents);\n }\n logMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n setLogsStarted(false);\n };\n return () => {\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n setLogsStarted(false);\n };\n }\n };\n\n const stopLogs = () => {\n if (c !== null && c !== undefined) {\n c.close(1000);\n setLogsStarted(false);\n }\n };\n\n const filtLow = filter.toLowerCase();\n let filteredMessages = messages.filter((m) => {\n if (\n m.userAgent === selectedUserAgent ||\n selectedUserAgent === \"All User Agents\" ||\n selectedUserAgent === \"Select user agent\"\n ) {\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 } else return false;\n });\n\n useEffect(() => {\n setLoadingNodes(true);\n api\n .invoke(\"GET\", `/api/v1/nodes`)\n .then((res: string[]) => {\n setNodes(res);\n // if (res.length > 0) {\n // setSelectedNode(res[0]);\n // }\n setLoadingNodes(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingNodes(false);\n });\n }, []);\n\n return (\n \n \n \n \n \n {!loadingNodes ? (\n \n {\n setSelectedNode(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={loadingNodes || logsStarted}\n input={}\n placeholder={\"Select Node\"}\n >\n \n All Nodes\n \n {nodes.map((aNode) => (\n \n {aNode}\n \n ))}\n \n \n ) : (\n

    Loading nodes

    \n )}\n
    \n\n \n \n {\n setLogType(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={loadingNodes || logsStarted}\n input={}\n placeholder={\"Select Log Type\"}\n >\n \n All Log Types\n \n \n MinIO\n \n \n Application\n \n \n \n \n \n {userAgents.length > 1 && (\n \n {\n setSelectedUserAgent(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={userAgents.length < 1 || logsStarted}\n input={}\n >\n \n Select User Agent\n \n {userAgents.map((anAgent) => (\n \n {anAgent}\n \n ))}\n \n \n )}\n \n \n {!logsStarted && (\n \n Start Logs\n \n )}\n {logsStarted && (\n \n Stop Logs\n \n )}\n \n \n {\n setFilter(e);\n }}\n value={filter}\n />\n \n \n \n \n \n \n {filteredMessages.map((m) => {\n return ;\n })}\n \n
    \n {filteredMessages.length === 0 && (\n
    \n No logs to display\n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.logs.logMessages,\n logsStarted: state.logs.logsStarted,\n});\n\nconst connector = connect(mapState, {\n logMessageReceived: logMessageReceived,\n logResetMessages: logResetMessages,\n setLogsStarted,\n});\n\n//export default withStyles(styles)(connector(ErrorLogs));\nexport default connector(withStyles(styles)(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","searchField","adornment","placeholder","classes","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","className","id","label","InputProps","e","target","variant","props","xmlns","fill","viewBox","transform","width","height","d","log","useState","open","setOpen","logMessage","ConsoleMsg","error","message","titleLogMessage","replace","fullMessage","Fragment","style","display","tableLayout","paddingLeft","paddingRight","whiteSpace","textOverflow","overflowX","messageForConsoleMsg","dataStyle","color","fontWeight","fontFamily","fontSize","labelStyle","api","name","time","toString","deploymentid","requestID","remotehost","userAgent","source","map","i","messageForError","dateStr","format","getFullYear","TableRow","sx","borderBottom","cursor","borderLeft","borderRight","backgroundColor","TableCell","onClick","Box","marginRight","lineHeight","errKind","overflow","alignItems","justifyContent","borderRadius","paddingBottom","paddingTop","textTransform","verticalAlign","textAlign","Collapse","in","timeout","unmountOnExit","marginTop","colSpan","margin","Typography","background","border","padding","SelectStyled","root","spacing","input","InputBase","c","connect","state","messages","logs","logMessages","logsStarted","logMessageReceived","logResetMessages","setLogsStarted","logList","minHeight","tab","logerror","logerror_tab","nodeField","ansidefault","midColumnCheckboxes","checkBoxLabel","highlight","actionsTray","marginBottom","logsCommon","inlineCheckboxes","containerForHeader","filter","setFilter","nodes","setNodes","selectedNode","setSelectedNode","selectedUserAgent","setSelectedUserAgent","userAgents","setUserAgents","logType","setLogType","loadingNodes","setLoadingNodes","filtLow","toLowerCase","filteredMessages","m","indexOf","x","length","useEffect","then","res","catch","err","PageHeader","PageLayout","Grid","container","item","xs","FormControl","Select","disabled","MenuItem","aNode","anAgent","Button","type","url","URL","window","location","port","wsProt","wsProtocol","protocol","W3CWebSocket","hostname","interval","onopen","console","send","setInterval","onmessage","JSON","parse","data","moment","toDate","key","Math","random","undefined","push","onclose","clearInterval","close","SearchBox","TableContainer","component","Paper","Table","TableBody","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","capitalize","disablePointerEvents","_extends","maxHeight","palette","action","active","inputAdornmentClasses","marginLeft","pointerEvents","React","inProps","ref","useThemeProps","children","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","size","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.af17fed5.chunk.js b/portal-ui/build/static/js/6895.af17fed5.chunk.js deleted file mode 100644 index d33a6aeb4..000000000 --- a/portal-ui/build/static/js/6895.af17fed5.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(93656),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(29439),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(93656),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(1520),n.e(8354),n.e(8915),n.e(2983),n.e(51)]).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(93656),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(29439),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.af17fed5.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6895.af17fed5.chunk.js.map b/portal-ui/build/static/js/6895.af17fed5.chunk.js.map deleted file mode 100644 index 5f5c3afe8..000000000 --- a/portal-ui/build/static/js/6895.af17fed5.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6895.af17fed5.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.c4b3ab71.chunk.js b/portal-ui/build/static/js/6895.c4b3ab71.chunk.js new file mode 100644 index 000000000..da278484b --- /dev/null +++ b/portal-ui/build/static/js/6895.c4b3ab71.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6895],{66895:function(e,t,n){n.r(t);var a=n(29439),i=n(1413),o=n(72791),r=n(79271),c=n(91523),s=n(60364),l=n(11135),u=n(25787),d=n(61889),f=n(81207),b=n(23814),p=n(42649),m=n(42209),h=n(32291),x=n(14917),v=n(20068),Z=n(13400),k=n(64554),T=n(28789),C=n(56087),E=n(74794),j=n(50276),g=n(84669),_=n(38442),y=n(75578),N=n(40603),I=n(93656),F=n(80184),P=o.lazy((function(){return Promise.resolve().then(n.bind(n,37746))})),S=o.lazy((function(){return Promise.resolve().then(n.bind(n,56673))})),A=(0,y.Z)(o.lazy((function(){return n.e(9968).then(n.bind(n,39968))}))),B=(0,y.Z)(o.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(2180)]).then(n.bind(n,47494))}))),w=(0,y.Z)(o.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(8253)]).then(n.bind(n,84738))}))),R=(0,y.Z)(o.lazy((function(){return n.e(3328).then(n.bind(n,63328))}))),U=(0,y.Z)(o.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(1440)]).then(n.bind(n,25702))}))),M=(0,y.Z)(o.lazy((function(){return Promise.all([n.e(5171),n.e(5586),n.e(2983),n.e(2512)]).then(n.bind(n,32512))}))),L=(0,y.Z)(o.lazy((function(){return Promise.all([n.e(5171),n.e(3854),n.e(2983),n.e(51)]).then(n.bind(n,51))}))),O=(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:p.Ih,setBucketDetailsLoad:m.d5,setBucketInfo:m.f4});t.default=(0,u.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({pageContainer:{height:"100%"},screenTitle:{border:0,paddingTop:0}},b.Bw),{},{breadcrumLink:{textDecoration:"none",color:"black"}},b.qg),{},{capitalize:{textTransform:"capitalize"},deleteBtn:{color:"#f44336",border:"1px solid rgba(244, 67, 54, 0.5)",maxWidth:140}},b.bp),b.Si),(0,b.Bz)(e.spacing(4))))}))(O((function(e){var t=e.classes,n=e.match,i=e.history,s=e.setErrorSnackMessage,l=e.distributedSetup,u=e.setBucketDetailsLoad,b=e.loadingBucket,p=e.setBucketInfo,m=e.bucketInfo,y=(0,o.useState)(!1),O=(0,a.Z)(y,2),z=O[0],D=O[1],G=(0,o.useState)(!1),W=(0,a.Z)(G,2),H=W[0],K=W[1],Y=n.params.bucketName,Q=null===n||void 0===n?void 0:n.params[0];Q=Q||"summary";var q=(0,o.useState)(Q),V=(0,a.Z)(q,2),X=V[0],$=V[1];(0,o.useEffect)((function(){$(Q)}),[Q]),(0,o.useEffect)((function(){z||(u(!0),D(!0))}),[z,u,D]),(0,o.useEffect)((function(){b&&f.Z.invoke("GET","/api/v1/buckets/".concat(Y)).then((function(e){u(!1),p(e)})).catch((function(e){u(!1),s(e)}))}),[Y,b,u,p,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,F.jsxs)(o.Fragment,{children:[H&&(0,F.jsx)(A,{deleteOpen:H,selectedBucket:Y,closeDeleteModalAndRefresh:function(e){!function(e){K(!1),e&&i.push("/buckets")}(e)}}),(0,F.jsx)(h.Z,{label:(0,F.jsx)(g.Z,{to:"/buckets",label:"Buckets"}),actions:(0,F.jsx)(o.Fragment,{children:(0,F.jsx)(v.Z,{title:"Browse Bucket",children:(0,F.jsx)(Z.Z,{color:"primary","aria-label":"Browse Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(Y,"/browse"))},size:"large",children:(0,F.jsx)(S,{})})})})}),(0,F.jsxs)(E.Z,{className:t.pageContainer,children:[(0,F.jsx)(d.ZP,{item:!0,xs:12,children:(0,F.jsx)(x.Z,{classes:{screenTitle:t.screenTitle},icon:(0,F.jsx)(o.Fragment,{children:(0,F.jsx)(P,{width:40})}),title:Y,subTitle:(0,F.jsxs)(_.s,{scopes:[C.Ft.S3_GET_BUCKET_POLICY],resource:Y,children:[(0,F.jsx)("span",{style:{fontSize:15},children:"Access: "}),(0,F.jsx)("span",{className:t.capitalize,style:{fontWeight:600,fontSize:15},children:null===m||void 0===m?void 0:m.access.toLowerCase()})]}),actions:(0,F.jsxs)(o.Fragment,{children:[(0,F.jsx)(_.s,{scopes:[C.Ft.S3_DELETE_BUCKET,C.Ft.S3_FORCE_DELETE_BUCKET],resource:Y,errorProps:{disabled:!0},children:(0,F.jsx)(N.Z,{tooltip:"Delete Bucket",onClick:function(){K(!0)},text:"Delete Bucket",icon:(0,F.jsx)(I.XH,{}),color:"secondary",variant:"outlined"})}),(0,F.jsx)(N.Z,{onClick:function(){u(!0)},text:"Refresh",icon:(0,F.jsx)(T.default,{}),color:"primary"})]})})}),(0,F.jsx)(k.Z,{sx:{border:"1px solid #eaeaea"},children:(0,F.jsxs)(j.Z,{selectedTab:X,isRouteTabs:!0,routes:(0,F.jsx)("div",{className:t.contentSpacer,children:(0,F.jsx)(r.F0,{history:i,children:(0,F.jsxs)(r.rs,{children:[(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/summary",component:R}),(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/events",component:U}),l&&(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/replication",component:M}),l&&(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/lifecycle",component:L}),(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/access",component:w}),(0,F.jsx)(r.AW,{exact:!0,path:"/buckets/:bucketName/admin/prefix",component:B}),(0,F.jsx)(r.AW,{path:"/buckets/:bucketName",component:function(){return(0,F.jsx)(r.l_,{to:"/buckets/".concat(Y,"/admin/summary")})}})]})})}),children:[{tabConfig:{label:"Summary",value:"summary",component:c.rU,to:te("summary")}},{tabConfig:{label:"Events",value:"events",component:c.rU,disabled:!(0,_.F)(Y,[C.Ft.S3_GET_BUCKET_NOTIFICATIONS,C.Ft.S3_PUT_BUCKET_NOTIFICATIONS]),to:te("events")}},{tabConfig:{label:"Replication",value:"replication",component:c.rU,disabled:!l||!(0,_.F)(Y,[C.Ft.S3_GET_REPLICATION_CONFIGURATION,C.Ft.S3_PUT_REPLICATION_CONFIGURATION]),to:te("replication")}},{tabConfig:{label:"Lifecycle",value:"lifecycle",component:c.rU,disabled:!l||!(0,_.F)(Y,[C.Ft.S3_GET_LIFECYCLE_CONFIGURATION,C.Ft.S3_PUT_LIFECYCLE_CONFIGURATION]),to:te("lifecycle")}},{tabConfig:{label:"Access Audit",value:"access",component:c.rU,disabled:!(0,_.F)(Y,[C.Ft.ADMIN_GET_POLICY,C.Ft.ADMIN_LIST_USER_POLICIES,C.Ft.ADMIN_LIST_USERS]),to:te("access")}},{tabConfig:{label:"Access Rules",value:"prefix",component:c.rU,disabled:!(0,_.F)(Y,[C.Ft.S3_GET_BUCKET_POLICY]),to:te("prefix")}}]})})]})]})})))},75578:function(e,t,n){var a=n(1413),i=n(72791),o=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,o.jsx)(i.Suspense,{fallback:t,children:(0,o.jsx)(e,(0,a.Z)({},n))})}return n}},50276:function(e,t,n){var a=n(1413),i=n(29439),o=n(72791),r=n(64554),c=n(43896),s=n(83449),l=n(47283),u=n(82851),d=n(25787),f=n(13967),b=n(11135),p=n(95193),m=n(80184),h={minHeight:60};t.Z=(0,d.Z)((function(e){return(0,b.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,d=e.selectedTab,b=void 0===d?"0":d,x=e.routes,v=e.isRouteTabs,Z=o.useState(b),k=(0,i.Z)(Z,2),T=k[0],C=k[1],E=(0,f.Z)(),j=(0,p.Z)(E.breakpoints.down("md")),g=[],_=[];return t?(t.forEach((function(e){g.push(e.tabConfig),_.push(e.content)})),(0,m.jsx)(s.ZP,{value:"".concat(T),children:(0,m.jsxs)(r.Z,{className:n.tabsContainer,children:[(0,m.jsx)(r.Z,{className:n.tabsHeaderContainer,children:(0,m.jsx)(l.Z,{onChange:function(e,t){C(t)},orientation:j?"horizontal":"vertical",variant:j?"scrollable":"standard",scrollButtons:"auto",className:n.tabList,children:g.map((function(e,t){return e?(0,m.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:n.tabHeader,value:"".concat(t),style:h},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(t)):null}))})}),(0,m.jsxs)(r.Z,{className:n.tabContentContainer,children:[v?null:_.map((function(e,t){return(0,m.jsx)(u.Z,{classes:(0,a.Z)({},n.tabPanel),value:"".concat(t),children:e||null},"v-tab-p-".concat(t))})),v?(0,m.jsx)("div",{className:n.tabPanel,children:x}):null]})]})})):null}))},83449:function(e,t,n){n.d(t,{ZP:function(){return c},_i:function(){return s},pQ:function(){return u},uU:function(){return l}});var a=n(29439),i=n(72791),o=n(80184),r=i.createContext(null);function c(e){var t=e.children,n=e.value,c=function(){var e=i.useState(null),t=(0,a.Z)(e,2),n=t[0],o=t[1];return i.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),n}(),s=i.useMemo((function(){return{idPrefix:c,value:n}}),[c,n]);return(0,o.jsx)(r.Provider,{value:s,children:t})}function s(){return i.useContext(r)}function l(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(t)}function u(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(t)}},47283:function(e,t,n){var a=n(87462),i=n(63366),o=n(72791),r=n(18073),c=n(83449),s=n(80184),l=["children"],u=o.forwardRef((function(e,t){var n=e.children,u=(0,i.Z)(e,l),d=(0,c._i)();if(null===d)throw new TypeError("No TabContext provided");var f=o.Children.map(n,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,c.uU)(d,e.props.value),id:(0,c.pQ)(d,e.props.value)}):null}));return(0,s.jsx)(r.Z,(0,a.Z)({},u,{ref:t,value:d.value,children:f}))}));t.Z=u},82851:function(e,t,n){n.d(t,{Z:function(){return h}});var a=n(87462),i=n(63366),o=n(72791),r=n(28182),c=n(47630),s=n(93736),l=n(90767),u=n(95159);function d(e){return(0,u.Z)("MuiTabPanel",e)}(0,n(30208).Z)("MuiTabPanel",["root"]);var f=n(83449),b=n(80184),p=["children","className","value"],m=(0,c.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(3)}})),h=o.forwardRef((function(e,t){var n=(0,s.Z)({props:e,name:"MuiTabPanel"}),o=n.children,c=n.className,u=n.value,h=(0,i.Z)(n,p),x=(0,a.Z)({},n),v=function(e){var t=e.classes;return(0,l.Z)({root:["root"]},d,t)}(x),Z=(0,f._i)();if(null===Z)throw new TypeError("No TabContext provided");var k=(0,f.uU)(Z,u),T=(0,f.pQ)(Z,u);return(0,b.jsx)(m,(0,a.Z)({"aria-labelledby":T,className:(0,r.Z)(v.root,c),hidden:u!==Z.value,id:k,ref:t,role:"tabpanel",ownerState:x},h,{children:u===Z.value&&o}))}))}}]); +//# sourceMappingURL=6895.c4b3ab71.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6895.c4b3ab71.chunk.js.map b/portal-ui/build/static/js/6895.c4b3ab71.chunk.js.map new file mode 100644 index 000000000..4bb8f2abb --- /dev/null +++ b/portal-ui/build/static/js/6895.c4b3ab71.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6895.c4b3ab71.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/BucketDetails.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.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"],"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, 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { 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 * 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;"],"names":["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","withStyles","theme","createStyles","pageContainer","height","screenTitle","border","paddingTop","pageContentStyles","breadcrumLink","textDecoration","color","searchField","capitalize","textTransform","deleteBtn","maxWidth","hrClass","buttonsStyles","containerForHeader","spacing","classes","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","label","to","actions","title","component","onClick","size","className","item","xs","icon","width","subTitle","scopes","IAM_SCOPES","resource","style","fontSize","fontWeight","toLowerCase","errorProps","disabled","tooltip","text","variant","sx","isRouteTabs","routes","contentSpacer","exact","tabConfig","value","Link","hasPermission","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","tabStripStyle","minHeight","tabsContainer","display","tabsHeaderContainer","background","borderRight","flexFlow","alignItems","justifyContent","borderBottom","marginRight","marginBottom","tabContentContainer","tabPanel","flexDirection","children","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","content","onChange","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","disableRipple","disableTouchRipple","focusRipple","Context","TabContext","idPrefix","id","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","root","padding","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7002.c23dc7cf.chunk.js b/portal-ui/build/static/js/7002.c23dc7cf.chunk.js new file mode 100644 index 000000000..fca387994 --- /dev/null +++ b/portal-ui/build/static/js/7002.c23dc7cf.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7002],{32686:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.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");e.Z=o},64119:function(t,e,r){"use strict";var n=r(95318);e.Z=void 0;var a=n(r(45649)),i=r(80184),o=(0,a.default)((0,i.jsx)("path",{d:"m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z"}),"ZoomOutMap");e.Z=o},57621:function(t,e,r){"use strict";r.d(e,{Z:function(){return y}});var n=r(87462),a=r(63366),i=r(72791),o=r(28182),s=r(90767),l=r(47630),c=r(93736),u=r(10703),d=r(95159);function p(t){return(0,d.Z)("MuiCard",t)}(0,r(30208).Z)("MuiCard",["root"]);var f=r(80184),h=["className","raised"],v=(0,l.ZP)(u.Z,{name:"MuiCard",slot:"Root",overridesResolver:function(t,e){return e.root}})((function(){return{overflow:"hidden"}})),y=i.forwardRef((function(t,e){var r=(0,c.Z)({props:t,name:"MuiCard"}),i=r.className,l=r.raised,u=void 0!==l&&l,d=(0,a.Z)(r,h),y=(0,n.Z)({},r,{raised:u}),m=function(t){var e=t.classes;return(0,s.Z)({root:["root"]},p,e)}(y);return(0,f.jsx)(v,(0,n.Z)({className:(0,o.Z)(m.root,i),elevation:u?8:void 0,ref:e,ownerState:y},d))}))},9585:function(t,e,r){"use strict";r.d(e,{Z:function(){return Z}});var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(20890),u=r(93736),d=r(47630),p=r(95159);function f(t){return(0,p.Z)("MuiCardHeader",t)}var h=(0,r(30208).Z)("MuiCardHeader",["root","avatar","action","content","title","subheader"]),v=r(80184),y=["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"],m=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:function(t,e){var r;return(0,i.Z)((r={},(0,n.Z)(r,"& .".concat(h.title),e.title),(0,n.Z)(r,"& .".concat(h.subheader),e.subheader),r),e.root)}})({display:"flex",alignItems:"center",padding:16}),b=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:function(t,e){return e.avatar}})({display:"flex",flex:"0 0 auto",marginRight:16}),g=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:function(t,e){return e.action}})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),x=(0,d.ZP)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:function(t,e){return e.content}})({flex:"1 1 auto"}),Z=o.forwardRef((function(t,e){var r=(0,u.Z)({props:t,name:"MuiCardHeader"}),n=r.action,o=r.avatar,d=r.className,p=r.component,h=void 0===p?"div":p,Z=r.disableTypography,w=void 0!==Z&&Z,S=r.subheader,k=r.subheaderTypographyProps,A=r.title,O=r.titleTypographyProps,P=(0,a.Z)(r,y),j=(0,i.Z)({},r,{component:h,disableTypography:w}),E=function(t){var e=t.classes;return(0,l.Z)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},f,e)}(j),R=A;null==R||R.type===c.Z||w||(R=(0,v.jsx)(c.Z,(0,i.Z)({variant:o?"body2":"h5",className:E.title,component:"span",display:"block"},O,{children:R})));var C=S;return null==C||C.type===c.Z||w||(C=(0,v.jsx)(c.Z,(0,i.Z)({variant:o?"body2":"body1",className:E.subheader,color:"text.secondary",component:"span",display:"block"},k,{children:C}))),(0,v.jsxs)(m,(0,i.Z)({className:(0,s.Z)(E.root,d),as:h,ref:e,ownerState:j},P,{children:[o&&(0,v.jsx)(b,{className:E.avatar,ownerState:j,children:o}),(0,v.jsxs)(x,{className:E.content,ownerState:j,children:[R,C]}),n&&(0,v.jsx)(g,{className:E.action,ownerState:j,children:n})]}))}))},63466:function(t,e,r){"use strict";r.d(e,{Z:function(){return w}});var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(14036),u=r(20890),d=r(93840),p=r(52930),f=r(47630),h=r(95159);function v(t){return(0,h.Z)("MuiInputAdornment",t)}var y,m=(0,r(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=r(93736),g=r(80184),x=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,e["position".concat((0,c.Z)(r.position))],!0===r.disablePointerEvents&&e.disablePointerEvents,e[r.variant]]}})((function(t){var e=t.theme,r=t.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:e.palette.action.active},"filled"===r.variant&&(0,n.Z)({},"&.".concat(m.positionStart,"&:not(.").concat(m.hiddenLabel,")"),{marginTop:16}),"start"===r.position&&{marginRight:8},"end"===r.position&&{marginLeft:8},!0===r.disablePointerEvents&&{pointerEvents:"none"})})),w=o.forwardRef((function(t,e){var r=(0,b.Z)({props:t,name:"MuiInputAdornment"}),n=r.children,f=r.className,h=r.component,m=void 0===h?"div":h,w=r.disablePointerEvents,S=void 0!==w&&w,k=r.disableTypography,A=void 0!==k&&k,O=r.position,P=r.variant,j=(0,a.Z)(r,x),E=(0,p.Z)()||{},R=P;P&&E.variant,E&&!R&&(R=E.variant);var C=(0,i.Z)({},r,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:S,position:O,variant:R}),M=function(t){var e=t.classes,r=t.disablePointerEvents,n=t.hiddenLabel,a=t.position,i=t.size,o=t.variant,s={root:["root",r&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),o,n&&"hiddenLabel",i&&"size".concat((0,c.Z)(i))]};return(0,l.Z)(s,v,e)}(C);return(0,g.jsx)(d.Z.Provider,{value:null,children:(0,g.jsx)(Z,(0,i.Z)({as:m,ownerState:C,className:(0,s.Z)(M.root,f),ref:e},j,{children:"string"!==typeof n||A?(0,g.jsxs)(o.Fragment,{children:["start"===O?y||(y=(0,g.jsx)("span",{className:"notranslate",children:"\u200b"})):null,n]}):(0,g.jsx)(u.Z,{color:"text.secondary",children:n})}))})}))},76278:function(t,e,r){"use strict";var n=r(4942),a=r(63366),i=r(87462),o=r(72791),s=r(28182),l=r(90767),c=r(12065),u=r(47630),d=r(93736),p=r(95080),f=r(40162),h=r(42071),v=r(66199),y=r(34065),m=r(80184),b=["alignItems","autoFocus","component","children","dense","disableGutters","divider","focusVisibleClassName","selected"],g=(0,u.ZP)(p.Z,{shouldForwardProp:function(t){return(0,u.FO)(t)||"classes"===t},name:"MuiListItemButton",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters]}})((function(t){var e,r=t.theme,a=t.ownerState;return(0,i.Z)((e={display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:r.transitions.create("background-color",{duration:r.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:r.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},(0,n.Z)(e,"&.".concat(y.Z.selected),(0,n.Z)({backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity)},"&.".concat(y.Z.focusVisible),{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.focusOpacity)})),(0,n.Z)(e,"&.".concat(y.Z.selected,":hover"),{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(0,c.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity)}}),(0,n.Z)(e,"&.".concat(y.Z.focusVisible),{backgroundColor:r.palette.action.focus}),(0,n.Z)(e,"&.".concat(y.Z.disabled),{opacity:r.palette.action.disabledOpacity}),e),a.divider&&{borderBottom:"1px solid ".concat(r.palette.divider),backgroundClip:"padding-box"},"flex-start"===a.alignItems&&{alignItems:"flex-start"},!a.disableGutters&&{paddingLeft:16,paddingRight:16},a.dense&&{paddingTop:4,paddingBottom:4})})),x=o.forwardRef((function(t,e){var r=(0,d.Z)({props:t,name:"MuiListItemButton"}),n=r.alignItems,c=void 0===n?"center":n,u=r.autoFocus,p=void 0!==u&&u,x=r.component,Z=void 0===x?"div":x,w=r.children,S=r.dense,k=void 0!==S&&S,A=r.disableGutters,O=void 0!==A&&A,P=r.divider,j=void 0!==P&&P,E=r.focusVisibleClassName,R=r.selected,C=void 0!==R&&R,M=(0,a.Z)(r,b),N=o.useContext(v.Z),I={dense:k||N.dense||!1,alignItems:c,disableGutters:O},z=o.useRef(null);(0,f.Z)((function(){p&&z.current&&z.current.focus()}),[p]);var F=(0,i.Z)({},r,{alignItems:c,dense:I.dense,disableGutters:O,divider:j,selected:C}),L=function(t){var e=t.alignItems,r=t.classes,n=t.dense,a=t.disabled,o={root:["root",n&&"dense",!t.disableGutters&&"gutters",t.divider&&"divider",a&&"disabled","flex-start"===e&&"alignItemsFlexStart",t.selected&&"selected"]},s=(0,l.Z)(o,y.t,r);return(0,i.Z)({},r,s)}(F),T=(0,h.Z)(z,e);return(0,m.jsx)(v.Z.Provider,{value:I,children:(0,m.jsx)(g,(0,i.Z)({ref:T,component:Z,focusVisibleClassName:(0,s.Z)(L.focusVisible,E),ownerState:F},M,{classes:L,children:w}))})}));e.Z=x},79834:function(t,e,r){"use strict";r.d(e,{Z:function(){return y}});var n=r(63366),a=r(87462),i=r(72791),o=r(28182),s=r(90767),l=r(47630),c=r(93736),u=r(14036),d=r(95159);function p(t){return(0,d.Z)("MuiListSubheader",t)}(0,r(30208).Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var f=r(80184),h=["className","color","component","disableGutters","disableSticky","inset"],v=(0,l.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:function(t,e){var r=t.ownerState;return[e.root,"default"!==r.color&&e["color".concat((0,u.Z)(r.color))],!r.disableGutters&&e.gutters,r.inset&&e.inset,!r.disableSticky&&e.sticky]}})((function(t){var e=t.theme,r=t.ownerState;return(0,a.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:e.palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===r.color&&{color:e.palette.primary.main},"inherit"===r.color&&{color:"inherit"},!r.disableGutters&&{paddingLeft:16,paddingRight:16},r.inset&&{paddingLeft:72},!r.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:e.palette.background.paper})})),y=i.forwardRef((function(t,e){var r=(0,c.Z)({props:t,name:"MuiListSubheader"}),i=r.className,l=r.color,d=void 0===l?"default":l,y=r.component,m=void 0===y?"li":y,b=r.disableGutters,g=void 0!==b&&b,x=r.disableSticky,Z=void 0!==x&&x,w=r.inset,S=void 0!==w&&w,k=(0,n.Z)(r,h),A=(0,a.Z)({},r,{color:d,component:m,disableGutters:g,disableSticky:Z,inset:S}),O=function(t){var e=t.classes,r=t.color,n=t.disableGutters,a=t.inset,i=t.disableSticky,o={root:["root","default"!==r&&"color".concat((0,u.Z)(r)),!n&&"gutters",a&&"inset",!i&&"sticky"]};return(0,s.Z)(o,p,e)}(A);return(0,f.jsx)(v,(0,a.Z)({as:m,className:(0,o.Z)(O.root,i),ref:e,ownerState:A},k))}))},31211:function(t){t.exports=function(t,e,r,n){for(var a=-1,i=null==t?0:t.length;++at.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function w(t){var e=t.offset,r=t.layout,n=t.width,a=t.dataKey,i=t.data,o=t.dataPointFormatter,s=t.xAxis,l=t.yAxis,c=Z(t,["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"]),u=(0,m.L6)(c),p=i.map((function(t,i){var c=o(t,a),p=c.x,f=c.y,h=c.value,v=c.errorVal;if(!v)return null;var m,x,Z=[];if(Array.isArray(v)){var w=g(v,2);m=w[0],x=w[1]}else m=x=v;if("vertical"===r){var S=s.scale,k=f+e,A=k+n,O=k-n,P=S(h-m),j=S(h+x);Z.push({x1:j,y1:A,x2:j,y2:O}),Z.push({x1:P,y1:k,x2:j,y2:k}),Z.push({x1:P,y1:A,x2:P,y2:O})}else if("horizontal"===r){var E=l.scale,R=p+e,C=R-n,M=R+n,N=E(h-m),I=E(h+x);Z.push({x1:C,y1:I,x2:M,y2:I}),Z.push({x1:R,y1:N,x2:R,y2:I}),Z.push({x1:C,y1:N,x2:M,y2:N})}return d.createElement(y.m,b({className:"recharts-errorBar",key:"bar-".concat(i)},u),Z.map((function(t,e){return d.createElement("line",b({},t,{key:"line-".concat(e)}))})))}));return d.createElement(y.m,{className:"recharts-errorBars"},p)}w.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"},w.displayName="ErrorBar";var S=r(41048),k=r(87970),A=r(70587),O=r(77612),P=r(36768),j=r(56926);function E(t){return E="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function R(t,e){if(null==t)return{};var r,n,a=function(t,e){if(null==t)return{};var r,n,a={},i=Object.keys(t);for(n=0;n=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function C(){return C=Object.assign||function(t){for(var e=1;e0&&Math.abs(b)0&&Math.abs(y) {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\n\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n raised\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.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 card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n\n return null;\n }),\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 Card;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"avatar\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from './cardHeaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\n\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader\n }, styles.root)\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto'\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n disableTypography\n });\n\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n display: \"block\"\n }, titleTypographyProps, {\n children: title\n }));\n }\n\n let subheader = subheaderProp;\n\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"text.secondary\",\n component: \"span\",\n display: \"block\"\n }, subheaderTypographyProps, {\n children: subheader\n }));\n }\n\n return /*#__PURE__*/_jsxs(CardHeaderRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.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 action to display in the card header.\n */\n action: PropTypes.node,\n\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\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 content of the component.\n */\n title: PropTypes.node,\n\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alignItems\", \"autoFocus\", \"component\", \"children\", \"dense\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"];\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, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from './listItemButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disabled,\n disableGutters,\n divider,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst ListItemButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiListItemButton',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemButtonClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${listItemButtonClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, ownerState.alignItems === 'flex-start' && {\n alignItems: 'flex-start'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.dense && {\n paddingTop: 4,\n paddingBottom: 4\n}));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemButton'\n });\n\n const {\n alignItems = 'center',\n autoFocus = false,\n component = 'div',\n children,\n dense = false,\n disableGutters = false,\n divider = false,\n focusVisibleClassName,\n selected = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n };\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n\n const ownerState = _extends({}, props, {\n alignItems,\n dense: childContext.dense,\n disableGutters,\n divider,\n selected\n });\n\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(ListItemButtonRoot, _extends({\n ref: handleRef,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState\n }, other, {\n classes: classes,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.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 * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\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 * 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`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n * @default false\n */\n selected: 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 ListItemButton;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\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 capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\n\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: theme.palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: theme.palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.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 component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\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 List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: 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 ListSubheader;","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n var _super = _createSuper(Bar);\n\n function Bar() {\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (onAnimationStart) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\nBar.displayName = 'Bar';\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return null;\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell.displayName);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getCardUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CardRoot","styled","Paper","name","overridesResolver","props","styles","root","overflow","React","inProps","ref","useThemeProps","className","raised","other","_objectWithoutPropertiesLoose","ownerState","_extends","classes","composeClasses","useUtilityClasses","_jsx","clsx","elevation","undefined","getCardHeaderUtilityClass","CardHeaderRoot","cardHeaderClasses","title","subheader","display","alignItems","padding","CardHeaderAvatar","avatar","flex","marginRight","CardHeaderAction","action","alignSelf","marginTop","marginBottom","CardHeaderContent","content","component","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","type","Typography","variant","children","color","_jsxs","as","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","capitalize","position","disablePointerEvents","theme","height","maxHeight","whiteSpace","palette","active","inputAdornmentClasses","marginLeft","pointerEvents","variantProp","muiFormControl","useFormControl","hiddenLabel","size","slots","FormControlContext","value","ListItemButtonRoot","ButtonBase","shouldForwardProp","prop","rootShouldForwardProp","dense","alignItemsFlexStart","divider","disableGutters","gutters","flexGrow","justifyContent","textDecoration","boxSizing","textAlign","paddingTop","paddingBottom","transition","transitions","create","duration","shortest","backgroundColor","hover","listItemButtonClasses","alpha","primary","main","selectedOpacity","focusOpacity","hoverOpacity","focus","opacity","disabledOpacity","borderBottom","backgroundClip","paddingLeft","paddingRight","ListItemButton","autoFocus","focusVisibleClassName","selected","context","ListContext","childContext","listItemRef","useEnhancedEffect","current","disabled","composedClasses","getListItemButtonUtilityClass","handleRef","useForkRef","focusVisible","getListSubheaderUtilityClass","ListSubheaderRoot","inset","disableSticky","sticky","lineHeight","listStyle","text","secondary","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","top","zIndex","background","paper","module","array","setter","iteratee","accumulator","index","length","baseEach","collection","key","arrayAggregator","baseAggregator","baseIteratee","isArray","initializer","func","baseAssignValue","createAggregator","hasOwnProperty","Object","prototype","groupBy","result","call","push","assign","target","i","arguments","source","apply","this","_slicedToArray","arr","Array","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ErrorBar","offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis","others","svgProps","filterProps","errorBars","map","entry","_dataPointFormatter","x","y","errorVal","lowBound","highBound","lineCoordinates","_errorVal","scale","yMid","yMin","yMax","xMin","xMax","x1","y1","x2","y2","_scale","xMid","_xMin","_xMax","_yMin","_yMax","Layer","concat","coordinates","defaultProps","stroke","strokeWidth","displayName","_typeof","obj","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_setPrototypeOf","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","Bar","_PureComponent","subClass","superClass","_inherits","protoProps","staticProps","_super","_this","_len","args","_key","state","isAnimationFinished","id","uniqueId","handleAnimationEnd","onAnimationEnd","setState","handleAnimationStart","onAnimationStart","nextProps","prevState","animationId","prevAnimationId","curData","prevData","option","_isFunction","Rectangle","_this2","shape","baseProps","adaptEventsOfChild","renderRectangle","_this3","_this$props","isAnimationActive","animationBegin","animationDuration","animationEasing","Animate","begin","isActive","easing","t","to","_ref","stepData","prev","interpolatorX","interpolateNumber","interpolatorY","interpolatorWidth","interpolatorHeight","h","_interpolatorHeight","w","interpolator","renderRectanglesStatically","_this$props2","_isEqual","renderRectanglesWithAnimation","_this4","backgroundProps","rest","fill","_this$props3","errorBarItems","findAllByType","dataPoint","getValueByDataKey","item","_this$props4","hide","left","layerClass","classNames","needClip","allowDataOverflow","clipPathId","_isNil","clipPath","renderBackground","renderRectangles","renderErrorBar","LabelList","PureComponent","xAxisId","yAxisId","legendType","minPointSize","Global","getComposedData","_ref2","barPosition","bandSize","xAxisTicks","yAxisTicks","stackedData","dataStartIndex","displayedData","pos","findPositionOfBar","_item$props","numericAxis","stackedDomain","domain","baseValue","getBaseValueOfBar","cells","Cell","rects","truncateByDomain","_isArray","getCateCoordinateOfBar","axis","ticks","Math","abs","delta","mathSign","payload","tooltipPayload","getTooltipItem","tooltipPosition","BarChart","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","XAxis","YAxis","formatAxisMap"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/701.06a6587d.chunk.js b/portal-ui/build/static/js/701.06a6587d.chunk.js deleted file mode 100644 index 0bd657b85..000000000 --- a/portal-ui/build/static/js/701.06a6587d.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(8152),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(1520),r.e(2426),r.e(3801),r.e(1918),r.e(6431),r.e(7757),r.e(8152),r.e(5317),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(29439),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.06a6587d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/701.06a6587d.chunk.js.map b/portal-ui/build/static/js/701.06a6587d.chunk.js.map deleted file mode 100644 index fec83dbb1..000000000 --- a/portal-ui/build/static/js/701.06a6587d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/701.06a6587d.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.55960ffe.chunk.js b/portal-ui/build/static/js/701.55960ffe.chunk.js new file mode 100644 index 000000000..197025d2f --- /dev/null +++ b/portal-ui/build/static/js/701.55960ffe.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(5171),r.e(8152),r.e(1788),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(5171),r.e(2426),r.e(3801),r.e(1918),r.e(6431),r.e(7757),r.e(8152),r.e(5085),r.e(2983),r.e(6233)]).then(r.bind(r,56233))})),p=o.lazy((function(){return r.e(5588).then(r.bind(r,45588))})),b=(0,s.$j)((function(e){return{open:e.system.sidebarOpen}}),{setMenuOpen:a.gG});n.default=(0,c.EN)(b((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,{})})}})]})})})))},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(29439),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),b=r(42071),m=r(20890),j=r(95159);function Z(e){return(0,j.Z)("MuiLink",e)}var k=(0,r(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),y=r(80184),v=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],g={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},S=(0,h.ZP)(m.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 g[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(k.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,m=void 0===h?"a":h,j=r.onBlur,k=r.onFocus,g=r.TypographyClasses,w=r.underline,A=void 0===w?"always":w,W=r.variant,C=void 0===W?"inherit":W,N=(0,i.Z)(r,v),F=(0,p.Z)(),z=F.isFocusVisibleRef,D=F.onBlur,M=F.onFocus,V=F.ref,P=s.useState(!1),R=(0,t.Z)(P,2),B=R[0],L=R[1],O=(0,b.Z)(n,V),T=(0,c.Z)({},r,{color:d,component:m,focusVisible:B,underline:A,variant:C}),_=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,y.jsx)(S,(0,c.Z)({className:(0,a.Z)(_.root,o),classes:g,color:d,component:m,onBlur:function(e){D(e),!1===z.current&&L(!1),j&&j(e)},onFocus:function(e){M(e),!0===z.current&&L(!0),k&&k(e)},ref:O,ownerState:T,variant:C},N))}))}}]); +//# sourceMappingURL=701.55960ffe.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/701.55960ffe.chunk.js.map b/portal-ui/build/static/js/701.55960ffe.chunk.js.map new file mode 100644 index 000000000..05a5438cc --- /dev/null +++ b/portal-ui/build/static/js/701.55960ffe.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/701.55960ffe.chunk.js","mappings":"wNAyBMA,EAAcC,EAAAA,MAAW,kBAAM,gFAC/BC,EAAgBD,EAAAA,MAAW,kBAAM,4DACjCE,EAAiBF,EAAAA,MACrB,kBAAM,4IAEFG,EAAYH,EAAAA,MAAW,kBAAM,mCAM7BI,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,KAAMD,EAAME,OAAOC,eAGe,CAAEC,YAAAA,EAAAA,KAsEtC,WAAeC,EAAAA,EAAAA,IAAWP,GApEV,WACd,OACE,SAAC,KAAD,CAAQQ,QAASA,EAAAA,EAAjB,UACE,UAAC,KAAD,YACE,SAAC,KAAD,CACEC,KAAK,cACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAACd,EAAD,UAIN,SAAC,KAAD,CACEU,KAAK,+BACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAAChB,GAAD,UAAmBc,UAIzB,SAAC,KAAD,CACEF,KAAK,6BACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAAChB,GAAD,UAAmBc,UAIzB,SAAC,KAAD,CACEF,KAAK,yCACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAACf,GAAD,UAAoBa,UAI1B,SAAC,KAAD,CACEF,KAAK,8BACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAACf,GAAD,UAAoBa,UAI1B,SAAC,KAAD,CACEF,KAAK,uBACLK,UAAW,kBAAM,SAAC,KAAD,CAAUC,GAAE,iBAE/B,SAAC,KAAD,CACEN,KAAK,IACLC,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAAClB,GAAD,UAAiBgB,UAIvB,SAAC,KAAD,CACED,SAAU,SAACC,GAAD,OACR,SAAC,EAAAC,SAAD,CAAUC,UAAU,SAAC,IAAD,IAApB,UACE,SAAC,IAAD,mB,+GC7EC,SAASG,IACtB,OACE,UAACC,EAAA,EAAD,CAAYC,QAAQ,QAAQC,MAAM,gBAAgBC,MAAM,SAAxD,UACG,mBACD,SAACC,EAAA,EAAD,CAAMF,MAAM,UAAUG,KAAK,0BAA3B,mBAEQ,KACP,IAAIC,MAAOC,cACX,O,eCiCP,EAxC2B,WACzB,OACE,SAACC,EAAA,EAAD,WACE,UAACC,EAAA,EAAD,CACEC,GAAI,CACFC,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChBC,OAAQ,OACRC,UAAW,SACXC,OAAQ,OACRC,SAAU,UARd,WAWE,SAACR,EAAA,EAAD,CACEC,GAAI,CACFQ,SAAU,OACVF,OAAQ,cACRd,MAAO,WAJX,wBASA,SAACO,EAAA,EAAD,CACEC,GAAI,CACFS,UAAW,SACXD,SAAU,sCACVE,WAAY,KAJhB,kDASA,SAACX,EAAA,EAAD,CAAKY,GAAI,EAAT,UACE,SAACtB,EAAD,a,yOCrDH,SAASuB,EAAoBC,GAClC,OAAOC,EAAAA,EAAAA,GAAqB,UAAWD,GAEzC,IACA,GADoBE,E,SAAAA,GAAuB,UAAW,CAAC,OAAQ,gBAAiB,iBAAkB,kBAAmB,SAAU,iB,WCFzHC,EAAY,CAAC,YAAa,QAAS,YAAa,SAAU,UAAW,oBAAqB,YAAa,WAevGC,EAAuB,CAC3BC,QAAS,eACTC,YAAa,eACbC,UAAW,iBACXC,cAAe,iBACfC,MAAO,cAoBHC,GAAWC,EAAAA,EAAAA,IAAOlC,EAAAA,EAAY,CAClCmC,KAAM,UACNZ,KAAM,OACNa,kBAAmB,SAACC,EAAOC,GACzB,IACEC,EACEF,EADFE,WAEF,MAAO,CAACD,EAAOE,KAAMF,EAAO,YAAD,QAAaG,EAAAA,EAAAA,GAAWF,EAAWG,aAAwC,WAAzBH,EAAW1C,WAA0ByC,EAAOK,UAP5GT,EASd,YAGG,IAFJU,EAEI,EAFJA,MACAL,EACI,EADJA,WAEMrC,GAAQ2C,EAAAA,EAAAA,GAAQD,EAAD,kBA9BW,SAAA1C,GAChC,OAAOyB,EAAqBzB,IAAUA,EA6BE4C,CAA0BP,EAAWrC,UAAaqC,EAAWrC,MACrG,OAAO6C,EAAAA,EAAAA,GAAS,GAA6B,SAAzBR,EAAWG,WAAwB,CACrDM,eAAgB,QACU,UAAzBT,EAAWG,WAAyB,CACrCM,eAAgB,OAChB,UAAW,CACTA,eAAgB,cAEQ,WAAzBT,EAAWG,WAA0B,CACtCM,eAAgB,YAChBC,oBAA+B,YAAV/C,GAAsBgD,EAAAA,EAAAA,IAAMhD,EAAO,SAAOiD,EAC/D,UAAW,CACTF,oBAAqB,YAEG,WAAzBV,EAAW1C,YAAX,QACDuD,SAAU,WACVC,wBAAyB,cACzBC,gBAAiB,cAGjBC,QAAS,EACTC,OAAQ,EACRxC,OAAQ,EAERyC,aAAc,EACdC,QAAS,EAETC,OAAQ,UACRC,WAAY,OACZC,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElB,sBAAuB,CACrBC,YAAa,SArBd,YAwBKC,EAAAA,cAA6B,CACjCV,QAAS,aAmJf,EA/I0B5E,EAAAA,YAAiB,SAAcuF,EAASC,GAChE,IAAM9B,GAAQ+B,EAAAA,EAAAA,GAAc,CAC1B/B,MAAO6B,EACP/B,KAAM,YAINkC,EAQEhC,EARFgC,UADF,EASIhC,EAPFnC,MAAAA,OAFF,MAEU,UAFV,IASImC,EANFxC,UAAAA,OAHF,MAGc,IAHd,EAIEyE,EAKEjC,EALFiC,OACAC,EAIElC,EAJFkC,QACAC,EAGEnC,EAHFmC,kBANF,EASInC,EAFFK,UAAAA,OAPF,MAOc,SAPd,IASIL,EADFpC,QAAAA,OARF,MAQY,UARZ,EAUMwE,GAAQC,EAAAA,EAAAA,GAA8BrC,EAAOX,GAEnD,GAKIiD,EAAAA,EAAAA,KAJFC,EADF,EACEA,kBACQC,EAFV,EAEEP,OACSQ,EAHX,EAGEP,QACKQ,EAJP,EAIEZ,IAEF,EAAwCxF,EAAAA,UAAe,GAAvD,eAAOqG,EAAP,KAAqBC,EAArB,KACMC,GAAaC,EAAAA,EAAAA,GAAWhB,EAAKY,GA0B7BxC,GAAaQ,EAAAA,EAAAA,GAAS,GAAIV,EAAO,CACrCnC,MAAAA,EACAL,UAAAA,EACAmF,aAAAA,EACAtC,UAAAA,EACAzC,QAAAA,IAGImF,EAhIkB,SAAA7C,GACxB,IACE6C,EAIE7C,EAJF6C,QACAvF,EAGE0C,EAHF1C,UACAmF,EAEEzC,EAFFyC,aACAtC,EACEH,EADFG,UAEI2C,EAAQ,CACZ7C,KAAM,CAAC,OAAD,oBAAqBC,EAAAA,EAAAA,GAAWC,IAA4B,WAAd7C,GAA0B,SAAUmF,GAAgB,iBAE1G,OAAOM,EAAAA,EAAAA,GAAeD,EAAO/D,EAAqB8D,GAsHlCG,CAAkBhD,GAClC,OAAoBiD,EAAAA,EAAAA,KAAKvD,GAAUc,EAAAA,EAAAA,GAAS,CAC1CsB,WAAWoB,EAAAA,EAAAA,GAAKL,EAAQ5C,KAAM6B,GAC9Be,QAASZ,EACTtE,MAAOA,EACPL,UAAWA,EACXyE,OAtCiB,SAAAoB,GACjBb,EAAkBa,IAEgB,IAA9Bd,EAAkBe,SACpBV,GAAgB,GAGdX,GACFA,EAAOoB,IA+BTnB,QA3BkB,SAAAmB,GAClBZ,EAAmBY,IAEe,IAA9Bd,EAAkBe,SACpBV,GAAgB,GAGdV,GACFA,EAAQmB,IAoBVvB,IAAKe,EACL3C,WAAYA,EACZtC,QAASA,GACRwE","sources":["screens/Console/Buckets/Buckets.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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","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","theme","getPath","transformDeprecatedColors","_extends","textDecoration","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","backgroundColor","outline","border","borderRadius","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","className","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","classes","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7021.ee631825.chunk.js b/portal-ui/build/static/js/7021.ee631825.chunk.js new file mode 100644 index 000000000..b0a7c0367 --- /dev/null +++ b/portal-ui/build/static/js/7021.ee631825.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7021],{37021:function(e,a,n){n.r(a);var t=n(93433),r=n(29439),i=n(1413),o=n(11135),l=n(25787),s=n(23814),c=n(61889),d=n(72791),u=n(51691),p=n(20890),m=n(36151),_=n(81207),v=n(42649),h=n(60364),f=n(72401),x=n(83679),Z=n(21435),D=n(84741),g=n(40968),I=n(37516),j=n(20165),S=n(3579),N=n(2148),b=n(93656),k=n(80184),R={setErrorSnackMessage:v.Ih},y=(0,h.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),R);a.default=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},s.oZ),s.bK),{},{loaderAlign:{textAlign:"center"},title:{marginTop:35},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},paperContainer:{padding:"15px 15px 15px 50px"},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}}},(0,s.Bz)(e.spacing(4))),s.QV),s.DF),s.oO),s.AK))}))(y((function(e){var a=e.classes,n=e.tenant,i=e.loadingTenant,o=e.setErrorSnackMessage,l=(0,d.useState)(!1),s=(0,r.Z)(l,2),v=s[0],h=s[1],R=(0,d.useState)(!1),y=(0,r.Z)(R,2),C=y[0],w=y[1],F=(0,d.useState)("Built-in"),A=(0,r.Z)(F,2),L=A[0],P=A[1],O=(0,d.useState)(""),T=(0,r.Z)(O,2),U=T[0],B=T[1],q=(0,d.useState)(""),z=(0,r.Z)(q,2),G=z[0],K=z[1],M=(0,d.useState)(""),E=(0,r.Z)(M,2),V=E[0],W=E[1],Q=(0,d.useState)(!1),$=(0,r.Z)(Q,2),H=$[0],J=$[1],X=(0,d.useState)(""),Y=(0,r.Z)(X,2),ee=Y[0],ae=Y[1],ne=(0,d.useState)(""),te=(0,r.Z)(ne,2),re=te[0],ie=te[1],oe=(0,d.useState)(""),le=(0,r.Z)(oe,2),se=le[0],ce=le[1],de=(0,d.useState)(""),ue=(0,r.Z)(de,2),pe=ue[0],me=ue[1],_e=(0,d.useState)(""),ve=(0,r.Z)(_e,2),he=ve[0],fe=ve[1],xe=(0,d.useState)(""),Ze=(0,r.Z)(xe,2),De=Ze[0],ge=Ze[1],Ie=(0,d.useState)(!1),je=(0,r.Z)(Ie,2),Se=je[0],Ne=je[1],be=(0,d.useState)(""),ke=(0,r.Z)(be,2),Re=ke[0],ye=ke[1],Ce=(0,d.useState)(""),we=(0,r.Z)(Ce,2),Fe=we[0],Ae=we[1],Le=(0,d.useState)(""),Pe=(0,r.Z)(Le,2),Oe=Pe[0],Te=Pe[1],Ue=(0,d.useState)(""),Be=(0,r.Z)(Ue,2),qe=Be[0],ze=Be[1],Ge=(0,d.useState)(!1),Ke=(0,r.Z)(Ge,2),Me=Ke[0],Ee=Ke[1],Ve=(0,d.useState)(!1),We=(0,r.Z)(Ve,2),Qe=We[0],$e=We[1],He=(0,d.useState)(!1),Je=(0,r.Z)(He,2),Xe=Je[0],Ye=Je[1],ea=(0,d.useState)({}),aa=(0,r.Z)(ea,2),na=aa[0],ta=aa[1],ra=function(e){ta((0,D.h)(na,e))},ia=(0,d.useState)(!1),oa=(0,r.Z)(ia,2),la=oa[0],sa=oa[1];(0,d.useEffect)((function(){var e=[];"OpenID"===L&&(e=[].concat((0,t.Z)(e),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:U},{fieldKey:"openID_clientID",required:!0,value:G},{fieldKey:"openID_secretID",required:!0,value:V},{fieldKey:"openID_claimName",required:!0,value:re}])),"AD"===L&&(e=[].concat((0,t.Z)(e),[{fieldKey:"AD_URL",required:!0,value:pe},{fieldKey:"ad_lookupBindDN",required:!0,value:he}]));var a=(0,g.R)(e);sa(0===Object.keys(a).length),ta(a)}),[L,U,G,V,re,pe,he]);var ca=(0,d.useCallback)((function(){_.Z.invoke("GET","/api/v1/namespaces/".concat(null===n||void 0===n?void 0:n.namespace,"/tenants/").concat(null===n||void 0===n?void 0:n.name,"/identity-provider")).then((function(e){e&&(e.oidc?(P("OpenID"),B(e.oidc.configuration_url),K(e.oidc.client_id),W(e.oidc.secret_id),ae(e.oidc.callback_url),ie(e.oidc.claim_name),ce(e.oidc.scopes)):e.active_directory&&(P("AD"),me(e.active_directory.url),fe(e.active_directory.lookup_bind_dn),ge(e.active_directory.lookup_bind_password),ye(e.active_directory.user_dn_search_base_dn),Ae(e.active_directory.user_dn_search_filter),Te(e.active_directory.group_search_base_dn),ze(e.active_directory.group_search_filter),Ee(e.active_directory.skip_tls_verification),$e(e.active_directory.server_insecure),Ye(e.active_directory.server_start_tls)))})).catch((function(e){o(e)}))}),[n,o]);(0,d.useEffect)((function(){n&&ca()}),[n,ca]);return(0,k.jsxs)(d.Fragment,{children:[(0,k.jsx)(N.Z,{title:"Save and Restart",confirmText:"Restart",cancelText:"Cancel",titleIcon:(0,k.jsx)(b.Ej,{}),isLoading:v,onClose:function(){return w(!1)},isOpen:C,onConfirm:function(){h(!0);var e={};switch(L){case"AD":e.active_directory={url:pe,lookup_bind_dn:he,lookup_bind_password:De,user_dn_search_base_dn:Re,user_dn_search_filter:Fe,group_search_base_dn:Oe,group_search_filter:qe,skip_tls_verification:Me,server_insecure:Qe,server_start_tls:Xe};break;case"OpenID":e.oidc={configuration_url:U,client_id:G,secret_id:V,callback_url:ee,claim_name:re,scopes:se}}_.Z.invoke("POST","/api/v1/namespaces/".concat(null===n||void 0===n?void 0:n.namespace,"/tenants/").concat(null===n||void 0===n?void 0:n.name,"/identity-provider"),e).then((function(){h(!1),w(!1),ca()})).catch((function(e){o(e),h(!1)}))},confirmationContent:(0,k.jsx)(u.Z,{children:"Are you sure you want to save the changes and restart the service?"})}),i?(0,k.jsx)("div",{className:a.loaderAlign,children:(0,k.jsx)(f.Z,{})}):(0,k.jsxs)(d.Fragment,{children:[(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)("h1",{className:a.sectionTitle,children:"Identity Provider"}),(0,k.jsx)("hr",{className:a.hrClass})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.protocolRadioOptions,children:(0,k.jsx)(x.Z,{currentSelection:L,id:"idp-options",name:"idp-options",label:"Protocol",onChange:function(e){P(e.target.value)},selectorOptions:[{label:"Built-in",value:"Built-in"},{label:"OpenID",value:"OpenID"},{label:"Active Directory",value:"AD"}]})}),"OpenID"===L&&(0,k.jsxs)(d.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){B(e.target.value),ra("openID_CONFIGURATION_URL")},label:"Configuration URL",value:U,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:na.openID_CONFIGURATION_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){K(e.target.value),ra("openID_clientID")},label:"Client ID",value:G,error:na.openID_clientID||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{type:H?"text":"password",id:"openID_secretID",name:"openID_secretID",onChange:function(e){W(e.target.value),ra("openID_secretID")},label:"Secret ID",value:V,error:na.openID_secretID||"",required:!0,overlayIcon:H?(0,k.jsx)(j.Z,{}):(0,k.jsx)(S.Z,{}),overlayAction:function(){return J(!H)}})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"openID_callbackURL",name:"openID_callbackURL",onChange:function(e){ae(e.target.value),ra("openID_callbackURL")},label:"Callback URL",value:ee,placeholder:"https://your-console-endpoint:9443/oauth_callback",error:na.openID_callbackURL||""})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){ie(e.target.value),ra("openID_claimName")},label:"Claim Name",value:re,error:na.openID_claimName||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){ce(e.target.value),ra("openID_scopes")},label:"Scopes",value:se})})]}),"AD"===L&&(0,k.jsxs)(d.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){me(e.target.value),ra("AD_URL")},label:"LDAP Server Address",value:pe,placeholder:"ldap-server:636",error:na.AD_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(I.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:Me,onChange:function(e){var a=e.target.checked;Ee(a)},label:"Skip TLS Verification"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(I.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:Qe,onChange:function(e){var a=e.target.checked;$e(a)},label:"Server Insecure"})}),Qe?(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)(p.Z,{className:a.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,k.jsx)("br",{})]}):null,(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(I.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:Xe,onChange:function(e){var a=e.target.checked;Ye(a)},label:"Start TLS connection to AD/LDAP server"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){fe(e.target.value),ra("ad_lookupBindDN")},label:"Lookup Bind DN",value:he,placeholder:"cn=admin,dc=min,dc=io",error:na.ad_lookupBindDN||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{type:Se?"text":"password",id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){ge(e.target.value)},label:"Lookup Bind Password",value:De,placeholder:"admin",overlayIcon:Se?(0,k.jsx)(j.Z,{}):(0,k.jsx)(S.Z,{}),overlayAction:function(){return Ne(!Se)}})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){ye(e.target.value)},label:"User DN Search Base DN",value:Re,placeholder:"dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){Ae(e.target.value)},label:"User DN Search Filter",value:Fe,placeholder:"(sAMAcountName=%s)"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){Te(e.target.value)},label:"Group Search Base DN",value:Oe,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,k.jsx)(Z.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){ze(e.target.value)},label:"Group Search Filter",value:qe,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:a.buttonContainer,children:(0,k.jsx)(m.Z,{type:"submit",variant:"contained",color:"primary",disabled:!la||v,onClick:function(){return w(!0)},children:"Save"})})]})]})})))},3579:function(e,a,n){var t=n(95318);a.Z=void 0;var r=t(n(45649)),i=n(80184),o=(0,r.default)((0,i.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");a.Z=o},20165:function(e,a,n){var t=n(95318);a.Z=void 0;var r=t(n(45649)),i=n(80184),o=(0,r.default)((0,i.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");a.Z=o}}]); +//# sourceMappingURL=7021.ee631825.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7021.ee631825.chunk.js.map b/portal-ui/build/static/js/7021.ee631825.chunk.js.map new file mode 100644 index 000000000..5a27a629c --- /dev/null +++ b/portal-ui/build/static/js/7021.ee631825.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7021.ee631825.chunk.js","mappings":"wYAgmBMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,KAVD,SAACC,GAAD,MAAsB,CACrCC,cAAeD,EAAME,QAAQC,cAAcF,cAC3CG,eAAgBJ,EAAME,QAAQC,cAAcE,cAC5CC,OAAQN,EAAME,QAAQC,cAAcI,cAOFX,GAEpC,WAAeY,EAAAA,EAAAA,IA3iBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0DACRC,EAAAA,IACAC,EAAAA,IAFO,IAGVC,YAAa,CACXC,UAAW,UAEbC,MAAO,CACLC,UAAW,IAEbC,KAAM,CAAEC,WAAY,QACpBC,OAAQ,CAAEC,UAAW,UACrBC,eAAgB,CACdC,QAAS,uBAEXC,SAAU,CACRC,YAAa,GACbC,QAAS,OACT,cAAe,CACbC,SAAU,IAGZ,4BAA6B,CAC3BC,SAAU,aAGXC,EAAAA,EAAAA,IAAmBnB,EAAMoB,QAAQ,KACjCC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OA6gBP,CAAkCnC,GA1gBH,SAAC,GAKA,IAJ9BoC,EAI6B,EAJ7BA,QACA5B,EAG6B,EAH7BA,OACAL,EAE6B,EAF7BA,cACAJ,EAC6B,EAD7BA,qBAEA,GAAkCsC,EAAAA,EAAAA,WAAkB,GAApD,eAAOC,EAAP,KAAkBC,EAAlB,KACA,GAAoCF,EAAAA,EAAAA,WAAkB,GAAtD,eAAOG,EAAP,KAAmBC,EAAnB,KACA,GAAwCJ,EAAAA,EAAAA,UAAiB,YAAzD,eAAOK,EAAP,KAAqBC,EAArB,KACA,GACEN,EAAAA,EAAAA,UAAiB,IADnB,eAAOO,EAAP,KAA+BC,EAA/B,KAEA,GAA4CR,EAAAA,EAAAA,UAAiB,IAA7D,eAAOS,EAAP,KAAuBC,EAAvB,KACA,GAA4CV,EAAAA,EAAAA,UAAiB,IAA7D,eAAOW,EAAP,KAAuBC,EAAvB,KACA,GAAgDZ,EAAAA,EAAAA,WAAkB,GAAlE,eAAOa,EAAP,KAAyBC,EAAzB,KACA,GAAkDd,EAAAA,EAAAA,UAAiB,IAAnE,eAAOe,GAAP,KAA0BC,GAA1B,KACA,IAA8ChB,EAAAA,EAAAA,UAAiB,IAA/D,iBAAOiB,GAAP,MAAwBC,GAAxB,MACA,IAAwClB,EAAAA,EAAAA,UAAiB,IAAzD,iBAAOmB,GAAP,MAAqBC,GAArB,MACA,IAA0BpB,EAAAA,EAAAA,UAAiB,IAA3C,iBAAOqB,GAAP,MAAcC,GAAd,MACA,IAA4CtB,EAAAA,EAAAA,UAAiB,IAA7D,iBAAOuB,GAAP,MAAuBC,GAAvB,MACA,IAAwDxB,EAAAA,EAAAA,UAAiB,IAAzE,iBAAOyB,GAAP,MAA6BC,GAA7B,MACA,IACE1B,EAAAA,EAAAA,WAAkB,GADpB,iBAAO2B,GAAP,MAAiCC,GAAjC,MAEA,IAAwD5B,EAAAA,EAAAA,UAAiB,IAAzE,iBAAO6B,GAAP,MAA6BC,GAA7B,MACA,IAAwD9B,EAAAA,EAAAA,UAAiB,IAAzE,iBAAO+B,GAAP,MAA6BC,GAA7B,MACA,IAAsDhC,EAAAA,EAAAA,UAAiB,IAAvE,iBAAOiC,GAAP,MAA4BC,GAA5B,MACA,IAAsDlC,EAAAA,EAAAA,UAAiB,IAAvE,iBAAOmC,GAAP,MAA4BC,GAA5B,MACA,IAAkCpC,EAAAA,EAAAA,WAAkB,GAApD,iBAAOqC,GAAP,MAAkBC,GAAlB,MACA,IAAgDtC,EAAAA,EAAAA,WAAkB,GAAlE,iBAAOuC,GAAP,MAAyBC,GAAzB,MACA,IAAgDxC,EAAAA,EAAAA,WAAkB,GAAlE,iBAAOyC,GAAP,MAAyBC,GAAzB,MACA,IAAgD1C,EAAAA,EAAAA,UAAc,IAA9D,iBAAO2C,GAAP,MAAyBC,GAAzB,MACMC,GAAkB,SAACC,GACvBF,IAAoBG,EAAAA,EAAAA,GAAqBJ,GAAkBG,KAE7D,IAAsC9C,EAAAA,EAAAA,WAAkB,GAAxD,iBAAOgD,GAAP,MAAoBC,GAApB,OAGAC,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAA4C,GAE3B,WAAjB9C,IACF8C,EAA0B,kBACrBA,GADqB,CAExB,CACEC,SAAU,2BACVC,UAAU,EACVC,MAAO/C,GAET,CACE6C,SAAU,kBACVC,UAAU,EACVC,MAAO7C,GAET,CACE2C,SAAU,kBACVC,UAAU,EACVC,MAAO3C,GAET,CACEyC,SAAU,mBACVC,UAAU,EACVC,MAAOrC,OAKQ,OAAjBZ,IACF8C,EAA0B,kBACrBA,GADqB,CAExB,CACEC,SAAU,SACVC,UAAU,EACVC,MAAOjC,IAET,CACE+B,SAAU,kBACVC,UAAU,EACVC,MAAO/B,OAKb,IAAMgC,GAAYC,EAAAA,EAAAA,GAAqBL,GAEvCF,GAAiD,IAAlCQ,OAAOC,KAAKH,GAAWI,QAEtCf,GAAoBW,KACnB,CACDlD,EACAE,EACAE,EACAE,EACAM,GACAI,GACAE,KAGF,IAAMqC,IAAgCC,EAAAA,EAAAA,cAAY,WAChDC,EAAAA,EAAAA,OAEI,MAFJ,oCAG0B3F,QAH1B,IAG0BA,OAH1B,EAG0BA,EAAQ4F,UAHlC,2BAGuD5F,QAHvD,IAGuDA,OAHvD,EAGuDA,EAAQ6F,KAH/D,uBAKGC,MAAK,SAACC,GACDA,IACEA,EAAIC,MACN7D,EAAgB,UAChBE,EAA0B0D,EAAIC,KAAKC,mBACnC1D,EAAkBwD,EAAIC,KAAKE,WAC3BzD,EAAkBsD,EAAIC,KAAKG,WAC3BtD,GAAqBkD,EAAIC,KAAKI,cAC9BrD,GAAmBgD,EAAIC,KAAKK,YAC5BpD,GAAgB8C,EAAIC,KAAKM,SAChBP,EAAIQ,mBACbpE,EAAgB,MAChBgB,GAAS4C,EAAIQ,iBAAiBC,KAC9BnD,GAAkB0C,EAAIQ,iBAAiBE,gBACvClD,GAAwBwC,EAAIQ,iBAAiBG,sBAC7C/C,GACEoC,EAAIQ,iBAAiBI,wBAEvB9C,GAAwBkC,EAAIQ,iBAAiBK,uBAC7C7C,GAAuBgC,EAAIQ,iBAAiBM,sBAC5C5C,GAAuB8B,EAAIQ,iBAAiBO,qBAC5C3C,GAAa4B,EAAIQ,iBAAiBQ,uBAClC1C,GAAoB0B,EAAIQ,iBAAiBS,iBACzCzC,GAAoBwB,EAAIQ,iBAAiBU,uBAI9CC,OAAM,SAACC,GACN5H,EAAqB4H,QAExB,CAACnH,EAAQT,KAEZwF,EAAAA,EAAAA,YAAU,WACJ/E,GACFyF,OAED,CAACzF,EAAQyF,KAoDZ,OACE,UAAC,WAAD,YACE,SAAC,IAAD,CACEhF,MAAO,mBACP2G,YAAa,UACbC,WAAW,SACXC,WAAW,SAAC,KAAD,IACXC,UAAWzF,EACX0F,QAAS,kBAAMvF,GAAc,IAC7BwF,OAAQzF,EACR0F,UA5D+B,WACnC3F,GAAa,GACb,IAAI4F,EAA2C,GAC/C,OAAQzF,GACN,IAAK,KACHyF,EAAQpB,iBAAmB,CACzBC,IAAKtD,GACLuD,eAAgBrD,GAChBsD,qBAAsBpD,GACtBqD,uBAAwBjD,GACxBkD,sBAAuBhD,GACvBiD,qBAAsB/C,GACtBgD,oBAAqB9C,GACrB+C,sBAAuB7C,GACvB8C,gBAAiB5C,GACjB6C,iBAAkB3C,IAEpB,MACF,IAAK,SACHqD,EAAQ3B,KAAO,CACbC,kBAAmB7D,EACnB8D,UAAW5D,EACX6D,UAAW3D,EACX4D,aAAcxD,GACdyD,WAAYvD,GACZwD,OAAQtD,IAOd2C,EAAAA,EAAAA,OAEI,OAFJ,oCAG0B3F,QAH1B,IAG0BA,OAH1B,EAG0BA,EAAQ4F,UAHlC,2BAGuD5F,QAHvD,IAGuDA,OAHvD,EAGuDA,EAAQ6F,KAH/D,sBAII8B,GAED7B,MAAK,WACJ/D,GAAa,GAEbE,GAAc,GACdwD,QAEDyB,OAAM,SAACC,GACN5H,EAAqB4H,GACrBpF,GAAa,OAeb6F,qBACE,SAAC,IAAD,mFAKHjI,GACC,gBAAKkI,UAAWjG,EAAQrB,YAAxB,UACE,SAAC,IAAD,OAGF,UAAC,EAAAuH,SAAD,YACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAf,WACE,eAAIH,UAAWjG,EAAQqG,aAAvB,gCACA,eAAIJ,UAAWjG,EAAQsG,cAEzB,SAAC,KAAD,CAAMH,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQuG,qBAAtC,UACE,SAAC,IAAD,CACEC,iBAAkBlG,EAClBmG,GAAG,cACHxC,KAAK,cACLyC,MAAM,WACNC,SAAU,SAACC,GACTrG,EAAgBqG,EAAEC,OAAOtD,QAE3BuD,gBAAiB,CACf,CAAEJ,MAAO,WAAYnD,MAAO,YAC5B,CAAEmD,MAAO,SAAUnD,MAAO,UAC1B,CAAEmD,MAAO,mBAAoBnD,MAAO,WAKxB,WAAjBjD,IACC,UAAC,EAAA4F,SAAD,YACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,2BACHxC,KAAK,2BACL0C,SAAU,SAACC,GACTnG,EAA0BmG,EAAEC,OAAOtD,OACnCT,GAAgB,6BAElB4D,MAAM,oBACNnD,MAAO/C,EACPwG,YAAY,sEACZC,MAAOrE,GAAgB,0BAAgC,GACvDU,UAAQ,OAGZ,SAAC,KAAD,CAAM6C,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,kBACHxC,KAAK,kBACL0C,SAAU,SAACC,GACTjG,EAAkBiG,EAAEC,OAAOtD,OAC3BT,GAAgB,oBAElB4D,MAAM,YACNnD,MAAO7C,EACPuG,MAAOrE,GAAgB,iBAAuB,GAC9CU,UAAQ,OAGZ,SAAC,KAAD,CAAM6C,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEG,KAAMpG,EAAmB,OAAS,WAClC2F,GAAG,kBACHxC,KAAK,kBACL0C,SAAU,SAACC,GACT/F,EAAkB+F,EAAEC,OAAOtD,OAC3BT,GAAgB,oBAElB4D,MAAM,YACNnD,MAAO3C,EACPqG,MAAOrE,GAAgB,iBAAuB,GAC9CU,UAAQ,EACR6D,YACErG,GACE,SAAC,IAAD,KAEA,SAAC,IAAD,IAGJsG,cAAe,kBAAMrG,GAAqBD,SAG9C,SAAC,KAAD,CAAMqF,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,qBACHxC,KAAK,qBACL0C,SAAU,SAACC,GACT3F,GAAqB2F,EAAEC,OAAOtD,OAC9BT,GAAgB,uBAElB4D,MAAM,eACNnD,MAAOvC,GACPgG,YAAY,oDACZC,MAAOrE,GAAgB,oBAA0B,QAGrD,SAAC,KAAD,CAAMuD,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,mBACHxC,KAAK,mBACL0C,SAAU,SAACC,GACTzF,GAAmByF,EAAEC,OAAOtD,OAC5BT,GAAgB,qBAElB4D,MAAM,aACNnD,MAAOrC,GACP+F,MAAOrE,GAAgB,kBAAwB,GAC/CU,UAAQ,OAGZ,SAAC,KAAD,CAAM6C,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,gBACHxC,KAAK,gBACL0C,SAAU,SAACC,GACTvF,GAAgBuF,EAAEC,OAAOtD,OACzBT,GAAgB,kBAElB4D,MAAM,SACNnD,MAAOnC,UAMG,OAAjBd,IACC,UAAC,EAAA4F,SAAD,YACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,SACHxC,KAAK,SACL0C,SAAU,SAACC,GACTrF,GAASqF,EAAEC,OAAOtD,OAClBT,GAAgB,WAElB4D,MAAM,sBACNnD,MAAOjC,GACP0F,YAAY,kBACZC,MAAOrE,GAAgB,QAAc,GACrCU,UAAQ,OAGZ,SAAC,KAAD,CAAM6C,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACExD,MAAM,aACNkD,GAAG,aACHxC,KAAK,aACLoD,QAAS/E,GACTqE,SAAU,SAACC,GACT,IACMS,EADUT,EAAEC,OACMQ,QACxB9E,GAAa8E,IAEfX,MAAO,6BAGX,SAAC,KAAD,CAAMP,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACExD,MAAM,oBACNkD,GAAG,oBACHxC,KAAK,oBACLoD,QAAS7E,GACTmE,SAAU,SAACC,GACT,IACMS,EADUT,EAAEC,OACMQ,QACxB5E,GAAoB4E,IAEtBX,MAAO,sBAGVlE,IACC,UAAC,KAAD,CAAM2D,MAAI,EAACC,GAAI,GAAf,WACE,SAAC,IAAD,CACEH,UAAWjG,EAAQiH,MACnBK,QAAQ,UACR/H,QAAQ,QACRgI,cAAY,EAJd,6EASA,qBAEA,MACJ,SAAC,KAAD,CAAMpB,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACExD,MAAM,oBACNkD,GAAG,oBACHxC,KAAK,oBACLoD,QAAS3E,GACTiE,SAAU,SAACC,GACT,IACMS,EADUT,EAAEC,OACMQ,QACxB1E,GAAoB0E,IAEtBX,MAAO,8CAGX,SAAC,KAAD,CAAMP,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,kBACHxC,KAAK,kBACL0C,SAAU,SAACC,GACTnF,GAAkBmF,EAAEC,OAAOtD,OAC3BT,GAAgB,oBAElB4D,MAAM,iBACNnD,MAAO/B,GACPwF,YAAY,wBACZC,MAAOrE,GAAgB,iBAAuB,GAC9CU,UAAQ,OAGZ,SAAC,KAAD,CAAM6C,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEG,KAAMtF,GAA2B,OAAS,WAC1C6E,GAAG,wBACHxC,KAAK,wBACL0C,SAAU,SAACC,GACTjF,GAAwBiF,EAAEC,OAAOtD,QAEnCmD,MAAM,uBACNnD,MAAO7B,GACPsF,YAAY,QACZG,YACEvF,IACE,SAAC,IAAD,KAEA,SAAC,IAAD,IAGJwF,cAAe,kBACbvF,IAA6BD,UAInC,SAAC,KAAD,CAAMuE,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,wBACHxC,KAAK,wBACL0C,SAAU,SAACC,GACT7E,GAAwB6E,EAAEC,OAAOtD,QAEnCmD,MAAM,yBACNnD,MAAOzB,GACPkF,YAAY,oBAGhB,SAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,wBACHxC,KAAK,wBACL0C,SAAU,SAACC,GACT3E,GAAwB2E,EAAEC,OAAOtD,QAEnCmD,MAAM,wBACNnD,MAAOvB,GACPgF,YAAY,0BAGhB,SAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,uBACHxC,KAAK,uBACL0C,SAAU,SAACC,GACTzE,GAAuByE,EAAEC,OAAOtD,QAElCmD,MAAM,uBACNnD,MAAOrB,GACP8E,YAAY,qDAGhB,SAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQ+G,aAAtC,UACE,SAAC,IAAD,CACEN,GAAG,uBACHxC,KAAK,uBACL0C,SAAU,SAACC,GACTvE,GAAuBuE,EAAEC,OAAOtD,QAElCmD,MAAM,sBACNnD,MAAOnB,GACP4E,YAAY,mDAMpB,SAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIH,UAAWjG,EAAQwH,gBAAtC,UACE,SAAC,IAAD,CACEN,KAAK,SACLI,QAAQ,YACRG,MAAM,UACNC,UAAWzE,IAAe/C,EAC1ByH,QAAS,kBAAMtH,GAAc,IAL/B,+B,yBCxkBRuH,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,sNACD,gBAEJN,EAAQ,EAAUG,G,0BCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,8fACD,iBAEJN,EAAQ,EAAUG","sources":["screens/Console/Tenants/TenantDetails/TenantIdentityProvider.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 { ITenant } from \"../ListTenants/types\";\nimport { ITenantIdentityProviderResponse } 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 Grid from \"@mui/material/Grid\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { Button, DialogContentText, Typography } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport Loader from \"../../Common/Loader/Loader\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../icons\";\n\ninterface ITenantIdentityProvider {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\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 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 ...containerForHeader(theme.spacing(4)),\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantIdentityProvider = ({\n classes,\n tenant,\n loadingTenant,\n setErrorSnackMessage,\n}: ITenantIdentityProvider) => {\n const [isSending, setIsSending] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [idpSelection, setIdpSelection] = useState(\"Built-in\");\n const [openIDConfigurationURL, setOpenIDConfigurationURL] =\n useState(\"\");\n const [openIDClientID, setOpenIDClientID] = useState(\"\");\n const [openIDSecretID, setOpenIDSecretID] = useState(\"\");\n const [showOIDCSecretID, setShowOIDCSecretID] = useState(false);\n const [openIDCallbackURL, setOpenIDCallbackURL] = useState(\"\");\n const [openIDClaimName, setOpenIDClaimName] = useState(\"\");\n const [openIDScopes, setOpenIDScopes] = useState(\"\");\n const [ADURL, setADURL] = useState(\"\");\n const [ADLookupBindDN, setADLookupBindDN] = useState(\"\");\n const [ADLookupBindPassword, setADLookupBindPassword] = useState(\"\");\n const [showADLookupBindPassword, setShowADLookupBindPassword] =\n useState(false);\n const [ADUserDNSearchBaseDN, setADUserDNSearchBaseDN] = useState(\"\");\n const [ADUserDNSearchFilter, setADUserDNSearchFilter] = useState(\"\");\n const [ADGroupSearchBaseDN, setADGroupSearchBaseDN] = useState(\"\");\n const [ADGroupSearchFilter, setADGroupSearchFilter] = useState(\"\");\n const [ADSkipTLS, setADSkipTLS] = useState(false);\n const [ADServerInsecure, setADServerInsecure] = useState(false);\n const [ADServerStartTLS, setADServerStartTLS] = useState(false);\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [isFormValid, setIsFormValid] = useState(false);\n\n // Validation\n useEffect(() => {\n let identityProviderValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n identityProviderValidation = [\n ...identityProviderValidation,\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 identityProviderValidation = [\n ...identityProviderValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(identityProviderValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDConfigurationURL,\n openIDClientID,\n openIDSecretID,\n openIDClaimName,\n ADURL,\n ADLookupBindDN,\n ]);\n\n const getTenantIdentityProviderInfo = useCallback(() => {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`\n )\n .then((res: ITenantIdentityProviderResponse) => {\n if (res) {\n if (res.oidc) {\n setIdpSelection(\"OpenID\");\n setOpenIDConfigurationURL(res.oidc.configuration_url);\n setOpenIDClientID(res.oidc.client_id);\n setOpenIDSecretID(res.oidc.secret_id);\n setOpenIDCallbackURL(res.oidc.callback_url);\n setOpenIDClaimName(res.oidc.claim_name);\n setOpenIDScopes(res.oidc.scopes);\n } else if (res.active_directory) {\n setIdpSelection(\"AD\");\n setADURL(res.active_directory.url);\n setADLookupBindDN(res.active_directory.lookup_bind_dn);\n setADLookupBindPassword(res.active_directory.lookup_bind_password);\n setADUserDNSearchBaseDN(\n res.active_directory.user_dn_search_base_dn\n );\n setADUserDNSearchFilter(res.active_directory.user_dn_search_filter);\n setADGroupSearchBaseDN(res.active_directory.group_search_base_dn);\n setADGroupSearchFilter(res.active_directory.group_search_filter);\n setADSkipTLS(res.active_directory.skip_tls_verification);\n setADServerInsecure(res.active_directory.server_insecure);\n setADServerStartTLS(res.active_directory.server_start_tls);\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n });\n }, [tenant, setErrorSnackMessage]);\n\n useEffect(() => {\n if (tenant) {\n getTenantIdentityProviderInfo();\n }\n }, [tenant, getTenantIdentityProviderInfo]);\n\n const updateTenantIdentityProvider = () => {\n setIsSending(true);\n let payload: ITenantIdentityProviderResponse = {};\n switch (idpSelection) {\n case \"AD\":\n payload.active_directory = {\n url: ADURL,\n lookup_bind_dn: ADLookupBindDN,\n lookup_bind_password: ADLookupBindPassword,\n user_dn_search_base_dn: ADUserDNSearchBaseDN,\n user_dn_search_filter: ADUserDNSearchFilter,\n group_search_base_dn: ADGroupSearchBaseDN,\n group_search_filter: ADGroupSearchFilter,\n skip_tls_verification: ADSkipTLS,\n server_insecure: ADServerInsecure,\n server_start_tls: ADServerStartTLS,\n };\n break;\n case \"OpenID\":\n payload.oidc = {\n configuration_url: openIDConfigurationURL,\n client_id: openIDClientID,\n secret_id: openIDSecretID,\n callback_url: openIDCallbackURL,\n claim_name: openIDClaimName,\n scopes: openIDScopes,\n };\n break;\n default:\n // Built-in IDP will be used by default\n }\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`,\n payload\n )\n .then(() => {\n setIsSending(false);\n // Close confirmation modal\n setDialogOpen(false);\n getTenantIdentityProviderInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsSending(false);\n });\n };\n\n return (\n \n }\n isLoading={isSending}\n onClose={() => setDialogOpen(false)}\n isOpen={dialogOpen}\n onConfirm={updateTenantIdentityProvider}\n confirmationContent={\n \n Are you sure you want to save the changes and restart the service?\n \n }\n />\n {loadingTenant ? (\n
    \n \n
    \n ) : (\n \n \n

    Identity Provider

    \n
    \n
    \n \n {\n setIdpSelection(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\n {idpSelection === \"OpenID\" && (\n \n \n ) => {\n setOpenIDConfigurationURL(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 setOpenIDClientID(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 setOpenIDSecretID(e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n overlayIcon={\n showOIDCSecretID ? (\n \n ) : (\n \n )\n }\n overlayAction={() => setShowOIDCSecretID(!showOIDCSecretID)}\n />\n \n \n ) => {\n setOpenIDCallbackURL(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 setOpenIDClaimName(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 setOpenIDScopes(e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n )}\n\n {idpSelection === \"AD\" && (\n \n \n ) => {\n setADURL(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 setADSkipTLS(checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerInsecure(checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be\n unencrypted\n \n
    \n
    \n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerStartTLS(checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n setADLookupBindDN(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 setADLookupBindPassword(e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n overlayIcon={\n showADLookupBindPassword ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowADLookupBindPassword(!showADLookupBindPassword)\n }\n />\n \n \n ) => {\n setADUserDNSearchBaseDN(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 setADUserDNSearchFilter(e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n setADGroupSearchBaseDN(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 setADGroupSearchFilter(e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
    \n )}\n\n \n setDialogOpen(true)}\n >\n Save\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 mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantIdentityProvider));\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":["mapDispatchToProps","setErrorSnackMessage","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","withStyles","theme","createStyles","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","title","marginTop","bold","fontWeight","italic","fontStyle","paperContainer","padding","fileItem","marginRight","display","minWidth","flexFlow","containerForHeader","spacing","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","classes","useState","isSending","setIsSending","dialogOpen","setDialogOpen","idpSelection","setIdpSelection","openIDConfigurationURL","setOpenIDConfigurationURL","openIDClientID","setOpenIDClientID","openIDSecretID","setOpenIDSecretID","showOIDCSecretID","setShowOIDCSecretID","openIDCallbackURL","setOpenIDCallbackURL","openIDClaimName","setOpenIDClaimName","openIDScopes","setOpenIDScopes","ADURL","setADURL","ADLookupBindDN","setADLookupBindDN","ADLookupBindPassword","setADLookupBindPassword","showADLookupBindPassword","setShowADLookupBindPassword","ADUserDNSearchBaseDN","setADUserDNSearchBaseDN","ADUserDNSearchFilter","setADUserDNSearchFilter","ADGroupSearchBaseDN","setADGroupSearchBaseDN","ADGroupSearchFilter","setADGroupSearchFilter","ADSkipTLS","setADSkipTLS","ADServerInsecure","setADServerInsecure","ADServerStartTLS","setADServerStartTLS","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","isFormValid","setIsFormValid","useEffect","identityProviderValidation","fieldKey","required","value","commonVal","commonFormValidation","Object","keys","length","getTenantIdentityProviderInfo","useCallback","api","namespace","name","then","res","oidc","configuration_url","client_id","secret_id","callback_url","claim_name","scopes","active_directory","url","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","skip_tls_verification","server_insecure","server_start_tls","catch","err","confirmText","cancelText","titleIcon","isLoading","onClose","isOpen","onConfirm","payload","confirmationContent","className","Fragment","item","xs","sectionTitle","hrClass","protocolRadioOptions","currentSelection","id","label","onChange","e","target","selectorOptions","formFieldRow","placeholder","error","type","overlayIcon","overlayAction","checked","variant","gutterBottom","buttonContainer","color","disabled","onClick","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7045.7a56a854.chunk.js b/portal-ui/build/static/js/7045.7a56a854.chunk.js new file mode 100644 index 000000000..f579beb6a --- /dev/null +++ b/portal-ui/build/static/js/7045.7a56a854.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7045],{37045:function(e,t,o){o.r(t);var r=o(1413),n=o(72791),a=o(11135),l=o(25787),i=o(15514),s=o(23814),c=o(32291),p=o(62666),d=o(84669),u=o(74794),m=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,r.Z)((0,r.Z)({},s.Je),s.fc))}))((function(e){var t=e.classes;return(0,g.jsxs)(n.Fragment,{children:[(0,g.jsx)(c.Z,{label:(0,g.jsx)(n.Fragment,{children:(0,g.jsx)(d.Z,{to:m.gA.NOTIFICATIONS_ENDPOINTS,label:"Notification Targets"})}),actions:(0,g.jsx)(n.Fragment,{})}),(0,g.jsx)(u.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(m.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 r,n=o(4942),a="notify_postgres",l="notify_mysql",i="notify_kafka",s="notify_amqp",c="notify_mqtt",p="notify_redis",d="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: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:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,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=(r={},(0,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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,n.Z)(r,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)),r)}}]); +//# sourceMappingURL=7045.7a56a854.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7045.7a56a854.chunk.js.map b/portal-ui/build/static/js/7045.7a56a854.chunk.js.map new file mode 100644 index 000000000..ea98fdbc6 --- /dev/null +++ b/portal-ui/build/static/js/7045.7a56a854.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7045.7a56a854.chunk.js","mappings":"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","sources":["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, { 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":["withLogos","servicesList","elService","logo","withStyles","theme","createStyles","settingsCommon","typesSelection","classes","Fragment","label","to","IAM_PAGES","actions","className","iconContainer","map","item","lambdaNotif","onClick","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/7045.e30cf01e.chunk.js b/portal-ui/build/static/js/7045.e30cf01e.chunk.js deleted file mode 100644 index 7fa8d1e87..000000000 --- a/portal-ui/build/static/js/7045.e30cf01e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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(93656),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(93656),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.e30cf01e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7045.e30cf01e.chunk.js.map b/portal-ui/build/static/js/7045.e30cf01e.chunk.js.map deleted file mode 100644 index 918837f0c..000000000 --- a/portal-ui/build/static/js/7045.e30cf01e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7045.e30cf01e.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.121af87a.chunk.js b/portal-ui/build/static/js/711.121af87a.chunk.js deleted file mode 100644 index 8a1d8932f..000000000 --- a/portal-ui/build/static/js/711.121af87a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[711],{50711:function(e,t,n){n.r(t);var s=n(29439),r=n(72791),o=n(60364),i=n(51691),l=n(42649),c=n(9505),u=n(23508),a=n(93656),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.971db52a.chunk.js","mappings":"mOAiHMA,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/7164.5542a849.chunk.js b/portal-ui/build/static/js/7164.5542a849.chunk.js new file mode 100644 index 000000000..3feb70066 --- /dev/null +++ b/portal-ui/build/static/js/7164.5542a849.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7164],{57314:function(e,t,a){var n=a(1413),l=a(72791),i=a(61889),s=a(30829),r=a(20068),o=a(27391),c=a(11135),u=a(25787),d=a(23814),m=a(84570),f=a(80184);t.Z=(0,u.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},d.YI),d.Hr),{},{inputLabel:(0,n.Z)((0,n.Z)({},d.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,n.Z)((0,n.Z)({},d.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,a=e.onChange,n=e.value,c=e.id,u=e.name,d=e.disabled,h=void 0!==d&&d,x=e.tooltip,p=void 0===x?"":x,v=e.index,g=void 0===v?0:v,Z=e.error,b=void 0===Z?"":Z,j=e.required,C=void 0!==j&&j,w=e.placeholder,P=void 0===w?"":w,S=e.classes,N={"data-index":g};return(0,f.jsx)(l.Fragment,{children:(0,f.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(S.fieldContainer," ").concat(""!==b?S.errorInField:""),children:[""!==t&&(0,f.jsxs)(s.Z,{htmlFor:c,className:S.inputLabel,children:[(0,f.jsxs)("span",{children:[t,C?"*":""]}),""!==p&&(0,f.jsx)("div",{className:S.tooltipContainer,children:(0,f.jsx)(r.Z,{title:p,placement:"top-start",children:(0,f.jsx)("div",{className:S.tooltip,children:(0,f.jsx)(m.Z,{})})})})]}),(0,f.jsx)("div",{className:S.textBoxContainer,children:(0,f.jsx)(o.Z,{id:c,name:u,fullWidth:!0,value:n,disabled:h,onChange:a,multiline:!0,rows:5,inputProps:N,error:""!==b,helperText:b,placeholder:P,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:S.cssOutlinedInput,root:S.rootContainer}},variant:"outlined"})})]})})}))},64163:function(e,t,a){var n=a(1413),l=a(72791),i=a(61889),s=a(11135),r=a(25787),o=a(23814),c=a(80184);t.Z=(0,r.Z)((function(e){return(0,s.Z)((0,n.Z)({},o.xx))}))((function(e){var t=e.classes,a=e.label,n=void 0===a?"":a,s=e.content,r=e.multiLine,o=void 0!==r&&r;return(0,c.jsx)(l.Fragment,{children:(0,c.jsxs)(i.ZP,{className:t.prefinedContainer,children:[""!==n&&(0,c.jsx)(i.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:n}),(0,c.jsx)(i.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(i.ZP,{item:!0,xs:12,className:o?t.innerContentMultiline:t.innerContent,children:s})})]})})}))},27164:function(e,t,a){a.r(t);var n=a(37762),l=a(29439),i=a(1413),s=a(72791),r=a(11135),o=a(25787),c=a(61889),u=a(21435),d=a(83679),m=a(90673),f=a(23814),h=a(57314),x=a(37516),p=a(64163),v=a(80184);t.default=(0,o.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)({},f.oO),f.DF))}))((function(e){var t=e.onChange,a=e.classes,i=(0,s.useState)(!1),r=(0,l.Z)(i,2),o=r[0],f=r[1],g=(0,s.useState)(""),Z=(0,l.Z)(g,2),b=Z[0],j=Z[1],C=(0,s.useState)(""),w=(0,l.Z)(C,2),P=w[0],S=w[1],N=(0,s.useState)(""),F=(0,l.Z)(N,2),y=F[0],E=F[1],k=(0,s.useState)(""),R=(0,l.Z)(k,2),I=R[0],O=R[1],L=(0,s.useState)(""),q=(0,l.Z)(L,2),M=q[0],_=q[1],A=(0,s.useState)(""),D=(0,l.Z)(A,2),T=D[0],W=D[1],B=(0,s.useState)(" "),Q=(0,l.Z)(B,2),z=Q[0],H=Q[1],Y=(0,s.useState)(""),V=(0,l.Z)(Y,2),G=V[0],U=V[1],J=(0,s.useState)("namespace"),K=(0,l.Z)(J,2),X=K[0],$=K[1],ee=(0,s.useState)(""),te=(0,l.Z)(ee,2),ae=te[0],ne=te[1],le=(0,s.useState)(""),ie=(0,l.Z)(le,2),se=ie[0],re=ie[1],oe=(0,s.useState)(""),ce=(0,l.Z)(oe,2),ue=ce[0],de=ce[1],me=(0,s.useCallback)((function(){var e="";return""!==P&&(e="".concat(e," host=").concat(P)),""!==y&&(e="".concat(e," dbname=").concat(y)),""!==M&&(e="".concat(e," user=").concat(M)),""!==T&&(e="".concat(e," password=").concat(T)),""!==I&&(e="".concat(e," port=").concat(I))," "!==z&&(e="".concat(e," sslmode=").concat(z)),(e="".concat(e," ")).trim()}),[P,y,M,T,I,z]);return(0,s.useEffect)((function(){""!==b&&t([{key:"connection_string",value:b},{key:"table",value:G},{key:"format",value:X},{key:"queue_dir",value:ae},{key:"queue_limit",value:se},{key:"comment",value:ue}])}),[b,G,X,ae,se,ue,t]),(0,s.useEffect)((function(){var e=me();j(e)}),[M,y,T,I,z,P,j,me]),(0,s.useEffect)((function(){if(o){var e=me();j(e)}else{var t=function(e,t){var a,l=[],i=(0,n.Z)(t);try{for(i.s();!(a=i.n()).done;){var s=a.value,r=e.indexOf(s+"=");-1!==r&&l.push(r)}}catch(v){i.e(v)}finally{i.f()}l.sort((function(e,t){return e-t}));for(var o=new Map,c=new Array(l.length),u=0;u.\n\nimport React from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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 .\n\nimport React, { useCallback, useEffect, useState } 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\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { IElementValue } from \"../../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport CommentBoxWrapper from \"../../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface IConfPostgresProps {\n onChange: (newValue: IElementValue[]) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst ConfPostgres = ({ onChange, classes }: IConfPostgresProps) => {\n //Local States\n const [useConnectionString, setUseConnectionString] =\n useState(false);\n const [connectionString, setConnectionString] = useState(\"\");\n const [host, setHostname] = useState(\"\");\n const [dbName, setDbName] = useState(\"\");\n const [port, setPort] = useState(\"\");\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [sslMode, setSslMode] = useState(\" \");\n\n const [table, setTable] = useState(\"\");\n const [format, setFormat] = useState(\"namespace\");\n const [queueDir, setQueueDir] = useState(\"\");\n const [queueLimit, setQueueLimit] = useState(\"\");\n const [comment, setComment] = useState(\"\");\n\n // connection_string* (string) Postgres server connection-string e.g. \"host=localhost port=5432 dbname=minio_events user=postgres password=password sslmode=disable\"\n\n // \"host=localhost\n // port=5432\n //dbname=minio_events\n //user=postgres\n //password=password\n //sslmode=disable\"\n\n // table* (string) DB table name to store/update events, table is auto-created\n // format* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\n // queue_dir (path) staging dir for undelivered messages e.g. '/home/events'\n // queue_limit (number) maximum limit for undelivered messages, defaults to '10000'\n // comment (sentence) optionally add a comment to this setting\n\n const KvSeparator = \"=\";\n const parseConnectionString = (\n input: string,\n keys: string[]\n ): Map => {\n let valueIndexes: number[] = [];\n\n for (const key of keys) {\n const i = input.indexOf(key + KvSeparator);\n if (i === -1) {\n continue;\n }\n valueIndexes.push(i);\n }\n valueIndexes.sort((n1, n2) => n1 - n2);\n\n let kvFields = new Map();\n let fields: string[] = new Array(valueIndexes.length);\n for (let i = 0; i < valueIndexes.length; i++) {\n const j = i + 1;\n if (j < valueIndexes.length) {\n fields[i] = input.slice(valueIndexes[i], valueIndexes[j]);\n } else {\n fields[i] = input.slice(valueIndexes[i]);\n }\n }\n\n for (let field of fields) {\n if (field === undefined) {\n continue;\n }\n const key = field.slice(0, field.indexOf(\"=\"));\n const value = field.slice(field.indexOf(\"=\") + 1).trim();\n kvFields.set(key, value);\n }\n return kvFields;\n };\n\n const configToString = useCallback((): string => {\n let strValue = \"\";\n if (host !== \"\") {\n strValue = `${strValue} host=${host}`;\n }\n if (dbName !== \"\") {\n strValue = `${strValue} dbname=${dbName}`;\n }\n if (user !== \"\") {\n strValue = `${strValue} user=${user}`;\n }\n if (password !== \"\") {\n strValue = `${strValue} password=${password}`;\n }\n if (port !== \"\") {\n strValue = `${strValue} port=${port}`;\n }\n if (sslMode !== \" \") {\n strValue = `${strValue} sslmode=${sslMode}`;\n }\n\n strValue = `${strValue} `;\n\n return strValue.trim();\n }, [host, dbName, user, password, port, sslMode]);\n\n useEffect(() => {\n if (connectionString !== \"\") {\n const formValues = [\n { key: \"connection_string\", value: connectionString },\n { key: \"table\", value: table },\n { key: \"format\", value: format },\n { key: \"queue_dir\", value: queueDir },\n { key: \"queue_limit\", value: queueLimit },\n { key: \"comment\", value: comment },\n ];\n\n onChange(formValues);\n }\n }, [\n connectionString,\n table,\n format,\n queueDir,\n queueLimit,\n comment,\n onChange,\n ]);\n\n useEffect(() => {\n const cs = configToString();\n setConnectionString(cs);\n }, [\n user,\n dbName,\n password,\n port,\n sslMode,\n host,\n setConnectionString,\n configToString,\n ]);\n\n useEffect(() => {\n if (useConnectionString) {\n // build connection_string\n const cs = configToString();\n setConnectionString(cs);\n\n return;\n }\n // parse connection_string\n const kv = parseConnectionString(connectionString, [\n \"host\",\n \"port\",\n \"dbname\",\n \"user\",\n \"password\",\n \"sslmode\",\n ]);\n setHostname(kv.get(\"host\") ? kv.get(\"host\") + \"\" : \"\");\n setPort(kv.get(\"port\") ? kv.get(\"port\") + \"\" : \"\");\n setDbName(kv.get(\"dbname\") ? kv.get(\"dbname\") + \"\" : \"\");\n setUser(kv.get(\"user\") ? kv.get(\"user\") + \"\" : \"\");\n setPassword(kv.get(\"password\") ? kv.get(\"password\") + \"\" : \"\");\n setSslMode(kv.get(\"sslmode\") ? kv.get(\"sslmode\") + \"\" : \" \");\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [useConnectionString]);\n\n return (\n \n \n {\n setUseConnectionString(e.target.checked);\n }}\n value={\"manualString\"}\n />\n \n {useConnectionString ? (\n \n \n ) => {\n setConnectionString(e.target.value);\n }}\n />\n \n \n ) : (\n \n \n \n \n ) => {\n setHostname(e.target.value);\n }}\n />\n \n \n ) => {\n setDbName(e.target.value);\n }}\n />\n \n \n ) => {\n setPort(e.target.value);\n }}\n />\n \n \n {\n if (e.target.value !== undefined) {\n setSslMode(e.target.value + \"\");\n }\n }}\n options={[\n { label: \"Enter SSL Mode\", value: \" \" },\n { label: \"Require\", value: \"require\" },\n { label: \"Disable\", value: \"disable\" },\n { label: \"Verify CA\", value: \"verify-ca\" },\n { label: \"Verify Full\", value: \"verify-full\" },\n ]}\n />\n \n \n ) => {\n setUser(e.target.value);\n }}\n />\n \n \n ) => {\n setPassword(e.target.value);\n }}\n />\n \n \n \n \n \n
    \n
    \n
    \n )}\n \n ) => {\n setTable(e.target.value);\n }}\n />\n \n \n {\n setFormat(e.target.value);\n }}\n tooltip=\"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\"\n selectorOptions={[\n { label: \"Namespace\", value: \"namespace\" },\n { label: \"Access\", value: \"access\" },\n ]}\n />\n \n \n ) => {\n setQueueDir(e.target.value);\n }}\n />\n \n \n ) => {\n setQueueLimit(e.target.value);\n }}\n />\n \n \n ) => {\n setComment(e.target.value);\n }}\n />\n \n
    \n );\n};\n\nexport default withStyles(styles)(ConfPostgres);\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","predefinedList","content","multiLine","Fragment","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","modalBasic","formFieldStyles","useState","useConnectionString","setUseConnectionString","connectionString","setConnectionString","host","setHostname","dbName","setDbName","port","setPort","user","setUser","password","setPassword","sslMode","setSslMode","table","setTable","format","setFormat","queueDir","setQueueDir","queueLimit","setQueueLimit","comment","setComment","configToString","useCallback","strValue","trim","useEffect","key","cs","kv","input","keys","valueIndexes","i","indexOf","push","sort","n1","n2","kvFields","Map","fields","Array","length","j","slice","field","undefined","set","parseConnectionString","get","container","checked","e","target","formFieldRow","configureString","options","type","currentSelection","selectorOptions"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7164.e4aebe46.chunk.js b/portal-ui/build/static/js/7164.e4aebe46.chunk.js deleted file mode 100644 index ca58a85b3..000000000 --- a/portal-ui/build/static/js/7164.e4aebe46.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7164],{57314:function(e,t,a){var n=a(1413),l=a(72791),o=a(61889),i=a(30829),s=a(20068),r=a(27391),c=a(11135),u=a(25787),d=a(23814),m=a(84570),h=a(80184);t.Z=(0,u.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},d.YI),d.Hr),{},{inputLabel:(0,n.Z)((0,n.Z)({},d.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,n.Z)((0,n.Z)({},d.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,a=e.onChange,n=e.value,c=e.id,u=e.name,d=e.disabled,x=void 0!==d&&d,p=e.tooltip,f=void 0===p?"":p,v=e.index,Z=void 0===v?0:v,g=e.error,b=void 0===g?"":g,j=e.required,C=void 0!==j&&j,N=e.placeholder,P=void 0===N?"":N,S=e.classes,w={"data-index":Z};return(0,h.jsx)(l.Fragment,{children:(0,h.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(S.fieldContainer," ").concat(""!==b?S.errorInField:""),children:[""!==t&&(0,h.jsxs)(i.Z,{htmlFor:c,className:S.inputLabel,children:[(0,h.jsxs)("span",{children:[t,C?"*":""]}),""!==f&&(0,h.jsx)("div",{className:S.tooltipContainer,children:(0,h.jsx)(s.Z,{title:f,placement:"top-start",children:(0,h.jsx)("div",{className:S.tooltip,children:(0,h.jsx)(m.Z,{})})})})]}),(0,h.jsx)("div",{className:S.textBoxContainer,children:(0,h.jsx)(r.Z,{id:c,name:u,fullWidth:!0,value:n,disabled:x,onChange:a,multiline:!0,rows:5,inputProps:w,error:""!==b,helperText:b,placeholder:P,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:S.cssOutlinedInput,root:S.rootContainer}},variant:"outlined"})})]})})}))},64163:function(e,t,a){var n=a(1413),l=a(72791),o=a(61889),i=a(11135),s=a(25787),r=a(23814),c=a(80184);t.Z=(0,s.Z)((function(e){return(0,i.Z)((0,n.Z)({},r.xx))}))((function(e){var t=e.classes,a=e.label,n=void 0===a?"":a,i=e.content,s=e.multiLine,r=void 0!==s&&s;return(0,c.jsx)(l.Fragment,{children:(0,c.jsxs)(o.ZP,{className:t.prefinedContainer,children:[""!==n&&(0,c.jsx)(o.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:n}),(0,c.jsx)(o.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(o.ZP,{item:!0,xs:12,className:r?t.innerContentMultiline:t.innerContent,children:i})})]})})}))},83679:function(e,t,a){var n=a(4942),l=a(1413),o=(a(72791),a(28182)),i=a(61889),s=a(10765),r=a(85523),c=a(61419),u=a(30829),d=a(20068),m=a(11135),h=a(25787),x=a(72455),p=a(23814),f=a(84570),v=a(80184),Z=(0,x.Z)((0,l.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),g=function(e){var t=Z();return(0,v.jsx)(c.Z,(0,l.Z)({className:t.root,disableRipple:!0,color:"default",checkedIcon:(0,v.jsx)("span",{className:t.radioSelectedIcon}),icon:(0,v.jsx)("span",{className:t.radioUnselectedIcon})},e))};t.Z=(0,h.Z)((function(e){return(0,m.Z)((0,l.Z)((0,l.Z)((0,l.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 t=e.selectorOptions,a=void 0===t?[]:t,l=e.currentSelection,c=e.label,m=e.id,h=e.name,x=e.onChange,p=e.tooltip,Z=void 0===p?"":p,b=e.disableOptions,j=void 0!==b&&b,C=e.classes,N=e.displayInColumn,P=void 0!==N&&N;return(0,v.jsxs)(i.ZP,{container:!0,alignItems:"center",children:[(0,v.jsx)(i.ZP,{item:!0,xs:!0,children:(0,v.jsxs)(u.Z,{htmlFor:m,className:C.inputLabel,children:[(0,v.jsx)("span",{children:c}),""!==Z&&(0,v.jsx)("div",{className:C.tooltipContainer,children:(0,v.jsx)(d.Z,{title:Z,placement:"top-start",children:(0,v.jsx)("div",{children:(0,v.jsx)(f.Z,{})})})})]})}),(0,v.jsx)(i.ZP,{item:!0,xs:!0,className:C.radioOptionsLayout,children:(0,v.jsx)(s.Z,{"aria-label":m,id:m,name:h,value:l,onChange:x,row:!P,style:{display:"block",textAlign:"right"},children:a.map((function(e){return(0,v.jsx)(r.Z,{value:e.value,control:(0,v.jsx)(g,{}),label:e.label,disabled:j,className:(0,o.Z)(C.optionLabel,(0,n.Z)({},C.checkedOption,e.value===l))},"rd-".concat(h,"-").concat(e.value))}))})})]})}))},27164:function(e,t,a){a.r(t);var n=a(37762),l=a(29439),o=a(1413),i=a(72791),s=a(11135),r=a(25787),c=a(61889),u=a(21435),d=a(83679),m=a(90673),h=a(23814),x=a(57314),p=a(37516),f=a(64163),v=a(80184);t.default=(0,r.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)({},h.oO),h.DF))}))((function(e){var t=e.onChange,a=e.classes,o=(0,i.useState)(!1),s=(0,l.Z)(o,2),r=s[0],h=s[1],Z=(0,i.useState)(""),g=(0,l.Z)(Z,2),b=g[0],j=g[1],C=(0,i.useState)(""),N=(0,l.Z)(C,2),P=N[0],S=N[1],w=(0,i.useState)(""),F=(0,l.Z)(w,2),y=F[0],k=F[1],E=(0,i.useState)(""),I=(0,l.Z)(E,2),L=I[0],O=I[1],R=(0,i.useState)(""),M=(0,l.Z)(R,2),q=M[0],_=M[1],A=(0,i.useState)(""),D=(0,l.Z)(A,2),W=D[0],z=D[1],T=(0,i.useState)(" "),B=(0,l.Z)(T,2),H=B[0],Q=B[1],Y=(0,i.useState)(""),U=(0,l.Z)(Y,2),V=U[0],G=U[1],J=(0,i.useState)("namespace"),K=(0,l.Z)(J,2),X=K[0],$=K[1],ee=(0,i.useState)(""),te=(0,l.Z)(ee,2),ae=te[0],ne=te[1],le=(0,i.useState)(""),oe=(0,l.Z)(le,2),ie=oe[0],se=oe[1],re=(0,i.useState)(""),ce=(0,l.Z)(re,2),ue=ce[0],de=ce[1],me=(0,i.useCallback)((function(){var e="";return""!==P&&(e="".concat(e," host=").concat(P)),""!==y&&(e="".concat(e," dbname=").concat(y)),""!==q&&(e="".concat(e," user=").concat(q)),""!==W&&(e="".concat(e," password=").concat(W)),""!==L&&(e="".concat(e," port=").concat(L))," "!==H&&(e="".concat(e," sslmode=").concat(H)),(e="".concat(e," ")).trim()}),[P,y,q,W,L,H]);return(0,i.useEffect)((function(){""!==b&&t([{key:"connection_string",value:b},{key:"table",value:V},{key:"format",value:X},{key:"queue_dir",value:ae},{key:"queue_limit",value:ie},{key:"comment",value:ue}])}),[b,V,X,ae,ie,ue,t]),(0,i.useEffect)((function(){var e=me();j(e)}),[q,y,W,L,H,P,j,me]),(0,i.useEffect)((function(){if(r){var e=me();j(e)}else{var t=function(e,t){var a,l=[],o=(0,n.Z)(t);try{for(o.s();!(a=o.n()).done;){var i=a.value,s=e.indexOf(i+"=");-1!==s&&l.push(s)}}catch(v){o.e(v)}finally{o.f()}l.sort((function(e,t){return e-t}));for(var r=new Map,c=new Array(l.length),u=0;u.\n\nimport React from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { IElementValue } from \"../../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport CommentBoxWrapper from \"../../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface IConfPostgresProps {\n onChange: (newValue: IElementValue[]) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst ConfPostgres = ({ onChange, classes }: IConfPostgresProps) => {\n //Local States\n const [useConnectionString, setUseConnectionString] =\n useState(false);\n const [connectionString, setConnectionString] = useState(\"\");\n const [host, setHostname] = useState(\"\");\n const [dbName, setDbName] = useState(\"\");\n const [port, setPort] = useState(\"\");\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [sslMode, setSslMode] = useState(\" \");\n\n const [table, setTable] = useState(\"\");\n const [format, setFormat] = useState(\"namespace\");\n const [queueDir, setQueueDir] = useState(\"\");\n const [queueLimit, setQueueLimit] = useState(\"\");\n const [comment, setComment] = useState(\"\");\n\n // connection_string* (string) Postgres server connection-string e.g. \"host=localhost port=5432 dbname=minio_events user=postgres password=password sslmode=disable\"\n\n // \"host=localhost\n // port=5432\n //dbname=minio_events\n //user=postgres\n //password=password\n //sslmode=disable\"\n\n // table* (string) DB table name to store/update events, table is auto-created\n // format* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\n // queue_dir (path) staging dir for undelivered messages e.g. '/home/events'\n // queue_limit (number) maximum limit for undelivered messages, defaults to '10000'\n // comment (sentence) optionally add a comment to this setting\n\n const KvSeparator = \"=\";\n const parseConnectionString = (\n input: string,\n keys: string[]\n ): Map => {\n let valueIndexes: number[] = [];\n\n for (const key of keys) {\n const i = input.indexOf(key + KvSeparator);\n if (i === -1) {\n continue;\n }\n valueIndexes.push(i);\n }\n valueIndexes.sort((n1, n2) => n1 - n2);\n\n let kvFields = new Map();\n let fields: string[] = new Array(valueIndexes.length);\n for (let i = 0; i < valueIndexes.length; i++) {\n const j = i + 1;\n if (j < valueIndexes.length) {\n fields[i] = input.substr(\n valueIndexes[i],\n valueIndexes[j] - valueIndexes[i]\n );\n } else {\n fields[i] = input.substr(valueIndexes[i]);\n }\n }\n\n for (let field of fields) {\n if (field === undefined) {\n continue;\n }\n const key = field.substr(0, field.indexOf(\"=\"));\n const value = field.substr(field.indexOf(\"=\") + 1).trim();\n kvFields.set(key, value);\n }\n return kvFields;\n };\n\n const configToString = useCallback((): string => {\n let strValue = \"\";\n if (host !== \"\") {\n strValue = `${strValue} host=${host}`;\n }\n if (dbName !== \"\") {\n strValue = `${strValue} dbname=${dbName}`;\n }\n if (user !== \"\") {\n strValue = `${strValue} user=${user}`;\n }\n if (password !== \"\") {\n strValue = `${strValue} password=${password}`;\n }\n if (port !== \"\") {\n strValue = `${strValue} port=${port}`;\n }\n if (sslMode !== \" \") {\n strValue = `${strValue} sslmode=${sslMode}`;\n }\n\n strValue = `${strValue} `;\n\n return strValue.trim();\n }, [host, dbName, user, password, port, sslMode]);\n\n useEffect(() => {\n if (connectionString !== \"\") {\n const formValues = [\n { key: \"connection_string\", value: connectionString },\n { key: \"table\", value: table },\n { key: \"format\", value: format },\n { key: \"queue_dir\", value: queueDir },\n { key: \"queue_limit\", value: queueLimit },\n { key: \"comment\", value: comment },\n ];\n\n onChange(formValues);\n }\n }, [\n connectionString,\n table,\n format,\n queueDir,\n queueLimit,\n comment,\n onChange,\n ]);\n\n useEffect(() => {\n const cs = configToString();\n setConnectionString(cs);\n }, [\n user,\n dbName,\n password,\n port,\n sslMode,\n host,\n setConnectionString,\n configToString,\n ]);\n\n useEffect(() => {\n if (useConnectionString) {\n // build connection_string\n const cs = configToString();\n setConnectionString(cs);\n\n return;\n }\n // parse connection_string\n const kv = parseConnectionString(connectionString, [\n \"host\",\n \"port\",\n \"dbname\",\n \"user\",\n \"password\",\n \"sslmode\",\n ]);\n setHostname(kv.get(\"host\") ? kv.get(\"host\") + \"\" : \"\");\n setPort(kv.get(\"port\") ? kv.get(\"port\") + \"\" : \"\");\n setDbName(kv.get(\"dbname\") ? kv.get(\"dbname\") + \"\" : \"\");\n setUser(kv.get(\"user\") ? kv.get(\"user\") + \"\" : \"\");\n setPassword(kv.get(\"password\") ? kv.get(\"password\") + \"\" : \"\");\n setSslMode(kv.get(\"sslmode\") ? kv.get(\"sslmode\") + \"\" : \" \");\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [useConnectionString]);\n\n return (\n \n \n {\n setUseConnectionString(e.target.checked);\n }}\n value={\"manualString\"}\n />\n \n {useConnectionString ? (\n \n \n ) => {\n setConnectionString(e.target.value);\n }}\n />\n \n \n ) : (\n \n \n \n \n ) => {\n setHostname(e.target.value);\n }}\n />\n \n \n ) => {\n setDbName(e.target.value);\n }}\n />\n \n \n ) => {\n setPort(e.target.value);\n }}\n />\n \n \n {\n if (e.target.value !== undefined) {\n setSslMode(e.target.value + \"\");\n }\n }}\n options={[\n { label: \"Enter SSL Mode\", value: \" \" },\n { label: \"Require\", value: \"require\" },\n { label: \"Disable\", value: \"disable\" },\n { label: \"Verify CA\", value: \"verify-ca\" },\n { label: \"Verify Full\", value: \"verify-full\" },\n ]}\n />\n \n \n ) => {\n setUser(e.target.value);\n }}\n />\n \n \n ) => {\n setPassword(e.target.value);\n }}\n />\n \n \n \n \n \n
    \n
    \n
    \n )}\n \n ) => {\n setTable(e.target.value);\n }}\n />\n \n \n {\n setFormat(e.target.value);\n }}\n tooltip=\"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\"\n selectorOptions={[\n { label: \"Namespace\", value: \"namespace\" },\n { label: \"Access\", value: \"access\" },\n ]}\n />\n \n \n ) => {\n setQueueDir(e.target.value);\n }}\n />\n \n \n ) => {\n setQueueLimit(e.target.value);\n }}\n />\n \n \n ) => {\n setComment(e.target.value);\n }}\n />\n \n
    \n );\n};\n\nexport default withStyles(styles)(ConfPostgres);\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","predefinedList","content","multiLine","Fragment","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","radioStyles","makeStyles","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","icon","radioUnselectedIcon","optionLabel","marginRight","checkedOption","selectorOptions","currentSelection","disableOptions","displayInColumn","container","radioOptionsLayout","row","style","textAlign","map","selectorOption","control","clsx","modalBasic","formFieldStyles","useState","useConnectionString","setUseConnectionString","connectionString","setConnectionString","host","setHostname","dbName","setDbName","port","setPort","user","setUser","password","setPassword","sslMode","setSslMode","table","setTable","format","setFormat","queueDir","setQueueDir","queueLimit","setQueueLimit","comment","setComment","configToString","useCallback","strValue","trim","useEffect","key","cs","kv","input","keys","valueIndexes","i","indexOf","push","sort","n1","n2","kvFields","Map","fields","Array","length","j","substr","field","undefined","set","parseConnectionString","get","checked","e","target","formFieldRow","configureString","options","type"],"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 deleted file mode 100644 index 0f1f9a066..000000000 --- a/portal-ui/build/static/js/7315.f1bb4245.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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 deleted file mode 100644 index 768b44431..000000000 --- a/portal-ui/build/static/js/7315.f1bb4245.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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.106a6938.chunk.js b/portal-ui/build/static/js/7331.106a6938.chunk.js deleted file mode 100644 index cc8ca7c64..000000000 --- a/portal-ui/build/static/js/7331.106a6938.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7331],{9505:function(e,n,t){var a=t(29439),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(29439),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(93656),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 diff --git a/portal-ui/build/static/js/7413.a6fe6f9f.chunk.js b/portal-ui/build/static/js/7413.76c38a02.chunk.js similarity index 79% rename from portal-ui/build/static/js/7413.a6fe6f9f.chunk.js rename to portal-ui/build/static/js/7413.76c38a02.chunk.js index a667387d8..3a8859f2d 100644 --- a/portal-ui/build/static/js/7413.a6fe6f9f.chunk.js +++ b/portal-ui/build/static/js/7413.76c38a02.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(29439),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(29439),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(93656),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(93433),a=s(29439),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.a6fe6f9f.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(29439),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),x=s(23814),Z=s(42649),h=s(29823),p=s(28057),g=s(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},x.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(j((function(e){var n=e.onClose,s=e.modalOpen,i=e.title,m=e.children,f=e.classes,x=e.wideLimit,Z=void 0===x||x,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=Z?{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(29439),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),x=s(81207),Z=s(40228),h=s(56028),p=s(21435),g=s(37516),j=s(64163),v=s(93656),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),A=(0,t.Z)(R,2),D=A[0],z=A[1],G=(0,l.useState)(!1),K=(0,t.Z)(G,2),I=K[0],L=K[1];(0,l.useEffect)((function(){null!==s?z(!0):(S(""),T([]))}),[s]),(0,l.useEffect)((function(){L(""!==f.trim())}),[f,w]),(0,l.useEffect)((function(){if(y){null!==s?x.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)})):x.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&&D){x.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),z(!1)}))}}),[D,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)(Z.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(93433),a=s(29439),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),x=s(61889),Z=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(Z.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)(x.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)(x.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)(x.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"})]})})})})))}}]); +//# sourceMappingURL=7413.76c38a02.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7413.76c38a02.chunk.js.map b/portal-ui/build/static/js/7413.76c38a02.chunk.js.map new file mode 100644 index 000000000..baa62900a --- /dev/null +++ b/portal-ui/build/static/js/7413.76c38a02.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7413.76c38a02.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"],"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"],"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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7413.a6fe6f9f.chunk.js.map b/portal-ui/build/static/js/7413.a6fe6f9f.chunk.js.map deleted file mode 100644 index 207aa213a..000000000 --- a/portal-ui/build/static/js/7413.a6fe6f9f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7413.a6fe6f9f.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/7585.2a9cb3d4.chunk.js b/portal-ui/build/static/js/7585.2a9cb3d4.chunk.js deleted file mode 100644 index f94fb80d3..000000000 --- a/portal-ui/build/static/js/7585.2a9cb3d4.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7585],{84669:function(e,n,t){t(72791);var a=t(91523),o=t(11135),i=t(25787),r=t(93656),l=t(64554),s=t(80184);n.Z=(0,i.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,i=e.className,c=e.executeOnClick;return(0,s.jsx)(l.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(a.rU,{to:n,className:"".concat(o.link," ").concat(i||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:o.iconBox,children:[(0,s.jsx)("div",{className:o.icon,children:(0,s.jsx)(r.xN,{})}),(0,s.jsx)("div",{className:o.label,children:t})]})})})}))},85531:function(e,n,t){var a=t(1413),o=t(4942),i=t(45987),r=(t(72791),t(11135)),l=t(25787),s=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,l.Z)((function(e){return(0,r.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,r=e.variant,l=void 0===r?"outlined":r,p=e.tooltip,h=(0,i.Z)(e,m),f=(0,u.jsx)(s.Z,(0,a.Z)((0,a.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===l)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:f})}):f}))},75578:function(e,n,t){var a=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,a.Z)({},t))})}return t}},74794:function(e,n,t){var a=t(1413),o=(t(72791),t(61889)),i=t(11135),r=t(25787),l=t(23814),s=t(80184);n.Z=(0,r.Z)((function(e){return(0,i.Z)((0,a.Z)({},l.Bw))}))((function(e){var n=e.classes,t=e.className,a=void 0===t?"":t,i=e.children;return(0,s.jsx)("div",{className:n.contentSpacer,children:(0,s.jsx)(o.ZP,{container:!0,children:(0,s.jsx)(o.ZP,{item:!0,xs:12,className:a,children:i})})})}))},32291:function(e,n,t){var a=t(72791),o=t(60364),i=t(61889),r=t(11135),l=t(25787),s=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(93656),h=t(80184),f={toggleList:m.kQ},g=(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=g((0,l.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,o=e.actions,r=e.sidebarOpen,l=e.operatorMode,m=e.managerObjects,f=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(a.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:g?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!r&&(0,h.jsx)("div",{className:n.logo,children:l?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(s.Z,{variant:"h4",className:n.labelStyle,children:t})]}),g&&(0,h.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?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,{})})]})]})})))},14917:function(e,n,t){t(72791);var a=t(61889),o=t(11135),i=t(25787),r=t(80184);n.Z=(0,i.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,i=e.subTitle,l=e.actions,s=e.className;return(0,r.jsx)(a.ZP,{container:!0,children:(0,r.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(s||""),children:[(0,r.jsxs)("div",{className:n.leftItems,children:[t?(0,r.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,r.jsxs)("div",{className:n.titleColumn,children:[(0,r.jsx)("h1",{style:{margin:0},children:o}),(0,r.jsx)("span",{className:n.headerBarSubheader,children:i})]})]}),(0,r.jsx)("div",{className:n.rightItems,children:l})]})})}))},14662:function(e,n,t){t.d(n,{Z:function(){return I}});var a=t(1413),o=t(29439),i=t(72791),r=t(64554),l=t(43896),s=t(80184),c=i.createContext(null);function d(e){var n=e.children,t=e.value,a=function(){var e=i.useState(null),n=(0,o.Z)(e,2),t=n[0],a=n[1];return i.useEffect((function(){a("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),r=i.useMemo((function(){return{idPrefix:a,value:t}}),[a,t]);return(0,s.jsx)(c.Provider,{value:r,children:n})}function u(){return i.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),f=t(63366),g=t(18073),x=["children"],b=i.forwardRef((function(e,n){var t=e.children,a=(0,f.Z)(e,x),o=u();if(null===o)throw new TypeError("No TabContext provided");var r=i.Children.map(t,(function(e){return i.isValidElement(e)?i.cloneElement(e,{"aria-controls":m(o,e.props.value),id:p(o,e.props.value)}):null}));return(0,s.jsx)(g.Z,(0,h.Z)({},a,{ref:n,value:o.value,children:r}))})),v=t(28182),j=t(47630),Z=t(93736),A=t(90767),N=t(95159);function E(e){return(0,N.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var y=["children","className","value"],T=(0,j.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),C=i.forwardRef((function(e,n){var t=(0,Z.Z)({props:e,name:"MuiTabPanel"}),a=t.children,o=t.className,i=t.value,r=(0,f.Z)(t,y),l=(0,h.Z)({},t),c=function(e){var n=e.classes;return(0,A.Z)({root:["root"]},E,n)}(l),d=u();if(null===d)throw new TypeError("No TabContext provided");var g=m(d,i),x=p(d,i);return(0,s.jsx)(T,(0,h.Z)({"aria-labelledby":x,className:(0,v.Z)(c.root,o),hidden:i!==d.value,id:g,ref:n,role:"tabpanel",ownerState:l},r,{children:i===d.value&&a}))})),S=t(25787),P=t(13967),M=t(11135),w=t(95193),_={minHeight:60},I=(0,S.Z)((function(e){return(0,M.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=i.useState(u),f=(0,o.Z)(h,2),g=f[0],x=f[1],v=(0,P.Z)(),j=(0,w.Z)(v.breakpoints.down("md")),Z=[],A=[];return n?(n.forEach((function(e){Z.push(e.tabConfig),A.push(e.content)})),(0,s.jsx)(d,{value:"".concat(g),children:(0,s.jsxs)(r.Z,{className:t.tabsContainer,children:[(0,s.jsx)(r.Z,{className:t.tabsHeaderContainer,children:(0,s.jsx)(b,{onChange:function(e,n){x(n)},orientation:j?"horizontal":"vertical",variant:j?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:Z.map((function(e,n){return e?(0,s.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:t.tabHeader,value:"".concat(n),style:_},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,s.jsxs)(r.Z,{className:t.tabContentContainer,children:[p?null:A.map((function(e,n){return(0,s.jsx)(C,{classes:(0,a.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,s.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},77585:function(e,n,t){t.r(n);var a=t(37762),o=t(29439),i=t(1413),r=t(72791),l=t(60364),s=t(79271),c=t(91523),d=t(11135),u=t(25787),m=t(26181),p=t.n(m),h=t(61889),f=t(42649),g=t(75460),x=t(23814),b=t(81207),v=t(32291),j=t(93656),Z=t(45248),A=t(14917),N=t(33548),E=t(28789),y=t(88449),T=t(74794),C=t(84669),S=t(14662),P=t(85531),M=t(75578),w=t(56087),_=t(80184),I=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5609),t.e(8138)]).then(t.bind(t,82859))}))),B=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(8183)]).then(t.bind(t,18183))}))),R=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(2426),t.e(6431),t.e(9145)]).then(t.bind(t,59145))}))),k=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(5171),t.e(8735),t.e(2983),t.e(8822)]).then(t.bind(t,18822))}))),z=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5171),t.e(2442),t.e(3096),t.e(2983),t.e(7331)]).then(t.bind(t,27331))}))),L=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5171),t.e(2442),t.e(2983),t.e(5662),t.e(9605)]).then(t.bind(t,69605))}))),O=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3801),t.e(426)]).then(t.bind(t,426))}))),W=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(5171),t.e(2983),t.e(2878)]).then(t.bind(t,55521))}))),F=(0,M.Z)(r.lazy((function(){return t.e(8495).then(t.bind(t,48495))}))),D=(0,M.Z)(r.lazy((function(){return t.e(4934).then(t.bind(t,74934))}))),U=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3801),t.e(3518)]).then(t.bind(t,83518))}))),H=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(2426),t.e(1918),t.e(6431),t.e(7315),t.e(2684)]).then(t.bind(t,12684))}))),V=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(1520),t.e(2426),t.e(1918),t.e(6431),t.e(7315),t.e(6683)]).then(t.bind(t,76683))}))),G=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(8350)]).then(t.bind(t,78350))}))),Y=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(5171),t.e(3801),t.e(2676)]).then(t.bind(t,92676))}))),$=(0,M.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5171),t.e(2442),t.e(2983),t.e(5662),t.e(9449)]).then(t.bind(t,99449))}))),J=(0,l.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,selectedNamespace:e.tenants.tenantDetails.currentNamespace,tenantInfo:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:f.Ih,setSnackBarMessage:f.y1,setTenantDetailsLoad:g.V2,setTenantName:g.V7,setTenantInfo:g.fe});n.default=(0,u.Z)((function(e){return(0,d.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},x.oZ),{},{pageContainer:{border:"1px solid #EAEAEA",width:"100%",height:"100%"},contentSpacer:(0,i.Z)((0,i.Z)({},x.Bw.contentSpacer),{},{minHeight:400}),redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16}},greyState:{color:"grey","& .min-icon":{width:16,height:16}},healthStatusIcon:{position:"relative",fontSize:10,left:26,height:10,top:4}},(0,x.Bz)(e.spacing(4))),{},{tenantActionButton:{"& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}},"& .min-icon":{width:12,marginLeft:5,"@media (max-width: 900px)":{width:16,marginLeft:0}}},deleteBtn:{color:"#f44336",border:"1px solid rgba(244, 67, 54, 0.5)"}}))}))(J((function(e){var n=e.classes,t=e.match,i=e.history,l=e.loadingTenant,d=e.selectedTenant,u=e.tenantInfo,m=e.selectedNamespace,f=e.setErrorSnackMessage,g=e.setSnackBarMessage,x=e.setTenantDetailsLoad,M=e.setTenantName,J=e.setTenantInfo,Q=(0,r.useState)(!1),X=(0,o.Z)(Q,2),q=X[0],K=X[1],ee=t.params.tenantName,ne=t.params.tenantNamespace,te=(0,r.useState)(!1),ae=(0,o.Z)(te,2),oe=ae[0],ie=ae[1];(0,r.useEffect)((function(){l||ee===d&&ne===m||(M(ee,ne),x(!0))}),[l,d,m,x,J,M,ee,ne]),(0,r.useEffect)((function(){l&&b.Z.invoke("GET","/api/v1/namespaces/".concat(ne,"/tenants/").concat(ee)).then((function(e){var n,t=e.pools?e.pools:[],o=0,i=0,r=0,l=(0,a.Z)(t);try{for(l.s();!(n=l.n()).done;){var s=n.value,c=s.volumes_per_server*s.servers*s.volume_configuration.size;s.label="pool-".concat(r),void 0!==s.name&&""!==s.name||(s.name=s.label),s.capacity=(0,Z.ae)(c+""),s.volumes=s.servers*s.volumes_per_server,o+=s.servers,i+=s.volumes,r+=1}}catch(d){l.e(d)}finally{l.f()}e.total_instances=o,e.total_volumes=i,J(e),x(!1)})).catch((function(e){f(e),x(!1)}))}),[l,ne,ee,J,x,f]);var re=p()(t,"path","/").split("/"),le=re[re.length-1]||"summary";":podName"!==le&&"pods"!==le||(le="pods");var se=(0,r.useState)(le),ce=(0,o.Z)(se,2),de=ce[0],ue=ce[1];(0,r.useEffect)((function(){ue(le)}),[le]);var me,pe=function(e){return"/namespaces/".concat(ne,"/tenants/").concat(ee,"/").concat(e)};return(0,_.jsxs)(r.Fragment,{children:[q&&(0,_.jsx)(I,{open:q,closeModalAndRefresh:function(){K(!1),x(!0)},tenant:ee,namespace:ne}),oe&&null!==u&&(0,_.jsx)(G,{deleteOpen:oe,selectedTenant:u,closeDeleteModalAndRefresh:function(e){ie(!1),e&&(g("Tenant Deleted"),i.push("/tenants"))}}),(0,_.jsx)(v.Z,{label:(0,_.jsx)(r.Fragment,{children:(0,_.jsx)(C.Z,{to:w.gA.TENANTS,label:"Tenants"})}),actions:(0,_.jsx)(r.Fragment,{})}),(0,_.jsxs)(T.Z,{className:n.pageContainer,children:[(0,_.jsx)(h.ZP,{item:!0,xs:12,children:(0,_.jsx)(A.Z,{icon:(0,_.jsxs)(r.Fragment,{children:[(0,_.jsx)("div",{className:n.healthStatusIcon,children:u&&u.status&&(0,_.jsx)("span",{className:(me=u.status.health_status,"red"===me?n.redState:"yellow"===me?n.yellowState:"green"===me?n.greenState:n.greyState),children:(0,_.jsx)(j.J$,{})})}),(0,_.jsx)(y.Z,{})]}),title:t.params.tenantName,subTitle:(0,_.jsxs)(r.Fragment,{children:["Namespace: ",ne," / Capacity:"," ",(0,Z.ae)(((null===u||void 0===u?void 0:u.total_size)||0).toString(10))]}),actions:(0,_.jsxs)("div",{children:[(0,_.jsxs)(P.Z,{tooltip:"Delete",variant:"outlined","aria-label":"Delete",onClick:function(){ie(!0)},color:"secondary",classes:{root:"".concat(n.tenantActionButton," ").concat(n.deleteBtn)},size:"large",children:[(0,_.jsx)("span",{children:"Delete Tenant"})," ",(0,_.jsx)(j.XH,{})]}),(0,_.jsxs)(P.Z,{classes:{root:n.tenantActionButton},tooltip:"Edit YAML",color:"primary",variant:"outlined","aria-label":"Edit YAML",onClick:function(){K(!0)},size:"large",children:[(0,_.jsx)("span",{children:"Edit Tenant"}),(0,_.jsx)(N.Z,{})]}),(0,_.jsxs)(P.Z,{classes:{root:n.tenantActionButton},tooltip:"Refresh",color:"primary",variant:"outlined","aria-label":"Refresh List",onClick:function(){x(!0)},children:[(0,_.jsx)("span",{children:"Reload"})," ",(0,_.jsx)(E.default,{})]})]})})}),(0,_.jsxs)(S.Z,{selectedTab:de,isRouteTabs:!0,routes:(0,_.jsx)("div",{className:n.contentSpacer,children:(0,_.jsx)(s.F0,{history:i,children:(0,_.jsxs)(s.rs,{children:[(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_SUMMARY,component:B}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_METRICS,component:F}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_TRACE,component:D}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_SECURITY,component:H}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_ENCRYPTION,component:V}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_POOLS,component:k}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_PODS,component:Y}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_PODS_LIST,component:z}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_PVCS,component:U}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_VOLUMES,component:W}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_LICENSE,component:R}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_MONITORING,component:$}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_LOGGING,component:L}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT_EVENTS,component:O}),(0,_.jsx)(s.AW,{path:w.gA.NAMESPACE_TENANT,component:function(){return(0,_.jsx)(s.l_,{to:"/namespaces/".concat(ne,"/tenants/").concat(ee,"/summary")})}})]})})}),children:[{tabConfig:{label:"Summary",value:"summary",component:c.rU,to:pe("summary")}},{tabConfig:{label:"Metrics",value:"metrics",component:c.rU,to:pe("metrics")}},{tabConfig:{label:"Security",value:"security",component:c.rU,to:pe("security")}},{tabConfig:{label:"Encryption",value:"encryption",component:c.rU,to:pe("encryption")}},{tabConfig:{label:"Pools",value:"pools",component:c.rU,to:pe("pools")}},{tabConfig:{label:"Pods",value:"pods",component:c.rU,to:pe("pods")}},{tabConfig:{label:"Monitoring",value:"monitoring",component:c.rU,to:pe("monitoring")}},{tabConfig:{label:"Logging",value:"logging",component:c.rU,to:pe("logging")}},{tabConfig:{label:"Volumes",value:"volumes",component:c.rU,to:pe("volumes")}},{tabConfig:{label:"Events",value:"events",component:c.rU,to:pe("events")}},{tabConfig:{label:"License",value:"license",component:c.rU,to:pe("license")}}]})]})]})})))},45987:function(e,n,t){t.d(n,{Z:function(){return o}});var a=t(63366);function o(e,n){if(null==e)return{};var t,o,i=(0,a.Z)(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}}}]); -//# sourceMappingURL=7585.2a9cb3d4.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7585.2a9cb3d4.chunk.js.map b/portal-ui/build/static/js/7585.2a9cb3d4.chunk.js.map deleted file mode 100644 index efe09042d..000000000 --- a/portal-ui/build/static/js/7585.2a9cb3d4.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7585.2a9cb3d4.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.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/Tenants/TenantDetails/TenantDetails.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 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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\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 { setErrorSnackMessage, setSnackBarMessage } from \"../../../../actions\";\nimport {\n setTenantDetailsLoad,\n setTenantInfo,\n setTenantName,\n setTenantTab,\n} from \"../actions\";\nimport { ITenant } from \"../ListTenants/types\";\nimport {\n containerForHeader,\n pageContentStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport { CircleIcon, TrashIcon } from \"../../../../icons\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport EditIcon from \"../../../../icons/EditIcon\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport TenantsIcon from \"../../../../icons/TenantsIcon\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport BoxIconButton from \"../../Common/BoxIconButton/BoxIconButton\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\nconst TenantYAML = withSuspense(React.lazy(() => import(\"./TenantYAML\")));\nconst TenantSummary = withSuspense(React.lazy(() => import(\"./TenantSummary\")));\nconst TenantLicense = withSuspense(React.lazy(() => import(\"./TenantLicense\")));\nconst PoolsSummary = withSuspense(React.lazy(() => import(\"./PoolsSummary\")));\nconst PodsSummary = withSuspense(React.lazy(() => import(\"./PodsSummary\")));\nconst TenantLogging = withSuspense(React.lazy(() => import(\"./TenantLogging\")));\nconst TenantEvents = withSuspense(React.lazy(() => import(\"./TenantEvents\")));\nconst VolumesSummary = withSuspense(\n React.lazy(() => import(\"./VolumesSummary\"))\n);\nconst TenantMetrics = withSuspense(React.lazy(() => import(\"./TenantMetrics\")));\nconst TenantTrace = withSuspense(React.lazy(() => import(\"./TenantTrace\")));\nconst TenantVolumes = withSuspense(\n React.lazy(() => import(\"./pvcs/TenantVolumes\"))\n);\nconst TenantSecurity = withSuspense(\n React.lazy(() => import(\"./TenantSecurity\"))\n);\nconst TenantEncryption = withSuspense(\n React.lazy(() => import(\"./TenantEncryption\"))\n);\nconst DeleteTenant = withSuspense(\n React.lazy(() => import(\"../ListTenants/DeleteTenant\"))\n);\nconst PodDetails = withSuspense(React.lazy(() => import(\"./pods/PodDetails\")));\nconst TenantMonitoring = withSuspense(\n React.lazy(() => import(\"./TenantMonitoring\"))\n);\n\ninterface ITenantDetailsProps {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n currentTab: string;\n selectedTenant: string;\n tenantInfo: ITenant | null;\n selectedNamespace: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n setTenantName: typeof setTenantName;\n setTenantInfo: typeof setTenantInfo;\n setTenantTab: typeof setTenantTab;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n width: \"100%\",\n height: \"100%\",\n },\n contentSpacer: {\n ...pageContentStyles.contentSpacer,\n minHeight: 400,\n },\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n healthStatusIcon: {\n position: \"relative\",\n fontSize: 10,\n left: 26,\n height: 10,\n top: 4,\n },\n ...containerForHeader(theme.spacing(4)),\n tenantActionButton: {\n \"& span\": {\n fontSize: 14,\n \"@media (max-width: 900px)\": {\n display: \"none\",\n },\n },\n \"& .min-icon\": {\n width: 12,\n marginLeft: 5,\n\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: 0,\n },\n },\n },\n deleteBtn: {\n color: \"#f44336\",\n border: \"1px solid rgba(244, 67, 54, 0.5)\",\n },\n });\n\nconst TenantDetails = ({\n classes,\n match,\n history,\n loadingTenant,\n selectedTenant,\n tenantInfo,\n selectedNamespace,\n setErrorSnackMessage,\n setSnackBarMessage,\n setTenantDetailsLoad,\n setTenantName,\n setTenantInfo,\n}: ITenantDetailsProps) => {\n const [yamlScreenOpen, setYamlScreenOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n useEffect(() => {\n if (!loadingTenant) {\n if (\n tenantName !== selectedTenant ||\n tenantNamespace !== selectedNamespace\n ) {\n setTenantName(tenantName, tenantNamespace);\n setTenantDetailsLoad(true);\n }\n }\n }, [\n loadingTenant,\n selectedTenant,\n selectedNamespace,\n setTenantDetailsLoad,\n setTenantInfo,\n setTenantName,\n tenantName,\n tenantNamespace,\n ]);\n\n useEffect(() => {\n if (loadingTenant) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}`\n )\n .then((res: ITenant) => {\n // add computed fields\n const resPools = !res.pools ? [] : res.pools;\n\n let totalInstances = 0;\n let totalVolumes = 0;\n let poolNamedIndex = 0;\n for (let pool of resPools) {\n const cap =\n pool.volumes_per_server *\n pool.servers *\n pool.volume_configuration.size;\n pool.label = `pool-${poolNamedIndex}`;\n if (pool.name === undefined || pool.name === \"\") {\n pool.name = pool.label;\n }\n pool.capacity = niceBytes(cap + \"\");\n pool.volumes = pool.servers * pool.volumes_per_server;\n totalInstances += pool.servers;\n totalVolumes += pool.volumes;\n poolNamedIndex += 1;\n }\n res.total_instances = totalInstances;\n res.total_volumes = totalVolumes;\n\n setTenantInfo(res);\n setTenantDetailsLoad(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setTenantDetailsLoad(false);\n });\n }\n }, [\n loadingTenant,\n tenantNamespace,\n tenantName,\n setTenantInfo,\n setTenantDetailsLoad,\n setErrorSnackMessage,\n ]);\n\n const path = get(match, \"path\", \"/\");\n const splitSections = path.split(\"/\");\n\n let highlightedTab = splitSections[splitSections.length - 1] || \"summary\";\n if (highlightedTab === \":podName\" || highlightedTab === \"pods\") {\n // It has SUB Route\n highlightedTab = \"pods\";\n }\n const [activeTab, setActiveTab] = useState(highlightedTab);\n\n useEffect(() => {\n setActiveTab(highlightedTab);\n }, [highlightedTab]);\n\n const editYaml = () => {\n setYamlScreenOpen(true);\n };\n\n const closeYAMLModalAndRefresh = () => {\n setYamlScreenOpen(false);\n setTenantDetailsLoad(true);\n };\n\n const getRoutePath = (newValue: string) => {\n return `/namespaces/${tenantNamespace}/tenants/${tenantName}/${newValue}`;\n };\n\n const confirmDeleteTenant = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n\n if (reloadData) {\n setSnackBarMessage(\"Tenant Deleted\");\n history.push(`/tenants`);\n }\n };\n\n const healthStatusToClass = (health_status: string) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n };\n\n return (\n \n {yamlScreenOpen && (\n \n )}\n {deleteOpen && tenantInfo !== null && (\n \n )}\n\n \n \n \n }\n actions={}\n />\n\n \n \n \n
    \n {tenantInfo && tenantInfo.status && (\n \n \n \n )}\n
    \n \n
    \n }\n title={match.params[\"tenantName\"]}\n subTitle={\n \n Namespace: {tenantNamespace} / Capacity:{\" \"}\n {niceBytes((tenantInfo?.total_size || 0).toString(10))}\n \n }\n actions={\n
    \n {\n confirmDeleteTenant();\n }}\n color=\"secondary\"\n classes={{\n root: `${classes.tenantActionButton} ${classes.deleteBtn}`,\n }}\n size=\"large\"\n >\n Delete Tenant \n \n {\n editYaml();\n }}\n size=\"large\"\n >\n Edit Tenant\n \n \n {\n setTenantDetailsLoad(true);\n }}\n >\n Reload \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 tabConfig: {\n label: \"Summary\",\n value: \"summary\",\n component: Link,\n to: getRoutePath(\"summary\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Metrics\",\n value: \"metrics\",\n component: Link,\n to: getRoutePath(\"metrics\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Security\",\n value: \"security\",\n component: Link,\n to: getRoutePath(\"security\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Encryption\",\n value: \"encryption\",\n component: Link,\n to: getRoutePath(\"encryption\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Pools\",\n value: \"pools\",\n component: Link,\n to: getRoutePath(\"pools\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Pods\",\n value: \"pods\",\n component: Link,\n to: getRoutePath(\"pods\"),\n },\n }}\n\n {{\n tabConfig: {\n label: \"Monitoring\",\n value: \"monitoring\",\n component: Link,\n to: getRoutePath(\"monitoring\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Logging\",\n value: \"logging\",\n component: Link,\n to: getRoutePath(\"logging\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Volumes\",\n value: \"volumes\",\n component: Link,\n to: getRoutePath(\"volumes\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Events\",\n value: \"events\",\n component: Link,\n to: getRoutePath(\"events\"),\n },\n }}\n {{\n tabConfig: {\n label: \"License\",\n value: \"license\",\n component: Link,\n to: getRoutePath(\"license\"),\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 selectedNamespace: state.tenants.tenantDetails.currentNamespace,\n tenantInfo: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setSnackBarMessage,\n setTenantDetailsLoad,\n setTenantName,\n setTenantInfo,\n});\n\nexport default withStyles(styles)(connector(TenantDetails));\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","root","padding","marginLeft","borderWidth","borderColor","borderStyle","backgroundColor","main","opacity","contained","dark","children","variant","tooltip","rest","button","clsx","title","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","pageContentStyles","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","size","headerBarIcon","headerBarSubheader","maxWidth","screenTitle","borderBottom","flexFlow","titleColumn","leftItems","rightItems","subTitle","style","margin","Context","React","TabContext","value","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","content","Box","onChange","event","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","TenantYAML","withSuspense","TenantSummary","TenantLicense","PoolsSummary","PodsSummary","TenantLogging","TenantEvents","VolumesSummary","TenantMetrics","TenantTrace","TenantVolumes","TenantSecurity","TenantEncryption","DeleteTenant","PodDetails","TenantMonitoring","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","selectedNamespace","currentNamespace","tenantInfo","setErrorSnackMessage","setSnackBarMessage","setTenantDetailsLoad","setTenantName","setTenantInfo","tenantDetailsStyles","pageContainer","border","redState","error","yellowState","warning","greenState","success","greyState","healthStatusIcon","position","top","containerForHeader","tenantActionButton","deleteBtn","match","history","useState","yamlScreenOpen","setYamlScreenOpen","tenantName","params","tenantNamespace","deleteOpen","setDeleteOpen","useEffect","api","then","res","resPools","pools","totalInstances","totalVolumes","poolNamedIndex","pool","cap","volumes_per_server","servers","volume_configuration","undefined","capacity","niceBytes","volumes","total_instances","total_volumes","catch","err","splitSections","get","split","highlightedTab","activeTab","setActiveTab","health_status","getRoutePath","open","closeModalAndRefresh","tenant","namespace","closeDeleteModalAndRefresh","reloadData","IAM_PAGES","status","total_size","toString","path","Link","_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/7585.a54f7c72.chunk.js b/portal-ui/build/static/js/7585.a54f7c72.chunk.js new file mode 100644 index 000000000..4b95a8593 --- /dev/null +++ b/portal-ui/build/static/js/7585.a54f7c72.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7585],{75578:function(e,n,t){var a=t(1413),o=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)(o.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,a.Z)({},t))})}return t}},50276:function(e,n,t){var a=t(1413),o=t(29439),r=t(72791),i=t(64554),l=t(43896),s=t(83449),c=t(47283),u=t(82851),d=t(25787),p=t(13967),h=t(11135),m=t(95193),f=t(80184),A={minHeight:60};n.Z=(0,d.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,d=e.selectedTab,h=void 0===d?"0":d,b=e.routes,g=e.isRouteTabs,v=r.useState(h),x=(0,o.Z)(v,2),E=x[0],N=x[1],T=(0,p.Z)(),Z=(0,m.Z)(T.breakpoints.down("md")),j=[],C=[];return n?(n.forEach((function(e){j.push(e.tabConfig),C.push(e.content)})),(0,f.jsx)(s.ZP,{value:"".concat(E),children:(0,f.jsxs)(i.Z,{className:t.tabsContainer,children:[(0,f.jsx)(i.Z,{className:t.tabsHeaderContainer,children:(0,f.jsx)(c.Z,{onChange:function(e,n){N(n)},orientation:Z?"horizontal":"vertical",variant:Z?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,f.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:t.tabHeader,value:"".concat(n),style:A},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,f.jsxs)(i.Z,{className:t.tabContentContainer,children:[g?null:C.map((function(e,n){return(0,f.jsx)(u.Z,{classes:(0,a.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),g?(0,f.jsx)("div",{className:t.tabPanel,children:b}):null]})]})})):null}))},77585:function(e,n,t){t.r(n);var a=t(37762),o=t(29439),r=t(1413),i=t(72791),l=t(60364),s=t(79271),c=t(91523),u=t(11135),d=t(25787),p=t(26181),h=t.n(p),m=t(61889),f=t(42649),A=t(75460),b=t(23814),g=t(81207),v=t(32291),x=t(93656),E=t(45248),N=t(14917),T=t(33548),Z=t(28789),j=t(88449),C=t(74794),y=t(84669),S=t(50276),P=t(85531),M=t(75578),_=t(56087),w=t(49724),z=t(80184),R=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5609),t.e(8138)]).then(t.bind(t,82859))}))),I=(0,M.Z)(i.lazy((function(){return t.e(2794).then(t.bind(t,22794))}))),k=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(2426),t.e(6431),t.e(9145)]).then(t.bind(t,59145))}))),B=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(8735),t.e(2983),t.e(1379)]).then(t.bind(t,51379))}))),U=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(2983),t.e(1501)]).then(t.bind(t,27331))}))),W=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(2983),t.e(5026),t.e(9605)]).then(t.bind(t,69605))}))),D=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(3801),t.e(426)]).then(t.bind(t,426))}))),L=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(2983),t.e(2878)]).then(t.bind(t,55521))}))),F=(0,M.Z)(i.lazy((function(){return t.e(8495).then(t.bind(t,48495))}))),O=(0,M.Z)(i.lazy((function(){return t.e(4934).then(t.bind(t,74934))}))),Y=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(3801),t.e(3518)]).then(t.bind(t,83518))}))),V=(0,M.Z)(i.lazy((function(){return t.e(7021).then(t.bind(t,37021))}))),H=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(2426),t.e(1918),t.e(6431),t.e(8396),t.e(2684)]).then(t.bind(t,12684))}))),G=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(2426),t.e(1918),t.e(6431),t.e(8396),t.e(6683)]).then(t.bind(t,76683))}))),Q=(0,M.Z)(i.lazy((function(){return t.e(8350).then(t.bind(t,78350))}))),$=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(3801),t.e(2676)]).then(t.bind(t,92676))}))),J=(0,M.Z)(i.lazy((function(){return Promise.all([t.e(5171),t.e(2983),t.e(5026),t.e(9449)]).then(t.bind(t,99449))}))),X=(0,l.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,selectedNamespace:e.tenants.tenantDetails.currentNamespace,tenantInfo:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:f.Ih,setSnackBarMessage:f.y1,setTenantDetailsLoad:A.V2,setTenantName:A.V7,setTenantInfo:A.fe});n.default=(0,d.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},b.oZ),{},{pageContainer:{border:"1px solid #EAEAEA",width:"100%",height:"100%"},contentSpacer:(0,r.Z)((0,r.Z)({},b.Bw.contentSpacer),{},{minHeight:400}),redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16}},greyState:{color:"grey","& .min-icon":{width:16,height:16}},healthStatusIcon:{position:"relative",fontSize:10,left:26,height:10,top:4}},(0,b.Bz)(e.spacing(4))),{},{tenantActionButton:{"& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}},"& .min-icon":{width:12,marginLeft:5,"@media (max-width: 900px)":{width:16,marginLeft:0}}},deleteBtn:{color:"#f44336",border:"1px solid rgba(244, 67, 54, 0.5)"}}))}))(X((function(e){var n=e.classes,t=e.match,r=e.history,l=e.loadingTenant,u=e.selectedTenant,d=e.tenantInfo,p=e.selectedNamespace,f=e.setErrorSnackMessage,A=e.setSnackBarMessage,b=e.setTenantDetailsLoad,M=e.setTenantName,X=e.setTenantInfo,q=(0,i.useState)(!1),K=(0,o.Z)(q,2),ee=K[0],ne=K[1],te=t.params.tenantName,ae=t.params.tenantNamespace,oe=(0,i.useState)(!1),re=(0,o.Z)(oe,2),ie=re[0],le=re[1];(0,i.useEffect)((function(){l||te===u&&ae===p||(M(te,ae),b(!0))}),[l,u,p,b,X,M,te,ae]),(0,i.useEffect)((function(){l&&g.Z.invoke("GET","/api/v1/namespaces/".concat(ae,"/tenants/").concat(te)).then((function(e){var n,t=e.pools?e.pools:[],o=0,r=0,i=0,l=(0,a.Z)(t);try{for(l.s();!(n=l.n()).done;){var s=n.value,c=s.volumes_per_server*s.servers*s.volume_configuration.size;s.label="pool-".concat(i),void 0!==s.name&&""!==s.name||(s.name=s.label),s.capacity=(0,E.ae)(c+""),s.volumes=s.servers*s.volumes_per_server,o+=s.servers,r+=s.volumes,i+=1}}catch(u){l.e(u)}finally{l.f()}e.total_instances=o,e.total_volumes=r,X(e),b(!1)})).catch((function(e){f(e),b(!1)}))}),[l,ae,te,X,b,f]);var se=h()(t,"path","/").split("/"),ce=se[se.length-1]||"summary";":podName"!==ce&&"pods"!==ce||(ce="pods");var ue=(0,i.useState)(ce),de=(0,o.Z)(ue,2),pe=de[0],he=de[1];(0,i.useEffect)((function(){he(ce)}),[ce]);var me,fe=function(e){return"/namespaces/".concat(ae,"/tenants/").concat(te,"/").concat(e)};return(0,z.jsxs)(i.Fragment,{children:[ee&&(0,z.jsx)(R,{open:ee,closeModalAndRefresh:function(){ne(!1),b(!0)},tenant:te,namespace:ae}),ie&&null!==d&&(0,z.jsx)(Q,{deleteOpen:ie,selectedTenant:d,closeDeleteModalAndRefresh:function(e){le(!1),e&&(A("Tenant Deleted"),r.push("/tenants"))}}),(0,z.jsx)(v.Z,{label:(0,z.jsx)(i.Fragment,{children:(0,z.jsx)(y.Z,{to:_.gA.TENANTS,label:"Tenants"})}),actions:(0,z.jsx)(i.Fragment,{})}),(0,z.jsxs)(C.Z,{className:n.pageContainer,children:[(0,z.jsx)(m.ZP,{item:!0,xs:12,children:(0,z.jsx)(N.Z,{icon:(0,z.jsxs)(i.Fragment,{children:[(0,z.jsx)("div",{className:n.healthStatusIcon,children:d&&d.status&&(0,z.jsx)("span",{className:(me=d.status.health_status,"red"===me?n.redState:"yellow"===me?n.yellowState:"green"===me?n.greenState:n.greyState),children:(0,z.jsx)(x.J$,{})})}),(0,z.jsx)(j.Z,{})]}),title:t.params.tenantName,subTitle:(0,z.jsxs)(i.Fragment,{children:["Namespace: ",ae," / Capacity:"," ",(0,E.ae)(((null===d||void 0===d?void 0:d.total_size)||0).toString(10))]}),actions:(0,z.jsxs)("div",{children:[(0,z.jsxs)(P.Z,{tooltip:"Delete",variant:"outlined","aria-label":"Delete",onClick:function(){le(!0)},color:"secondary",classes:{root:"".concat(n.tenantActionButton," ").concat(n.deleteBtn)},size:"large",children:[(0,z.jsx)("span",{children:"Delete"})," ",(0,z.jsx)(x.XH,{})]}),(0,z.jsxs)(P.Z,{classes:{root:n.tenantActionButton},tooltip:"Edit YAML",color:"primary",variant:"outlined","aria-label":"Edit YAML",onClick:function(){ne(!0)},size:"large",children:[(0,z.jsx)("span",{children:"YAML"}),(0,z.jsx)(T.Z,{})]}),(0,z.jsxs)(P.Z,{classes:{root:n.tenantActionButton},tooltip:"Management Console",onClick:function(){r.push("/namespaces/".concat(ae,"/tenants/").concat(te,"/hop"))},disabled:!d||!(0,w.Yk)(d),variant:"outlined",color:"primary",children:[(0,z.jsx)("span",{children:"Console"})," ",(0,z.jsx)(x.YE,{style:{height:16}})]}),(0,z.jsxs)(P.Z,{classes:{root:n.tenantActionButton},tooltip:"Refresh",color:"primary",variant:"outlined","aria-label":"Refresh List",onClick:function(){b(!0)},children:[(0,z.jsx)("span",{children:"Refresh"})," ",(0,z.jsx)(Z.default,{})]})]})})}),(0,z.jsxs)(S.Z,{selectedTab:pe,isRouteTabs:!0,routes:(0,z.jsx)("div",{className:n.contentSpacer,children:(0,z.jsx)(s.F0,{history:r,children:(0,z.jsxs)(s.rs,{children:[(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_SUMMARY,component:I}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_METRICS,component:F}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_TRACE,component:O}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_IDENTITY_PROVIDER,component:V}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_SECURITY,component:H}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_ENCRYPTION,component:G}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_POOLS,component:B}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_PODS,component:$}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_PODS_LIST,component:U}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_PVCS,component:Y}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_VOLUMES,component:L}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_LICENSE,component:k}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_MONITORING,component:J}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_LOGGING,component:W}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT_EVENTS,component:D}),(0,z.jsx)(s.AW,{path:_.gA.NAMESPACE_TENANT,component:function(){return(0,z.jsx)(s.l_,{to:"/namespaces/".concat(ae,"/tenants/").concat(te,"/summary")})}})]})})}),children:[{tabConfig:{label:"Summary",value:"summary",component:c.rU,to:fe("summary")}},{tabConfig:{label:"Metrics",value:"metrics",component:c.rU,to:fe("metrics")}},{tabConfig:{label:"Identity Provider",value:"identity-provider",component:c.rU,to:fe("identity-provider")}},{tabConfig:{label:"Security",value:"security",component:c.rU,to:fe("security")}},{tabConfig:{label:"Encryption",value:"encryption",component:c.rU,to:fe("encryption")}},{tabConfig:{label:"Pools",value:"pools",component:c.rU,to:fe("pools")}},{tabConfig:{label:"Pods",value:"pods",component:c.rU,to:fe("pods")}},{tabConfig:{label:"Monitoring",value:"monitoring",component:c.rU,to:fe("monitoring")}},{tabConfig:{label:"Logging",value:"logging",component:c.rU,to:fe("logging")}},{tabConfig:{label:"Volumes",value:"volumes",component:c.rU,to:fe("volumes")}},{tabConfig:{label:"Events",value:"events",component:c.rU,to:fe("events")}},{tabConfig:{label:"License",value:"license",component:c.rU,to:fe("license")}}]})]})]})})))},83449:function(e,n,t){t.d(n,{ZP:function(){return l},_i:function(){return s},pQ:function(){return u},uU:function(){return c}});var a=t(29439),o=t(72791),r=t(80184),i=o.createContext(null);function l(e){var n=e.children,t=e.value,l=function(){var e=o.useState(null),n=(0,a.Z)(e,2),t=n[0],r=n[1];return o.useEffect((function(){r("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),s=o.useMemo((function(){return{idPrefix:l,value:t}}),[l,t]);return(0,r.jsx)(i.Provider,{value:s,children:n})}function s(){return o.useContext(i)}function c(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function u(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){var a=t(87462),o=t(63366),r=t(72791),i=t(18073),l=t(83449),s=t(80184),c=["children"],u=r.forwardRef((function(e,n){var t=e.children,u=(0,o.Z)(e,c),d=(0,l._i)();if(null===d)throw new TypeError("No TabContext provided");var p=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":(0,l.uU)(d,e.props.value),id:(0,l.pQ)(d,e.props.value)}):null}));return(0,s.jsx)(i.Z,(0,a.Z)({},u,{ref:n,value:d.value,children:p}))}));n.Z=u},82851:function(e,n,t){t.d(n,{Z:function(){return A}});var a=t(87462),o=t(63366),r=t(72791),i=t(28182),l=t(47630),s=t(93736),c=t(90767),u=t(95159);function d(e){return(0,u.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var p=t(83449),h=t(80184),m=["children","className","value"],f=(0,l.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),A=r.forwardRef((function(e,n){var t=(0,s.Z)({props:e,name:"MuiTabPanel"}),r=t.children,l=t.className,u=t.value,A=(0,o.Z)(t,m),b=(0,a.Z)({},t),g=function(e){var n=e.classes;return(0,c.Z)({root:["root"]},d,n)}(b),v=(0,p._i)();if(null===v)throw new TypeError("No TabContext provided");var x=(0,p.uU)(v,u),E=(0,p.pQ)(v,u);return(0,h.jsx)(f,(0,a.Z)({"aria-labelledby":E,className:(0,i.Z)(g.root,l),hidden:u!==v.value,id:x,ref:n,role:"tabpanel",ownerState:b},A,{children:u===v.value&&r}))}))}}]); +//# sourceMappingURL=7585.a54f7c72.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7585.a54f7c72.chunk.js.map b/portal-ui/build/static/js/7585.a54f7c72.chunk.js.map new file mode 100644 index 000000000..a93bf72e4 --- /dev/null +++ b/portal-ui/build/static/js/7585.a54f7c72.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7585.a54f7c72.chunk.js","mappings":"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","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Tenants/TenantDetails/TenantDetails.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"],"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, { 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 { 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, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\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 { setErrorSnackMessage, setSnackBarMessage } from \"../../../../actions\";\nimport {\n setTenantDetailsLoad,\n setTenantInfo,\n setTenantName,\n setTenantTab,\n} from \"../actions\";\nimport { ITenant } from \"../ListTenants/types\";\nimport {\n containerForHeader,\n pageContentStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport { CircleIcon, MinIOTierIconXs, TrashIcon } from \"../../../../icons\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport EditIcon from \"../../../../icons/EditIcon\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport TenantsIcon from \"../../../../icons/TenantsIcon\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport BoxIconButton from \"../../Common/BoxIconButton/BoxIconButton\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport { tenantIsOnline } from \"../ListTenants/utils\";\n\nconst TenantYAML = withSuspense(React.lazy(() => import(\"./TenantYAML\")));\nconst TenantSummary = withSuspense(React.lazy(() => import(\"./TenantSummary\")));\nconst TenantLicense = withSuspense(React.lazy(() => import(\"./TenantLicense\")));\nconst PoolsSummary = withSuspense(React.lazy(() => import(\"./PoolsSummary\")));\nconst PodsSummary = withSuspense(React.lazy(() => import(\"./PodsSummary\")));\nconst TenantLogging = withSuspense(React.lazy(() => import(\"./TenantLogging\")));\nconst TenantEvents = withSuspense(React.lazy(() => import(\"./TenantEvents\")));\nconst VolumesSummary = withSuspense(\n React.lazy(() => import(\"./VolumesSummary\"))\n);\nconst TenantMetrics = withSuspense(React.lazy(() => import(\"./TenantMetrics\")));\nconst TenantTrace = withSuspense(React.lazy(() => import(\"./TenantTrace\")));\nconst TenantVolumes = withSuspense(\n React.lazy(() => import(\"./pvcs/TenantVolumes\"))\n);\nconst TenantIdentityProvider = withSuspense(\n React.lazy(() => import(\"./TenantIdentityProvider\"))\n);\nconst TenantSecurity = withSuspense(\n React.lazy(() => import(\"./TenantSecurity\"))\n);\nconst TenantEncryption = withSuspense(\n React.lazy(() => import(\"./TenantEncryption\"))\n);\nconst DeleteTenant = withSuspense(\n React.lazy(() => import(\"../ListTenants/DeleteTenant\"))\n);\nconst PodDetails = withSuspense(React.lazy(() => import(\"./pods/PodDetails\")));\nconst TenantMonitoring = withSuspense(\n React.lazy(() => import(\"./TenantMonitoring\"))\n);\n\ninterface ITenantDetailsProps {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n currentTab: string;\n selectedTenant: string;\n tenantInfo: ITenant | null;\n selectedNamespace: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n setTenantName: typeof setTenantName;\n setTenantInfo: typeof setTenantInfo;\n setTenantTab: typeof setTenantTab;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n width: \"100%\",\n height: \"100%\",\n },\n contentSpacer: {\n ...pageContentStyles.contentSpacer,\n minHeight: 400,\n },\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n healthStatusIcon: {\n position: \"relative\",\n fontSize: 10,\n left: 26,\n height: 10,\n top: 4,\n },\n ...containerForHeader(theme.spacing(4)),\n tenantActionButton: {\n \"& span\": {\n fontSize: 14,\n \"@media (max-width: 900px)\": {\n display: \"none\",\n },\n },\n \"& .min-icon\": {\n width: 12,\n marginLeft: 5,\n\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: 0,\n },\n },\n },\n deleteBtn: {\n color: \"#f44336\",\n border: \"1px solid rgba(244, 67, 54, 0.5)\",\n },\n });\n\nconst TenantDetails = ({\n classes,\n match,\n history,\n loadingTenant,\n selectedTenant,\n tenantInfo,\n selectedNamespace,\n setErrorSnackMessage,\n setSnackBarMessage,\n setTenantDetailsLoad,\n setTenantName,\n setTenantInfo,\n}: ITenantDetailsProps) => {\n const [yamlScreenOpen, setYamlScreenOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n useEffect(() => {\n if (!loadingTenant) {\n if (\n tenantName !== selectedTenant ||\n tenantNamespace !== selectedNamespace\n ) {\n setTenantName(tenantName, tenantNamespace);\n setTenantDetailsLoad(true);\n }\n }\n }, [\n loadingTenant,\n selectedTenant,\n selectedNamespace,\n setTenantDetailsLoad,\n setTenantInfo,\n setTenantName,\n tenantName,\n tenantNamespace,\n ]);\n\n useEffect(() => {\n if (loadingTenant) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}`\n )\n .then((res: ITenant) => {\n // add computed fields\n const resPools = !res.pools ? [] : res.pools;\n\n let totalInstances = 0;\n let totalVolumes = 0;\n let poolNamedIndex = 0;\n for (let pool of resPools) {\n const cap =\n pool.volumes_per_server *\n pool.servers *\n pool.volume_configuration.size;\n pool.label = `pool-${poolNamedIndex}`;\n if (pool.name === undefined || pool.name === \"\") {\n pool.name = pool.label;\n }\n pool.capacity = niceBytes(cap + \"\");\n pool.volumes = pool.servers * pool.volumes_per_server;\n totalInstances += pool.servers;\n totalVolumes += pool.volumes;\n poolNamedIndex += 1;\n }\n res.total_instances = totalInstances;\n res.total_volumes = totalVolumes;\n\n setTenantInfo(res);\n setTenantDetailsLoad(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setTenantDetailsLoad(false);\n });\n }\n }, [\n loadingTenant,\n tenantNamespace,\n tenantName,\n setTenantInfo,\n setTenantDetailsLoad,\n setErrorSnackMessage,\n ]);\n\n const path = get(match, \"path\", \"/\");\n const splitSections = path.split(\"/\");\n\n let highlightedTab = splitSections[splitSections.length - 1] || \"summary\";\n if (highlightedTab === \":podName\" || highlightedTab === \"pods\") {\n // It has SUB Route\n highlightedTab = \"pods\";\n }\n const [activeTab, setActiveTab] = useState(highlightedTab);\n\n useEffect(() => {\n setActiveTab(highlightedTab);\n }, [highlightedTab]);\n\n const editYaml = () => {\n setYamlScreenOpen(true);\n };\n\n const closeYAMLModalAndRefresh = () => {\n setYamlScreenOpen(false);\n setTenantDetailsLoad(true);\n };\n\n const getRoutePath = (newValue: string) => {\n return `/namespaces/${tenantNamespace}/tenants/${tenantName}/${newValue}`;\n };\n\n const confirmDeleteTenant = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n\n if (reloadData) {\n setSnackBarMessage(\"Tenant Deleted\");\n history.push(`/tenants`);\n }\n };\n\n const healthStatusToClass = (health_status: string) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n };\n\n return (\n \n {yamlScreenOpen && (\n \n )}\n {deleteOpen && tenantInfo !== null && (\n \n )}\n\n \n \n \n }\n actions={}\n />\n\n \n \n \n
    \n {tenantInfo && tenantInfo.status && (\n \n \n \n )}\n
    \n \n \n }\n title={match.params[\"tenantName\"]}\n subTitle={\n \n Namespace: {tenantNamespace} / Capacity:{\" \"}\n {niceBytes((tenantInfo?.total_size || 0).toString(10))}\n \n }\n actions={\n
    \n {\n confirmDeleteTenant();\n }}\n color=\"secondary\"\n classes={{\n root: `${classes.tenantActionButton} ${classes.deleteBtn}`,\n }}\n size=\"large\"\n >\n Delete \n \n {\n editYaml();\n }}\n size=\"large\"\n >\n YAML\n \n \n {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/hop`\n );\n }}\n disabled={!tenantInfo || !tenantIsOnline(tenantInfo)}\n variant={\"outlined\"}\n color=\"primary\"\n >\n Console{\" \"}\n \n \n {\n setTenantDetailsLoad(true);\n }}\n >\n Refresh \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 tabConfig: {\n label: \"Summary\",\n value: \"summary\",\n component: Link,\n to: getRoutePath(\"summary\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Metrics\",\n value: \"metrics\",\n component: Link,\n to: getRoutePath(\"metrics\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Identity Provider\",\n value: \"identity-provider\",\n component: Link,\n to: getRoutePath(\"identity-provider\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Security\",\n value: \"security\",\n component: Link,\n to: getRoutePath(\"security\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Encryption\",\n value: \"encryption\",\n component: Link,\n to: getRoutePath(\"encryption\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Pools\",\n value: \"pools\",\n component: Link,\n to: getRoutePath(\"pools\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Pods\",\n value: \"pods\",\n component: Link,\n to: getRoutePath(\"pods\"),\n },\n }}\n\n {{\n tabConfig: {\n label: \"Monitoring\",\n value: \"monitoring\",\n component: Link,\n to: getRoutePath(\"monitoring\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Logging\",\n value: \"logging\",\n component: Link,\n to: getRoutePath(\"logging\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Volumes\",\n value: \"volumes\",\n component: Link,\n to: getRoutePath(\"volumes\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Events\",\n value: \"events\",\n component: Link,\n to: getRoutePath(\"events\"),\n },\n }}\n {{\n tabConfig: {\n label: \"License\",\n value: \"license\",\n component: Link,\n to: getRoutePath(\"license\"),\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 selectedNamespace: state.tenants.tenantDetails.currentNamespace,\n tenantInfo: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setSnackBarMessage,\n setTenantDetailsLoad,\n setTenantName,\n setTenantInfo,\n});\n\nexport default withStyles(styles)(connector(TenantDetails));\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;"],"names":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","tabStripStyle","minHeight","withStyles","theme","createStyles","tabsContainer","display","height","width","tabsHeaderContainer","background","borderRight","flexFlow","alignItems","justifyContent","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","children","classes","selectedTab","routes","isRouteTabs","React","value","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","className","onChange","event","newValue","orientation","variant","scrollButtons","tabList","map","item","index","tabHeader","style","disableRipple","disableTouchRipple","focusRipple","TenantYAML","withSuspense","TenantSummary","TenantLicense","PoolsSummary","PodsSummary","TenantLogging","TenantEvents","VolumesSummary","TenantMetrics","TenantTrace","TenantVolumes","TenantIdentityProvider","TenantSecurity","TenantEncryption","DeleteTenant","PodDetails","TenantMonitoring","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","selectedNamespace","currentNamespace","tenantInfo","setErrorSnackMessage","setSnackBarMessage","setTenantDetailsLoad","setTenantName","setTenantInfo","tenantDetailsStyles","pageContainer","border","contentSpacer","pageContentStyles","redState","color","palette","error","main","yellowState","warning","greenState","success","greyState","healthStatusIcon","position","fontSize","left","top","containerForHeader","spacing","tenantActionButton","marginLeft","deleteBtn","match","history","useState","yamlScreenOpen","setYamlScreenOpen","tenantName","params","tenantNamespace","deleteOpen","setDeleteOpen","useEffect","api","then","res","resPools","pools","totalInstances","totalVolumes","poolNamedIndex","pool","cap","volumes_per_server","servers","volume_configuration","size","label","undefined","name","capacity","niceBytes","volumes","total_instances","total_volumes","catch","err","splitSections","get","split","highlightedTab","length","activeTab","setActiveTab","health_status","getRoutePath","Fragment","open","closeModalAndRefresh","tenant","namespace","closeDeleteModalAndRefresh","reloadData","to","IAM_PAGES","actions","xs","icon","status","title","subTitle","total_size","toString","tooltip","onClick","root","disabled","tenantIsOnline","path","component","Link","Context","TabContext","idPrefix","id","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","padding","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7659.5504cc60.chunk.js b/portal-ui/build/static/js/7659.5504cc60.chunk.js deleted file mode 100644 index e1cfeeff0..000000000 --- a/portal-ui/build/static/js/7659.5504cc60.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7659,9478],{57314:function(e,n,t){"use strict";var i=t(1413),o=t(72791),r=t(61889),a=t(30829),s=t(20068),l=t(27391),c=t(11135),u=t(25787),d=t(23814),f=t(84570),p=t(80184);n.Z=(0,u.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},d.YI),d.Hr),{},{inputLabel:(0,i.Z)((0,i.Z)({},d.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,i.Z)((0,i.Z)({},d.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var n=e.label,t=e.onChange,i=e.value,c=e.id,u=e.name,d=e.disabled,m=void 0!==d&&d,h=e.tooltip,x=void 0===h?"":h,v=e.index,Z=void 0===v?0:v,g=e.error,j=void 0===g?"":g,b=e.required,C=void 0!==b&&b,y=e.placeholder,N=void 0===y?"":y,k=e.classes,w={"data-index":Z};return(0,p.jsx)(o.Fragment,{children:(0,p.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(k.fieldContainer," ").concat(""!==j?k.errorInField:""),children:[""!==n&&(0,p.jsxs)(a.Z,{htmlFor:c,className:k.inputLabel,children:[(0,p.jsxs)("span",{children:[n,C?"*":""]}),""!==x&&(0,p.jsx)("div",{className:k.tooltipContainer,children:(0,p.jsx)(s.Z,{title:x,placement:"top-start",children:(0,p.jsx)("div",{className:k.tooltip,children:(0,p.jsx)(f.Z,{})})})})]}),(0,p.jsx)("div",{className:k.textBoxContainer,children:(0,p.jsx)(l.Z,{id:c,name:u,fullWidth:!0,value:i,disabled:m,onChange:t,multiline:!0,rows:5,inputProps:w,error:""!==j,helperText:j,placeholder:N,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:k.cssOutlinedInput,root:k.rootContainer}},variant:"outlined"})})]})})}))},23508:function(e,n,t){"use strict";var i=t(1413),o=t(72791),r=t(5574),a=t(65661),s=t(39157),l=t(97123),c=t(36151),u=t(59860),d=t(13400),f=t(29823),p=t(11135),m=t(25787),h=t(23814),x=t(80184);n.Z=(0,m.Z)((function(e){return(0,p.Z)((0,i.Z)({},h.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,p=e.onClose,m=e.onCancel,h=e.onConfirm,v=e.classes,Z=void 0===v?{}:v,g=e.title,j=void 0===g?"":g,b=e.isLoading,C=e.confirmationContent,y=e.cancelText,N=void 0===y?"Cancel":y,k=e.confirmText,w=void 0===k?"Confirm":k,E=e.confirmButtonProps,I=void 0===E?{}:E,S=e.cancelButtonProps,P=void 0===S?{}:S,T=e.titleIcon,F=void 0===T?null:T;return(0,x.jsxs)(r.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&p()},className:Z.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(a.Z,{className:Z.title,children:[(0,x.jsxs)("div",{className:Z.titleText,children:[F," ",j]}),(0,x.jsx)("div",{className:Z.closeContainer,children:(0,x.jsx)(d.Z,{"aria-label":"close",className:Z.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,x.jsx)(f.Z,{})})})]}),(0,x.jsx)(s.Z,{className:Z.content,children:C}),(0,x.jsxs)(l.Z,{className:Z.actions,children:[(0,x.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:Z.cancelButton,onClick:m||p,disabled:b,type:"button"},P),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,x.jsx)(u.Z,(0,i.Z)((0,i.Z)({className:Z.confirmButton,type:"button",onClick:h,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},I),{},{children:w}))]})]})}))},67659:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return S}});var i=t(72791),o=t(26181),r=t.n(o),a=t(61889),s=t(58493),l=t(29439),c=t(1413),u=t(60364),d=t(11135),f=t(25787),p=t(40986),m=t(64554),h=t(36151),x=t(81207),v=t(29478),Z=t(42649),g=t(23814),j=t(51691),b=t(23508),C=t(93656),y=t(80184),N={setErrorSnackMessage:Z.Ih},k=(0,u.$j)(null,N),w=(0,f.Z)((function(e){return(0,d.Z)((0,c.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},g.Qw))}))(k((function(e){var n=e.classes,t=e.configurationName,o=e.closeResetModalAndRefresh,r=e.setErrorSnackMessage,a=e.resetOpen,s=(0,i.useState)(!1),c=(0,l.Z)(s,2),u=c[0],d=c[1];(0,i.useEffect)((function(){u&&x.Z.invoke("GET","/api/v1/configs/".concat(t,"/reset")).then((function(e){d(!1),o(!0)})).catch((function(e){d(!1),r(e)}))}),[o,t,u,r]);return(0,y.jsx)(b.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:a,titleIcon:(0,y.jsx)(C.Nv,{}),isLoading:u,onConfirm:function(){d(!0)},onClose:function(){o(!1)},confirmationContent:(0,y.jsxs)(i.Fragment,{children:[u&&(0,y.jsx)(p.Z,{}),(0,y.jsxs)(j.Z,{children:["Are you sure you want to restore these configurations to default values?",(0,y.jsx)("br",{}),(0,y.jsx)("b",{className:n.wrapText,children:"Please note that this may cause your system to not be accessible"})]})]})})}))),E={serverNeedsRestart:Z.o8,setErrorSnackMessage:Z.Ih},I=(0,u.$j)(null,E)((0,f.Z)((function(e){return(0,d.Z)((0,c.Z)((0,c.Z)((0,c.Z)({},g.YI),g.Je),{},{settingsFormContainer:{display:"grid",gridTemplateColumns:"1fr",gridGap:"10px"}}))}))((function(e){var n=e.serverNeedsRestart,t=e.selectedConfiguration,o=e.setErrorSnackMessage,c=e.classes,u=e.history,d=e.className,f=void 0===d?"":d,Z=(0,i.useState)([]),g=(0,l.Z)(Z,2),j=g[0],b=g[1],C=(0,i.useState)(!1),N=(0,l.Z)(C,2),k=N[0],E=N[1],I=(0,i.useState)(!0),S=(0,l.Z)(I,2),P=S[0],T=S[1],F=(0,i.useState)([]),R=(0,l.Z)(F,2),B=R[0],M=R[1],O=(0,i.useState)(!1),W=(0,l.Z)(O,2),A=W[0],L=W[1];(0,i.useEffect)((function(){if(P){var e=r()(t,"configuration_id",!1);if(e)return void x.Z.invoke("GET","/api/v1/configs/".concat(e)).then((function(e){var n=r()(e,"key_values",[]);M(n),T(!1)})).catch((function(e){T(!1),o(e)}));T(!1)}}),[P,t,o]),(0,i.useEffect)((function(){if(k){var e={key_values:(0,s.DD)(j)};x.Z.invoke("PUT","/api/v1/configs/".concat(t.configuration_id),e).then((function(e){E(!1),n(e.restart),u.push("/settings")})).catch((function(e){E(!1),o(e)}))}}),[k,u,n,t,j,o]);var _=(0,i.useCallback)((function(e){b(e)}),[b]);return(0,y.jsxs)(i.Fragment,{children:[A&&(0,y.jsx)(w,{configurationName:t.configuration_id,closeResetModalAndRefresh:function(e){L(!1),n(e),e&&T(!0)},resetOpen:A}),P?(0,y.jsx)(a.ZP,{item:!0,xs:12,children:(0,y.jsx)(p.Z,{})}):(0,y.jsx)(m.Z,{sx:{padding:"15px",height:"100%"},children:(0,y.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),E(!0)},className:f,style:{height:"100%",display:"flex",flexFlow:"column"},children:[(0,y.jsx)(a.ZP,{item:!0,xs:12,className:c.settingsFormContainer,children:(0,y.jsx)(v.default,{fields:s.DP[t.configuration_id],onChange:_,defaultVals:B})}),(0,y.jsxs)(a.ZP,{item:!0,xs:12,sx:{paddingTop:"15px ",textAlign:"right",maxHeight:"60px",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,y.jsx)(h.Z,{type:"button",variant:"outlined",color:"secondary",sx:{padding:{xs:"3px",md:"20px"}},onClick:function(){L(!0)},children:"Restore Defaults"}),"\xa0 \xa0",(0,y.jsx)(h.Z,{type:"submit",variant:"contained",color:"primary",disabled:k,children:"Save"})]})]})})]})}))),S=function(e){var n=e.match,t=e.history,i=r()(n,"url",""),o=i.substring(i.lastIndexOf("/")+1),l=s.bx.find((function(e){return e.configuration_id===o})),c="".concat(o);return(0,y.jsx)(a.ZP,{item:!0,xs:12,sx:{height:"100%","& .identity_ldap, .api":{"& label":{minWidth:220,marginRight:0}}},children:l&&(0,y.jsx)(I,{className:"".concat(c),selectedConfiguration:l,history:t})})}},29478:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return k},valueDef:function(){return N}});var i=t(93433),o=t(29439),r=t(1413),a=t(72791),s=t(11135),l=t(25787),c=t(61889),u=t(23814),d=t(21435),f=t(26181),p=t.n(f),m=t(48573),h=t.n(m),x=t(30829),v=t(20068),Z=t(84570),g=t(47919),j=t(80184),b=(0,l.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},u.YI),u.Hr),{},{inputWithBorder:{border:"1px solid #EAEAEA",padding:15,height:150,overflowY:"auto",position:"relative",marginTop:15,flex:1},inputBoxSpacer:{marginBottom:7},inputLabel:(0,r.Z)((0,r.Z)({},u.YI.inputLabel),{},{margin:0,alignItems:"flex-start",paddingTop:"20px",minWidth:162})}))}))((function(e){var n=e.elements,t=e.name,r=e.label,s=e.tooltip,l=void 0===s?"":s,u=e.commonPlaceholder,f=void 0===u?"":u,m=e.onChange,b=e.withBorder,C=void 0!==b&&b,y=e.classes,N=(0,a.useState)([""]),k=(0,o.Z)(N,2),w=k[0],E=k[1],I=(0,a.createRef)();(0,a.useEffect)((function(){if(1===w.length&&""===w[0]&&n&&""!==n){var e=n.split(",");e.push(""),E(e)}}),[n,w]),(0,a.useEffect)((function(){if(w.length>1){var e=I.current;e&&e.scrollIntoView(!1)}}),[w,I]);var S=(0,a.useRef)(!0);(0,a.useLayoutEffect)((function(){S.current?S.current=!1:T()}),[w]);var P=function(e){e.persist();var n=(0,i.Z)(w);n[p()(e.target,"dataset.index",0)]=e.target.value,E(n)},T=h()((function(){var e=w.filter((function(e){return""!==e.trim()})).join(",");m(e)}),500),F=w.map((function(e,n){return(0,j.jsx)("div",{className:y.inputBoxSpacer,children:(0,j.jsx)(d.Z,{id:"".concat(t,"-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:w[n],onChange:P,index:n,placeholder:f,overlayIcon:n===w.length-1?(0,j.jsx)(g.Z,{}):null,overlayAction:function(){!function(e){if(""!==e[e.length-1].trim()){var n=(0,i.Z)(e);n.push(""),E(n)}}(w)}},"csv-".concat(t,"-").concat(n.toString()))})}));return(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:y.fieldContainer,children:[(0,j.jsxs)(x.Z,{className:y.inputLabel,children:[(0,j.jsx)("span",{children:r}),""!==l&&(0,j.jsx)("div",{className:y.tooltipContainer,children:(0,j.jsx)(v.Z,{title:l,placement:"top-start",children:(0,j.jsx)("div",{className:y.tooltip,children:(0,j.jsx)(Z.Z,{})})})})]}),(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(C?y.inputWithBorder:""),children:[F,(0,j.jsx)("div",{ref:I})]})]})})})),C=t(57314),y=t(37516),N=function(e,n,t){var i="on|off"===n?"false":"";if(t.length>0){var o=t.find((function(n){return n.key===e}));o&&(i=o.value)}return i},k=(0,l.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)({},u.DF),{},{formFieldRow:(0,r.Z)({},u.DF.formFieldRow)},u.oO))}))((function(e){var n=e.onChange,t=e.fields,r=e.defaultVals,s=e.classes,l=(0,a.useState)([]),u=(0,o.Z)(l,2),f=u[0],p=u[1],m=t||[],h=r||[];(0,a.useEffect)((function(){var e=[];t.forEach((function(n){var t={key:n.name,value:N(n.name,n.type,h)};e.push(t)})),p(e)}),[t,r]),(0,a.useEffect)((function(){n(f)}),[f]);var x=function(e,n,t){var o=(0,i.Z)(f);o[t]={key:e,value:n},p(o)},v=function(e,n){switch(e.type){case"on|off":var t=f[n]?f[n].value:"false";return(0,j.jsx)(y.Z,{onChange:function(t){var i=t.target.checked?"true":"false";x(e.name,i,n)},id:e.name,name:e.name,label:e.label,value:"switch_on",tooltip:e.tooltip,checked:"true"===t});case"csv":return(0,j.jsx)(b,{elements:f[n]?f[n].value:"",label:e.label,name:e.name,onChange:function(t){return x(e.name,t,n)},tooltip:e.tooltip,commonPlaceholder:e.placeholder,withBorder:!0});case"comment":return(0,j.jsx)(C.Z,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:f[n]?f[n].value:"",onChange:function(t){return x(e.name,t.target.value,n)},placeholder:e.placeholder});default:return(0,j.jsx)(d.Z,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:f[n]?f[n].value:"",onChange:function(t){return x(e.name,t.target.value,n)},multiline:!!e.multiline,placeholder:e.placeholder})}};return(0,j.jsx)(c.ZP,{container:!0,children:(0,j.jsx)(c.ZP,{xs:12,item:!0,className:s.fieldBox,children:m.map((function(e,n){return(0,j.jsx)(c.ZP,{item:!0,xs:12,className:s.formFieldRow,children:v(e,n)},e.name)}))})})}))},29823: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:"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=a},20821:function(e,n,t){var i=t(26050),o=/^\s+/;e.exports=function(e){return e?e.slice(0,i(e)+1).replace(o,""):e}},26050:function(e){var n=/\s/;e.exports=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}},48573:function(e,n,t){var i=t(8092),o=t(50072),r=t(42582),a=Math.max,s=Math.min;e.exports=function(e,n,t){var l,c,u,d,f,p,m=0,h=!1,x=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function Z(n){var t=l,i=c;return l=c=void 0,m=n,d=e.apply(i,t)}function g(e){return m=e,f=setTimeout(b,n),h?Z(e):d}function j(e){var t=e-p;return void 0===p||t>=n||t<0||x&&e-m>=u}function b(){var e=o();if(j(e))return C(e);f=setTimeout(b,function(e){var t=n-(e-p);return x?s(t,u-(e-m)):t}(e))}function C(e){return f=void 0,v&&l?Z(e):(l=c=void 0,d)}function y(){var e=o(),t=j(e);if(l=arguments,c=this,p=e,t){if(void 0===f)return g(p);if(x)return clearTimeout(f),f=setTimeout(b,n),Z(p)}return void 0===f&&(f=setTimeout(b,n)),d}return n=r(n)||0,i(t)&&(h=!!t.leading,u=(x="maxWait"in t)?a(r(t.maxWait)||0,n):u,v="trailing"in t?!!t.trailing:v),y.cancel=function(){void 0!==f&&clearTimeout(f),m=0,l=p=c=f=void 0},y.flush=function(){return void 0===f?d:C(o())},y}},50072:function(e,n,t){var i=t(97009);e.exports=function(){return i.Date.now()}},42582:function(e,n,t){var i=t(20821),o=t(8092),r=t(70152),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(r(e))return NaN;if(o(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=o(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=i(e);var t=s.test(e);return t||l.test(e)?c(e.slice(2),t?2:8):a.test(e)?NaN:+e}}}]); -//# sourceMappingURL=7659.5504cc60.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7659.5504cc60.chunk.js.map b/portal-ui/build/static/js/7659.5504cc60.chunk.js.map deleted file mode 100644 index c5addbf67..000000000 --- a/portal-ui/build/static/js/7659.5504cc60.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7659.5504cc60.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/NotificationEndpoints/CustomForms/ResetConfigurationModal.tsx","screens/Console/NotificationEndpoints/CustomForms/EditConfiguration.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationForm.tsx","screens/Console/Common/FormComponents/CSVMultiSelector/CSVMultiSelector.tsx","screens/Console/NotificationEndpoints/ConfTargetGeneric.tsx","../node_modules/@mui/icons-material/Close.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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, { 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 { deleteDialogStyles } 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 { ConfirmDeleteIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...deleteDialogStyles,\n });\n\ninterface IResetConfiguration {\n classes: any;\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n classes,\n configurationName,\n closeResetModalAndRefresh,\n setErrorSnackMessage,\n resetOpen,\n}: IResetConfiguration) => {\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api\n .invoke(\"GET\", `/api/v1/configs/${configurationName}/reset`)\n .then((res) => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setResetLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n closeResetModalAndRefresh,\n configurationName,\n resetLoading,\n setErrorSnackMessage,\n ]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
    \n \n Please note that this may cause your system to not be accessible\n \n
    \n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ResetConfigurationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Box, Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport api from \"../../../../common/api\";\nimport ConfTargetGeneric from \"../ConfTargetGeneric\";\nimport { serverNeedsRestart, setErrorSnackMessage } from \"../../../../actions\";\nimport {\n fieldBasic,\n settingsCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n fieldsConfigurations,\n removeEmptyFields,\n} from \"../../Configurations/utils\";\nimport {\n IConfigurationElement,\n IElementValue,\n} from \"../../Configurations/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ResetConfigurationModal from \"./ResetConfigurationModal\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...settingsCommon,\n settingsFormContainer: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gridGap: \"10px\",\n },\n });\n\ninterface IAddNotificationEndpointProps {\n serverNeedsRestart: typeof serverNeedsRestart;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n selectedConfiguration: IConfigurationElement;\n classes: any;\n history: any;\n className?: string;\n}\n\nconst EditConfiguration = ({\n serverNeedsRestart,\n selectedConfiguration,\n setErrorSnackMessage,\n classes,\n history,\n className = \"\",\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [valuesObj, setValueObj] = useState([]);\n const [saving, setSaving] = useState(false);\n const [loadingConfig, setLoadingConfig] = useState(true);\n const [configValues, setConfigValues] = useState([]);\n const [resetConfigurationOpen, setResetConfigurationOpen] =\n useState(false);\n //Effects\n useEffect(() => {\n if (loadingConfig) {\n const configId = get(selectedConfiguration, \"configuration_id\", false);\n\n if (configId) {\n api\n .invoke(\"GET\", `/api/v1/configs/${configId}`)\n .then((res) => {\n const keyVals = get(res, \"key_values\", []);\n setConfigValues(keyVals);\n setLoadingConfig(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingConfig(false);\n setErrorSnackMessage(err);\n });\n\n return;\n }\n setLoadingConfig(false);\n }\n }, [loadingConfig, selectedConfiguration, setErrorSnackMessage]);\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesObj),\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/configs/${selectedConfiguration.configuration_id}`,\n payload\n )\n .then((res) => {\n setSaving(false);\n serverNeedsRestart(res.restart);\n\n history.push(\"/settings\");\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n saving,\n history,\n serverNeedsRestart,\n selectedConfiguration,\n valuesObj,\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 setValueObj(newValue);\n },\n [setValueObj]\n );\n\n const continueReset = (restart: boolean) => {\n setResetConfigurationOpen(false);\n serverNeedsRestart(restart);\n if (restart) {\n setLoadingConfig(true);\n }\n };\n\n return (\n \n {resetConfigurationOpen && (\n \n )}\n {loadingConfig ? (\n \n \n \n ) : (\n \n \n \n \n \n \n {\n setResetConfigurationOpen(true);\n }}\n >\n Restore Defaults\n \n    \n \n Save\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)(EditConfiguration));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { configurationElements } from \"../utils\";\nimport EditConfiguration from \"../../NotificationEndpoints/CustomForms/EditConfiguration\";\n\ninterface IConfigurationForm {\n match: any;\n history: any;\n}\n\nconst ConfigurationsList = ({ match, history }: IConfigurationForm) => {\n const activeConfRoute = get(match, \"url\", \"\");\n\n const configName = activeConfRoute.substring(\n activeConfRoute.lastIndexOf(\"/\") + 1\n );\n\n const validActiveConfig = configurationElements.find(\n (element) => element.configuration_id === configName\n );\n const containerClassName = `${configName}`;\n return (\n \n {validActiveConfig && (\n \n )}\n \n );\n};\n\nexport default ConfigurationsList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\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 { InputLabel, Tooltip } from \"@mui/material\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\n\ninterface ICSVMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n commonPlaceholder?: string;\n classes: any;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst styles = (theme: Theme) => {\n return 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 flex: 1,\n },\n inputBoxSpacer: {\n marginBottom: 7,\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n minWidth: 162,\n },\n });\n};\n\nconst CSVMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n commonPlaceholder = \"\",\n onChange,\n withBorder = false,\n classes,\n}: ICSVMultiSelector) => {\n const [currentElements, setCurrentElements] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentElements.length === 1 &&\n currentElements[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\",\");\n elementsSplit.push(\"\");\n\n setCurrentElements(elementsSplit);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elements, currentElements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n if (currentElements.length > 1) {\n const refScroll = bottomList.current;\n if (refScroll) {\n refScroll.scrollIntoView(false);\n }\n }\n }, [currentElements, bottomList]);\n\n // 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 }, [currentElements]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = (elementsUp: string[]) => {\n if (elementsUp[elementsUp.length - 1].trim() !== \"\") {\n const cpList = [...elementsUp];\n cpList.push(\"\");\n setCurrentElements(cpList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeElement = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentElements];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentElements(updatedElement);\n };\n\n // Debounce for On Change\n const debouncedOnChange = debounce(() => {\n const elementsString = currentElements\n .filter((element) => element.trim() !== \"\")\n .join(\",\");\n\n onChange(elementsString);\n }, 500);\n\n const inputs = currentElements.map((element, index) => {\n return (\n
    \n : null\n }\n overlayAction={() => {\n addEmptyLine(currentElements);\n }}\n />\n
    \n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n {inputs}\n
    \n \n \n \n );\n};\nexport default withStyles(styles)(CSVMultiSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { IElementValue, KVField } from \"../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport CSVMultiSelector from \"../Common/FormComponents/CSVMultiSelector/CSVMultiSelector\";\nimport CommentBoxWrapper from \"../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IConfGenericProps {\n onChange: (newValue: IElementValue[]) => void;\n fields: KVField[];\n defaultVals?: IElementValue[];\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n formFieldRow: {\n ...formFieldStyles.formFieldRow,\n },\n ...modalBasic,\n });\n\n// Function to get defined values,\n//we make this because the backed sometimes don't return all the keys when there is an initial configuration\nexport const valueDef = (\n key: string,\n type: string,\n defaults: IElementValue[]\n) => {\n let defValue = type === \"on|off\" ? \"false\" : \"\";\n\n if (defaults.length > 0) {\n const storedConfig = defaults.find((element) => element.key === key);\n\n if (storedConfig) {\n defValue = storedConfig.value;\n }\n }\n\n return defValue;\n};\n\nconst ConfTargetGeneric = ({\n onChange,\n fields,\n defaultVals,\n classes,\n}: IConfGenericProps) => {\n const [valueHolder, setValueHolder] = useState([]);\n const fieldsElements = !fields ? [] : fields;\n const defValList = !defaultVals ? [] : defaultVals;\n\n // Effect to create all the values to hold\n useEffect(() => {\n const values: IElementValue[] = [];\n fields.forEach((field) => {\n const stateInsert: IElementValue = {\n key: field.name,\n value: valueDef(field.name, field.type, defValList),\n };\n values.push(stateInsert);\n });\n\n setValueHolder(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, defaultVals]);\n\n useEffect(() => {\n onChange(valueHolder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueHolder]);\n\n const setValueElement = (key: string, value: string, index: number) => {\n const valuesDup = [...valueHolder];\n valuesDup[index] = { key, value };\n\n setValueHolder(valuesDup);\n };\n\n const fieldDefinition = (field: KVField, item: number) => {\n switch (field.type) {\n case \"on|off\":\n const value = valueHolder[item] ? valueHolder[item].value : \"false\";\n\n return (\n ) => {\n const value = e.target.checked ? \"true\" : \"false\";\n setValueElement(field.name, value, item);\n }}\n id={field.name}\n name={field.name}\n label={field.label}\n value={\"switch_on\"}\n tooltip={field.tooltip}\n checked={value === \"true\"}\n />\n );\n case \"csv\":\n return (\n \n setValueElement(field.name, value, item)\n }\n tooltip={field.tooltip}\n commonPlaceholder={field.placeholder}\n withBorder={true}\n />\n );\n case \"comment\":\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n placeholder={field.placeholder}\n />\n );\n default:\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n multiline={!!field.multiline}\n placeholder={field.placeholder}\n />\n );\n }\n };\n\n return (\n \n \n {fieldsElements.map((field, item) => (\n \n {fieldDefinition(field, item)}\n \n ))}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfTargetGeneric);\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;","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","sx","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","type","confirmButton","loading","loadingPosition","startIcon","autoFocus","mapDispatchToProps","setErrorSnackMessage","connector","connect","wrapText","maxWidth","whiteSpace","wordWrap","configurationName","closeResetModalAndRefresh","resetOpen","useState","resetLoading","setResetLoading","useEffect","api","then","res","catch","err","ConfirmDialog","LinearProgress","DialogContentText","serverNeedsRestart","settingsCommon","settingsFormContainer","gridTemplateColumns","gridGap","selectedConfiguration","history","valuesObj","setValueObj","saving","setSaving","loadingConfig","setLoadingConfig","configValues","setConfigValues","resetConfigurationOpen","setResetConfigurationOpen","configId","get","keyVals","payload","key_values","removeEmptyFields","configuration_id","restart","push","onValueChange","useCallback","newValue","Fragment","Grid","Box","height","noValidate","onSubmit","preventDefault","style","flexFlow","ConfTargetGeneric","fields","fieldsConfigurations","defaultVals","textAlign","maxHeight","justifyContent","Button","md","match","activeConfRoute","configName","substring","lastIndexOf","validActiveConfig","configurationElements","element","containerClassName","minWidth","marginRight","inputWithBorder","border","overflowY","marginTop","flex","inputBoxSpacer","marginBottom","elements","commonPlaceholder","withBorder","currentElements","setCurrentElements","bottomList","createRef","length","elementsSplit","split","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeElement","e","persist","updatedElement","target","debounce","elementsString","filter","trim","join","inputs","map","InputBoxWrapper","toString","overlayIcon","AddIcon","overlayAction","elementsUp","cpList","addEmptyLine","InputLabel","Tooltip","HelpIcon","ref","valueDef","key","defaults","defValue","storedConfig","find","formFieldStyles","formFieldRow","modalBasic","valueHolder","setValueHolder","fieldsElements","defValList","values","forEach","field","stateInsert","setValueElement","valuesDup","fieldDefinition","FormSwitchWrapper","checked","CommentBoxWrapper","container","fieldBox","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","trimmedEndIndex","reTrimStart","module","string","slice","replace","reWhitespace","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7659.e4cc39f9.chunk.js b/portal-ui/build/static/js/7659.e4cc39f9.chunk.js new file mode 100644 index 000000000..17a17d1fc --- /dev/null +++ b/portal-ui/build/static/js/7659.e4cc39f9.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7659,9478],{57314:function(e,t,n){"use strict";var i=n(1413),r=n(72791),a=n(61889),o=n(30829),s=n(20068),l=n(27391),c=n(11135),u=n(25787),f=n(23814),d=n(84570),p=n(80184);t.Z=(0,u.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},f.YI),f.Hr),{},{inputLabel:(0,i.Z)((0,i.Z)({},f.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,i.Z)((0,i.Z)({},f.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,n=e.onChange,i=e.value,c=e.id,u=e.name,f=e.disabled,h=void 0!==f&&f,m=e.tooltip,x=void 0===m?"":m,v=e.index,g=void 0===v?0:v,Z=e.error,j=void 0===Z?"":Z,b=e.required,y=void 0!==b&&b,C=e.placeholder,N=void 0===C?"":C,w=e.classes,E={"data-index":g};return(0,p.jsx)(r.Fragment,{children:(0,p.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(w.fieldContainer," ").concat(""!==j?w.errorInField:""),children:[""!==t&&(0,p.jsxs)(o.Z,{htmlFor:c,className:w.inputLabel,children:[(0,p.jsxs)("span",{children:[t,y?"*":""]}),""!==x&&(0,p.jsx)("div",{className:w.tooltipContainer,children:(0,p.jsx)(s.Z,{title:x,placement:"top-start",children:(0,p.jsx)("div",{className:w.tooltip,children:(0,p.jsx)(d.Z,{})})})})]}),(0,p.jsx)("div",{className:w.textBoxContainer,children:(0,p.jsx)(l.Z,{id:c,name:u,fullWidth:!0,value:i,disabled:h,onChange:n,multiline:!0,rows:5,inputProps:E,error:""!==j,helperText:j,placeholder:N,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:w.cssOutlinedInput,root:w.rootContainer}},variant:"outlined"})})]})})}))},67659:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var i=n(72791),r=n(26181),a=n.n(r),o=n(61889),s=n(58493),l=n(29439),c=n(1413),u=n(60364),f=n(11135),d=n(25787),p=n(40986),h=n(64554),m=n(36151),x=n(81207),v=n(29478),g=n(42649),Z=n(23814),j=n(51691),b=n(2148),y=n(93656),C=n(80184),N={setErrorSnackMessage:g.Ih},w=(0,u.$j)(null,N),E=(0,d.Z)((function(e){return(0,f.Z)((0,c.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},Z.Qw))}))(w((function(e){var t=e.classes,n=e.configurationName,r=e.closeResetModalAndRefresh,a=e.setErrorSnackMessage,o=e.resetOpen,s=(0,i.useState)(!1),c=(0,l.Z)(s,2),u=c[0],f=c[1];(0,i.useEffect)((function(){u&&x.Z.invoke("GET","/api/v1/configs/".concat(n,"/reset")).then((function(e){f(!1),r(!0)})).catch((function(e){f(!1),a(e)}))}),[r,n,u,a]);return(0,C.jsx)(b.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:o,titleIcon:(0,C.jsx)(y.Nv,{}),isLoading:u,onConfirm:function(){f(!0)},onClose:function(){r(!1)},confirmationContent:(0,C.jsxs)(i.Fragment,{children:[u&&(0,C.jsx)(p.Z,{}),(0,C.jsxs)(j.Z,{children:["Are you sure you want to restore these configurations to default values?",(0,C.jsx)("br",{}),(0,C.jsx)("b",{className:t.wrapText,children:"Please note that this may cause your system to not be accessible"})]})]})})}))),I={serverNeedsRestart:g.o8,setErrorSnackMessage:g.Ih},S=(0,u.$j)(null,I)((0,d.Z)((function(e){return(0,f.Z)((0,c.Z)((0,c.Z)((0,c.Z)({},Z.YI),Z.Je),{},{settingsFormContainer:{display:"grid",gridTemplateColumns:"1fr",gridGap:"10px"}}))}))((function(e){var t=e.serverNeedsRestart,n=e.selectedConfiguration,r=e.setErrorSnackMessage,c=e.classes,u=e.history,f=e.className,d=void 0===f?"":f,g=(0,i.useState)([]),Z=(0,l.Z)(g,2),j=Z[0],b=Z[1],y=(0,i.useState)(!1),N=(0,l.Z)(y,2),w=N[0],I=N[1],S=(0,i.useState)(!0),k=(0,l.Z)(S,2),T=k[0],P=k[1],R=(0,i.useState)([]),F=(0,l.Z)(R,2),O=F[0],W=F[1],A=(0,i.useState)(!1),M=(0,l.Z)(A,2),_=M[0],B=M[1];(0,i.useEffect)((function(){if(T){var e=a()(n,"configuration_id",!1);if(e)return void x.Z.invoke("GET","/api/v1/configs/".concat(e)).then((function(e){var t=a()(e,"key_values",[]);W(t),P(!1)})).catch((function(e){P(!1),r(e)}));P(!1)}}),[T,n,r]),(0,i.useEffect)((function(){if(w){var e={key_values:(0,s.DD)(j)};x.Z.invoke("PUT","/api/v1/configs/".concat(n.configuration_id),e).then((function(e){I(!1),t(e.restart),u.push("/settings")})).catch((function(e){I(!1),r(e)}))}}),[w,u,t,n,j,r]);var D=(0,i.useCallback)((function(e){b(e)}),[b]);return(0,C.jsxs)(i.Fragment,{children:[_&&(0,C.jsx)(E,{configurationName:n.configuration_id,closeResetModalAndRefresh:function(e){B(!1),t(e),e&&P(!0)},resetOpen:_}),T?(0,C.jsx)(o.ZP,{item:!0,xs:12,children:(0,C.jsx)(p.Z,{})}):(0,C.jsx)(h.Z,{sx:{padding:"15px",height:"100%"},children:(0,C.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),I(!0)},className:d,style:{height:"100%",display:"flex",flexFlow:"column"},children:[(0,C.jsx)(o.ZP,{item:!0,xs:12,className:c.settingsFormContainer,children:(0,C.jsx)(v.default,{fields:s.DP[n.configuration_id],onChange:D,defaultVals:O})}),(0,C.jsxs)(o.ZP,{item:!0,xs:12,sx:{paddingTop:"15px ",textAlign:"right",maxHeight:"60px",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,C.jsx)(m.Z,{type:"button",variant:"outlined",color:"secondary",sx:{padding:{xs:"3px",md:"20px"}},onClick:function(){B(!0)},children:"Restore Defaults"}),"\xa0 \xa0",(0,C.jsx)(m.Z,{type:"submit",variant:"contained",color:"primary",disabled:w,children:"Save"})]})]})})]})}))),k=function(e){var t=e.match,n=e.history,i=a()(t,"url",""),r=i.substring(i.lastIndexOf("/")+1),l=s.bx.find((function(e){return e.configuration_id===r})),c="".concat(r);return(0,C.jsx)(o.ZP,{item:!0,xs:12,sx:{height:"100%","& .identity_ldap, .api":{"& label":{minWidth:220,marginRight:0}}},children:l&&(0,C.jsx)(S,{className:"".concat(c),selectedConfiguration:l,history:n})})}},29478:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return w},valueDef:function(){return N}});var i=n(93433),r=n(29439),a=n(1413),o=n(72791),s=n(11135),l=n(25787),c=n(61889),u=n(23814),f=n(21435),d=n(26181),p=n.n(d),h=n(48573),m=n.n(h),x=n(30829),v=n(20068),g=n(84570),Z=n(47919),j=n(80184),b=(0,l.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},u.YI),u.Hr),{},{inputWithBorder:{border:"1px solid #EAEAEA",padding:15,height:150,overflowY:"auto",position:"relative",marginTop:15,flex:1},inputBoxSpacer:{marginBottom:7},inputLabel:(0,a.Z)((0,a.Z)({},u.YI.inputLabel),{},{margin:0,alignItems:"flex-start",paddingTop:"20px",minWidth:162})}))}))((function(e){var t=e.elements,n=e.name,a=e.label,s=e.tooltip,l=void 0===s?"":s,u=e.commonPlaceholder,d=void 0===u?"":u,h=e.onChange,b=e.withBorder,y=void 0!==b&&b,C=e.classes,N=(0,o.useState)([""]),w=(0,r.Z)(N,2),E=w[0],I=w[1],S=(0,o.createRef)();(0,o.useEffect)((function(){if(1===E.length&&""===E[0]&&t&&""!==t){var e=t.split(",");e.push(""),I(e)}}),[t,E]),(0,o.useEffect)((function(){if(E.length>1){var e=S.current;e&&e.scrollIntoView(!1)}}),[E,S]);var k=(0,o.useRef)(!0);(0,o.useLayoutEffect)((function(){k.current?k.current=!1:P()}),[E]);var T=function(e){e.persist();var t=(0,i.Z)(E);t[p()(e.target,"dataset.index",0)]=e.target.value,I(t)},P=m()((function(){var e=E.filter((function(e){return""!==e.trim()})).join(",");h(e)}),500),R=E.map((function(e,t){return(0,j.jsx)("div",{className:C.inputBoxSpacer,children:(0,j.jsx)(f.Z,{id:"".concat(n,"-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:E[t],onChange:T,index:t,placeholder:d,overlayIcon:t===E.length-1?(0,j.jsx)(Z.Z,{}):null,overlayAction:function(){!function(e){if(""!==e[e.length-1].trim()){var t=(0,i.Z)(e);t.push(""),I(t)}}(E)}},"csv-".concat(n,"-").concat(t.toString()))})}));return(0,j.jsx)(o.Fragment,{children:(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:C.fieldContainer,children:[(0,j.jsxs)(x.Z,{className:C.inputLabel,children:[(0,j.jsx)("span",{children:a}),""!==l&&(0,j.jsx)("div",{className:C.tooltipContainer,children:(0,j.jsx)(v.Z,{title:l,placement:"top-start",children:(0,j.jsx)("div",{className:C.tooltip,children:(0,j.jsx)(g.Z,{})})})})]}),(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(y?C.inputWithBorder:""),children:[R,(0,j.jsx)("div",{ref:S})]})]})})})),y=n(57314),C=n(37516),N=function(e,t,n){var i="on|off"===t?"false":"";if(n.length>0){var r=n.find((function(t){return t.key===e}));r&&(i=r.value)}return i},w=(0,l.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({},u.DF),{},{formFieldRow:(0,a.Z)({},u.DF.formFieldRow)},u.oO))}))((function(e){var t=e.onChange,n=e.fields,a=e.defaultVals,s=e.classes,l=(0,o.useState)([]),u=(0,r.Z)(l,2),d=u[0],p=u[1],h=n||[],m=a||[];(0,o.useEffect)((function(){var e=[];n.forEach((function(t){var n={key:t.name,value:N(t.name,t.type,m)};e.push(n)})),p(e)}),[n,a]),(0,o.useEffect)((function(){t(d)}),[d]);var x=function(e,t,n){var r=(0,i.Z)(d);r[n]={key:e,value:t},p(r)},v=function(e,t){switch(e.type){case"on|off":var n=d[t]?d[t].value:"false";return(0,j.jsx)(C.Z,{onChange:function(n){var i=n.target.checked?"true":"false";x(e.name,i,t)},id:e.name,name:e.name,label:e.label,value:"switch_on",tooltip:e.tooltip,checked:"true"===n});case"csv":return(0,j.jsx)(b,{elements:d[t]?d[t].value:"",label:e.label,name:e.name,onChange:function(n){return x(e.name,n,t)},tooltip:e.tooltip,commonPlaceholder:e.placeholder,withBorder:!0});case"comment":return(0,j.jsx)(y.Z,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:d[t]?d[t].value:"",onChange:function(n){return x(e.name,n.target.value,t)},placeholder:e.placeholder});default:return(0,j.jsx)(f.Z,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:d[t]?d[t].value:"",onChange:function(n){return x(e.name,n.target.value,t)},multiline:!!e.multiline,placeholder:e.placeholder})}};return(0,j.jsx)(c.ZP,{container:!0,children:(0,j.jsx)(c.ZP,{xs:12,item:!0,className:s.fieldBox,children:h.map((function(e,t){return(0,j.jsx)(c.ZP,{item:!0,xs:12,className:s.formFieldRow,children:v(e,t)},e.name)}))})})}))},20821:function(e,t,n){var i=n(26050),r=/^\s+/;e.exports=function(e){return e?e.slice(0,i(e)+1).replace(r,""):e}},26050:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},48573:function(e,t,n){var i=n(8092),r=n(50072),a=n(42582),o=Math.max,s=Math.min;e.exports=function(e,t,n){var l,c,u,f,d,p,h=0,m=!1,x=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=l,i=c;return l=c=void 0,h=t,f=e.apply(i,n)}function Z(e){return h=e,d=setTimeout(b,t),m?g(e):f}function j(e){var n=e-p;return void 0===p||n>=t||n<0||x&&e-h>=u}function b(){var e=r();if(j(e))return y(e);d=setTimeout(b,function(e){var n=t-(e-p);return x?s(n,u-(e-h)):n}(e))}function y(e){return d=void 0,v&&l?g(e):(l=c=void 0,f)}function C(){var e=r(),n=j(e);if(l=arguments,c=this,p=e,n){if(void 0===d)return Z(p);if(x)return clearTimeout(d),d=setTimeout(b,t),g(p)}return void 0===d&&(d=setTimeout(b,t)),f}return t=a(t)||0,i(n)&&(m=!!n.leading,u=(x="maxWait"in n)?o(a(n.maxWait)||0,t):u,v="trailing"in n?!!n.trailing:v),C.cancel=function(){void 0!==d&&clearTimeout(d),h=0,l=p=c=d=void 0},C.flush=function(){return void 0===d?f:y(r())},C}},50072:function(e,t,n){var i=n(97009);e.exports=function(){return i.Date.now()}},42582:function(e,t,n){var i=n(20821),r=n(8092),a=n(70152),o=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=i(e);var n=s.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):o.test(e)?NaN:+e}}}]); +//# sourceMappingURL=7659.e4cc39f9.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7659.e4cc39f9.chunk.js.map b/portal-ui/build/static/js/7659.e4cc39f9.chunk.js.map new file mode 100644 index 000000000..e42c73cd0 --- /dev/null +++ b/portal-ui/build/static/js/7659.e4cc39f9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7659.e4cc39f9.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper.tsx","screens/Console/NotificationEndpoints/CustomForms/ResetConfigurationModal.tsx","screens/Console/NotificationEndpoints/CustomForms/EditConfiguration.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationForm.tsx","screens/Console/Common/FormComponents/CSVMultiSelector/CSVMultiSelector.tsx","screens/Console/NotificationEndpoints/ConfTargetGeneric.tsx","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\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
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { deleteDialogStyles } 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 { ConfirmDeleteIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...deleteDialogStyles,\n });\n\ninterface IResetConfiguration {\n classes: any;\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n classes,\n configurationName,\n closeResetModalAndRefresh,\n setErrorSnackMessage,\n resetOpen,\n}: IResetConfiguration) => {\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api\n .invoke(\"GET\", `/api/v1/configs/${configurationName}/reset`)\n .then((res) => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setResetLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n closeResetModalAndRefresh,\n configurationName,\n resetLoading,\n setErrorSnackMessage,\n ]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
    \n \n Please note that this may cause your system to not be accessible\n \n
    \n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ResetConfigurationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Box, Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport api from \"../../../../common/api\";\nimport ConfTargetGeneric from \"../ConfTargetGeneric\";\nimport { serverNeedsRestart, setErrorSnackMessage } from \"../../../../actions\";\nimport {\n fieldBasic,\n settingsCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n fieldsConfigurations,\n removeEmptyFields,\n} from \"../../Configurations/utils\";\nimport {\n IConfigurationElement,\n IElementValue,\n} from \"../../Configurations/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ResetConfigurationModal from \"./ResetConfigurationModal\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...settingsCommon,\n settingsFormContainer: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gridGap: \"10px\",\n },\n });\n\ninterface IAddNotificationEndpointProps {\n serverNeedsRestart: typeof serverNeedsRestart;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n selectedConfiguration: IConfigurationElement;\n classes: any;\n history: any;\n className?: string;\n}\n\nconst EditConfiguration = ({\n serverNeedsRestart,\n selectedConfiguration,\n setErrorSnackMessage,\n classes,\n history,\n className = \"\",\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [valuesObj, setValueObj] = useState([]);\n const [saving, setSaving] = useState(false);\n const [loadingConfig, setLoadingConfig] = useState(true);\n const [configValues, setConfigValues] = useState([]);\n const [resetConfigurationOpen, setResetConfigurationOpen] =\n useState(false);\n //Effects\n useEffect(() => {\n if (loadingConfig) {\n const configId = get(selectedConfiguration, \"configuration_id\", false);\n\n if (configId) {\n api\n .invoke(\"GET\", `/api/v1/configs/${configId}`)\n .then((res) => {\n const keyVals = get(res, \"key_values\", []);\n setConfigValues(keyVals);\n setLoadingConfig(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingConfig(false);\n setErrorSnackMessage(err);\n });\n\n return;\n }\n setLoadingConfig(false);\n }\n }, [loadingConfig, selectedConfiguration, setErrorSnackMessage]);\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesObj),\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/configs/${selectedConfiguration.configuration_id}`,\n payload\n )\n .then((res) => {\n setSaving(false);\n serverNeedsRestart(res.restart);\n\n history.push(\"/settings\");\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n saving,\n history,\n serverNeedsRestart,\n selectedConfiguration,\n valuesObj,\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 setValueObj(newValue);\n },\n [setValueObj]\n );\n\n const continueReset = (restart: boolean) => {\n setResetConfigurationOpen(false);\n serverNeedsRestart(restart);\n if (restart) {\n setLoadingConfig(true);\n }\n };\n\n return (\n \n {resetConfigurationOpen && (\n \n )}\n {loadingConfig ? (\n \n \n \n ) : (\n \n \n \n \n \n \n {\n setResetConfigurationOpen(true);\n }}\n >\n Restore Defaults\n \n    \n \n Save\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)(EditConfiguration));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { configurationElements } from \"../utils\";\nimport EditConfiguration from \"../../NotificationEndpoints/CustomForms/EditConfiguration\";\n\ninterface IConfigurationForm {\n match: any;\n history: any;\n}\n\nconst ConfigurationsList = ({ match, history }: IConfigurationForm) => {\n const activeConfRoute = get(match, \"url\", \"\");\n\n const configName = activeConfRoute.substring(\n activeConfRoute.lastIndexOf(\"/\") + 1\n );\n\n const validActiveConfig = configurationElements.find(\n (element) => element.configuration_id === configName\n );\n const containerClassName = `${configName}`;\n return (\n \n {validActiveConfig && (\n \n )}\n \n );\n};\n\nexport default ConfigurationsList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\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 { InputLabel, Tooltip } from \"@mui/material\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\n\ninterface ICSVMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n commonPlaceholder?: string;\n classes: any;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst styles = (theme: Theme) => {\n return 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 flex: 1,\n },\n inputBoxSpacer: {\n marginBottom: 7,\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n minWidth: 162,\n },\n });\n};\n\nconst CSVMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n commonPlaceholder = \"\",\n onChange,\n withBorder = false,\n classes,\n}: ICSVMultiSelector) => {\n const [currentElements, setCurrentElements] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentElements.length === 1 &&\n currentElements[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\",\");\n elementsSplit.push(\"\");\n\n setCurrentElements(elementsSplit);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elements, currentElements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n if (currentElements.length > 1) {\n const refScroll = bottomList.current;\n if (refScroll) {\n refScroll.scrollIntoView(false);\n }\n }\n }, [currentElements, bottomList]);\n\n // 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 }, [currentElements]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = (elementsUp: string[]) => {\n if (elementsUp[elementsUp.length - 1].trim() !== \"\") {\n const cpList = [...elementsUp];\n cpList.push(\"\");\n setCurrentElements(cpList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeElement = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentElements];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentElements(updatedElement);\n };\n\n // Debounce for On Change\n const debouncedOnChange = debounce(() => {\n const elementsString = currentElements\n .filter((element) => element.trim() !== \"\")\n .join(\",\");\n\n onChange(elementsString);\n }, 500);\n\n const inputs = currentElements.map((element, index) => {\n return (\n
    \n : null\n }\n overlayAction={() => {\n addEmptyLine(currentElements);\n }}\n />\n
    \n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n {inputs}\n
    \n \n \n \n );\n};\nexport default withStyles(styles)(CSVMultiSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { IElementValue, KVField } from \"../Configurations/types\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport CSVMultiSelector from \"../Common/FormComponents/CSVMultiSelector/CSVMultiSelector\";\nimport CommentBoxWrapper from \"../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IConfGenericProps {\n onChange: (newValue: IElementValue[]) => void;\n fields: KVField[];\n defaultVals?: IElementValue[];\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n formFieldRow: {\n ...formFieldStyles.formFieldRow,\n },\n ...modalBasic,\n });\n\n// Function to get defined values,\n//we make this because the backed sometimes don't return all the keys when there is an initial configuration\nexport const valueDef = (\n key: string,\n type: string,\n defaults: IElementValue[]\n) => {\n let defValue = type === \"on|off\" ? \"false\" : \"\";\n\n if (defaults.length > 0) {\n const storedConfig = defaults.find((element) => element.key === key);\n\n if (storedConfig) {\n defValue = storedConfig.value;\n }\n }\n\n return defValue;\n};\n\nconst ConfTargetGeneric = ({\n onChange,\n fields,\n defaultVals,\n classes,\n}: IConfGenericProps) => {\n const [valueHolder, setValueHolder] = useState([]);\n const fieldsElements = !fields ? [] : fields;\n const defValList = !defaultVals ? [] : defaultVals;\n\n // Effect to create all the values to hold\n useEffect(() => {\n const values: IElementValue[] = [];\n fields.forEach((field) => {\n const stateInsert: IElementValue = {\n key: field.name,\n value: valueDef(field.name, field.type, defValList),\n };\n values.push(stateInsert);\n });\n\n setValueHolder(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, defaultVals]);\n\n useEffect(() => {\n onChange(valueHolder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueHolder]);\n\n const setValueElement = (key: string, value: string, index: number) => {\n const valuesDup = [...valueHolder];\n valuesDup[index] = { key, value };\n\n setValueHolder(valuesDup);\n };\n\n const fieldDefinition = (field: KVField, item: number) => {\n switch (field.type) {\n case \"on|off\":\n const value = valueHolder[item] ? valueHolder[item].value : \"false\";\n\n return (\n ) => {\n const value = e.target.checked ? \"true\" : \"false\";\n setValueElement(field.name, value, item);\n }}\n id={field.name}\n name={field.name}\n label={field.label}\n value={\"switch_on\"}\n tooltip={field.tooltip}\n checked={value === \"true\"}\n />\n );\n case \"csv\":\n return (\n \n setValueElement(field.name, value, item)\n }\n tooltip={field.tooltip}\n commonPlaceholder={field.placeholder}\n withBorder={true}\n />\n );\n case \"comment\":\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n placeholder={field.placeholder}\n />\n );\n default:\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n multiline={!!field.multiline}\n placeholder={field.placeholder}\n />\n );\n }\n };\n\n return (\n \n \n {fieldsElements.map((field, item) => (\n \n {fieldDefinition(field, item)}\n \n ))}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfTargetGeneric);\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","label","onChange","value","id","name","disabled","tooltip","index","error","required","placeholder","classes","inputProps","item","xs","className","fieldContainer","errorInField","htmlFor","tooltipContainer","title","placement","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","mapDispatchToProps","setErrorSnackMessage","connector","connect","wrapText","maxWidth","whiteSpace","wordWrap","deleteDialogStyles","configurationName","closeResetModalAndRefresh","resetOpen","useState","resetLoading","setResetLoading","useEffect","api","then","res","catch","err","ConfirmDialog","confirmText","isOpen","titleIcon","isLoading","onConfirm","onClose","confirmationContent","LinearProgress","DialogContentText","serverNeedsRestart","settingsCommon","settingsFormContainer","gridTemplateColumns","gridGap","selectedConfiguration","history","valuesObj","setValueObj","saving","setSaving","loadingConfig","setLoadingConfig","configValues","setConfigValues","resetConfigurationOpen","setResetConfigurationOpen","configId","get","keyVals","payload","key_values","removeEmptyFields","configuration_id","restart","push","onValueChange","useCallback","newValue","Fragment","Grid","Box","sx","height","noValidate","onSubmit","event","preventDefault","style","flexFlow","ConfTargetGeneric","fields","fieldsConfigurations","defaultVals","textAlign","maxHeight","justifyContent","Button","type","md","onClick","match","activeConfRoute","configName","substring","lastIndexOf","validActiveConfig","configurationElements","element","containerClassName","minWidth","marginRight","inputWithBorder","border","overflowY","marginTop","flex","inputBoxSpacer","marginBottom","elements","commonPlaceholder","withBorder","currentElements","setCurrentElements","bottomList","createRef","length","elementsSplit","split","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeElement","e","persist","updatedElement","target","debounce","elementsString","filter","trim","join","inputs","map","InputBoxWrapper","toString","overlayIcon","AddIcon","overlayAction","elementsUp","cpList","addEmptyLine","InputLabel","Tooltip","HelpIcon","ref","valueDef","key","defaults","defValue","storedConfig","find","formFieldStyles","formFieldRow","modalBasic","valueHolder","setValueHolder","fieldsElements","defValList","values","forEach","field","stateInsert","setValueElement","valuesDup","fieldDefinition","FormSwitchWrapper","checked","CommentBoxWrapper","container","fieldBox","trimmedEndIndex","require","reTrimStart","module","exports","string","slice","replace","reWhitespace","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/770.c5b57a95.chunk.js b/portal-ui/build/static/js/770.c5b57a95.chunk.js deleted file mode 100644 index d49d4ae21..000000000 --- a/portal-ui/build/static/js/770.c5b57a95.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[770],{23804:function(e,t,r){r(72791);var o=r(11135),n=r(25787),i=r(61889),a=r(80184);t.Z=(0,n.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,n=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:[r,o]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:t.helpText,children:n})]})})}))},75578:function(e,t,r){var o=r(1413),n=r(72791),i=r(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function r(r){return(0,i.jsx)(n.Suspense,{fallback:t,children:(0,i.jsx)(e,(0,o.Z)({},r))})}return r}},74794:function(e,t,r){var o=r(1413),n=(r(72791),r(61889)),i=r(11135),a=r(25787),l=r(23814),c=r(80184);t.Z=(0,a.Z)((function(e){return(0,i.Z)((0,o.Z)({},l.Bw))}))((function(e){var t=e.classes,r=e.className,o=void 0===r?"":r,i=e.children;return(0,c.jsx)("div",{className:t.contentSpacer,children:(0,c.jsx)(n.ZP,{container:!0,children:(0,c.jsx)(n.ZP,{item:!0,xs:12,className:o,children:i})})})}))},32291:function(e,t,r){var o=r(72791),n=r(60364),i=r(61889),a=r(11135),l=r(25787),c=r(20890),s=r(13400),d=r(95466),p=r(84683),u=r(3925),m=r(93656),h=r(80184),f={toggleList:u.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}}),f);t.Z=g((0,l.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 t=e.classes,r=e.label,n=e.actions,a=e.sidebarOpen,l=e.operatorMode,u=e.managerObjects,f=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(o.Fragment,{}):(0,h.jsxs)(i.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:t.logo,children:l?(0,h.jsx)(d.Z,{}):(0,h.jsx)(p.Z,{})}),(0,h.jsx)(c.Z,{variant:"h4",className:t.labelStyle,children:r})]}),g&&(0,h.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.rightMenu,children:[n&&n,u&&u.length>0&&(0,h.jsx)(s.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},58493:function(e,t,r){r.d(t,{DD:function(){return v},DP:function(){return b},_0:function(){return y},bx:function(){return g}});var o=r(93433),n=(r(72791),r(87569)),i=r(59314),a=r(61809),l=r(31292),c=r(98095),s=r(67055),d=r(21141),p=r(61248),u=r(50521),m=r(36909),h=r(13901),f=r(80184),g=[{icon:(0,f.jsx)(n.Z,{}),configuration_id:"region",configuration_label:"Region"},{icon:(0,f.jsx)(i.Z,{}),configuration_id:"cache",configuration_label:"Cache"},{icon:(0,f.jsx)(a.Z,{}),configuration_id:"compression",configuration_label:"Compression"},{icon:(0,f.jsx)(l.Z,{}),configuration_id:"api",configuration_label:"API"},{icon:(0,f.jsx)(c.Z,{}),configuration_id:"heal",configuration_label:"Heal"},{icon:(0,f.jsx)(s.Z,{}),configuration_id:"scanner",configuration_label:"Scanner"},{icon:(0,f.jsx)(d.Z,{}),configuration_id:"etcd",configuration_label:"Etcd"},{icon:(0,f.jsx)(p.Z,{}),configuration_id:"identity_openid",configuration_label:"Identity Openid"},{icon:(0,f.jsx)(u.Z,{}),configuration_id:"identity_ldap",configuration_label:"Identity LDAP"},{icon:(0,f.jsx)(h.Z,{}),configuration_id:"logger_webhook",configuration_label:"Logger Webhook"},{icon:(0,f.jsx)(m.Z,{}),configuration_id:"audit_webhook",configuration_label:"Audit Webhook"}],b={region:[{name:"name",required:!0,label:"Server Location",tooltip:'Name of the location of the server e.g. "us-west-rack2"',type:"string",placeholder:"e.g. us-west-rack-2"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],cache:[{name:"drives",required:!0,label:"Drives",tooltip:'Mountpoints e.g. "/optane1" or "/optane2", you can write one per field',type:"csv",placeholder:"Enter Mount Point"},{name:"expiry",required:!1,label:"Expiry",tooltip:'Cache expiry duration in days e.g. "90"',type:"number",placeholder:"Enter Number of Days"},{name:"quota",required:!1,label:"Quota",tooltip:'Limit cache drive usage in percentage e.g. "90"',type:"number",placeholder:"Enter in %"},{name:"exclude",required:!1,label:"Exclude",tooltip:'Wildcard exclusion patterns e.g. "bucket/*.tmp" or "*.exe", you can write one per field',type:"csv",placeholder:"Enter Wildcard Exclusion Patterns"},{name:"after",required:!1,label:"After",tooltip:"Minimum number of access before caching an object",type:"number",placeholder:"Enter Number of Attempts"},{name:"watermark_low",required:!1,label:"Watermark Low",tooltip:"Watermark Low",type:"number",placeholder:"Enter Watermark Low"},{name:"watermark_high",required:!1,label:"Watermark High",tooltip:"Watermark High",type:"number",placeholder:"Enter Watermark High"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],compression:[{name:"extensions",required:!1,label:"Extensions",tooltip:'Extensions to compress e.g. ".txt",".log" or ".csv", you can write one per field',type:"csv",placeholder:"Enter an Extension",withBorder:!0},{name:"mime_types",required:!1,label:"Mime Types",tooltip:'Mime types e.g. "text/*","application/json" or "application/xml", you can write one per field',type:"csv",placeholder:"Enter a Mime Type",withBorder:!0}],api:[{name:"requests_max",required:!1,label:"Requests Max",tooltip:"Maximum number of concurrent requests, e.g. '1600'",type:"number",placeholder:"Enter Requests Max"},{name:"cors_allow_origin",required:!1,label:"Cors Allow Origin",tooltip:"list of origins allowed for CORS requests",type:"csv",placeholder:"Enter allowed origin e.g. https://example.com"},{name:"replication_workers",required:!1,label:"Replication Workers",tooltip:"Number of replication workers, defaults to 100",type:"number",placeholder:"Enter Replication Workers"},{name:"replication_failed_workers",required:!1,label:"Replication Failed Workers",tooltip:"Number of replication workers for recently failed replicas, defaults to 4",type:"number",placeholder:"Enter Replication Failed Workers"}],heal:[{name:"bitrotscan",required:!1,label:"Bitrot Scan",tooltip:"Perform bitrot scan on disks when checking objects during scanner",type:"on|off"},{name:"max_sleep",required:!1,label:"Max Sleep",tooltip:"Maximum sleep duration between objects to slow down heal operation. eg. 2s",type:"duration",placeholder:"Enter Max Sleep duration"},{name:"max_io",required:!1,label:"Max IO",tooltip:"Maximum IO requests allowed between objects to slow down heal operation. eg. 3",type:"number",placeholder:"Enter Max IO"}],scanner:[{name:"delay",required:!1,label:"Delay multiplier",tooltip:"Scanner delay multiplier, defaults to '10.0'",type:"number",placeholder:"Enter Delay"},{name:"max_wait",required:!1,label:"Max Wait",tooltip:"Maximum wait time between operations, defaults to '15s'",type:"duration",placeholder:"Enter Max Wait"},{name:"cycle",required:!1,label:"Cycle",tooltip:"Time duration between scanner cycles, defaults to '1m'",type:"duration",placeholder:"Enter Cycle"}],etcd:[{name:"endpoints",required:!0,label:"Endpoints",tooltip:'List of etcd endpoints e.g. "http://localhost:2379", you can write one per field',type:"csv",placeholder:"Enter Endpoint"},{name:"path_prefix",required:!1,label:"Path Prefix",tooltip:'namespace prefix to isolate tenants e.g. "customer1/"',type:"string",placeholder:"Enter Path Prefix"},{name:"coredns_path",required:!1,label:"Coredns Path",tooltip:'Shared bucket DNS records, default is "/skydns"',type:"string",placeholder:"Enter Coredns Path"},{name:"client_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_cert_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],identity_openid:[{name:"config_url",required:!1,label:"Config URL",tooltip:"Config URL for identity provider configuration",type:"string",placeholder:"https://identity-provider-url/.well-known/openid-configuration"},{name:"client_id",required:!1,label:"Client ID",type:"string",placeholder:"Enter Client ID"},{name:"client_secret",required:!1,label:"Secret ID",type:"string",placeholder:"Enter Secret ID"},{name:"claim_name",required:!1,label:"Claim Name",tooltip:"Claim from which MinIO will read the policy or role to use",type:"string",placeholder:"Enter Claim Name"},{name:"claim_prefix",required:!1,label:"Claim Prefix",tooltip:"Claim Prefix",type:"string",placeholder:"Enter Claim Prefix"},{name:"claim_userinfo",required:!1,label:"Claim UserInfo",type:"on|off"},{name:"redirect_uri",required:!1,label:"Redirect URI",type:"string",placeholder:"https://console-endpoint-url/oauth_callback"},{name:"scopes",required:!1,label:"Scopes",type:"string",placeholder:"openid,profile,email"}],identity_ldap:[{name:"server_addr",required:!0,label:"Server Addr",tooltip:'AD/LDAP server address e.g. "myldapserver.com:636"',type:"string",placeholder:"myldapserver.com:636"},{name:"tls_skip_verify",required:!1,label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "off" (verify)',type:"on|off"},{name:"server_insecure",required:!1,label:"Server Insecure",tooltip:'Allow plain text connection to AD/LDAP server, defaults to "off"',type:"on|off"},{name:"server_starttls",required:!1,label:"Start TLS connection to AD/LDAP server",tooltip:"Use StartTLS connection to AD/LDAP server",type:"on|off"},{name:"lookup_bind_dn",required:!0,label:"Lookup Bind DN",tooltip:"DN for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"cn=admin,dc=min,dc=io"},{name:"lookup_bind_password",required:!1,label:"Lookup Bind Password",tooltip:"Password for LDAP read-only service account used to perform DN and group lookups",type:"string",placeholder:"admin"},{name:"user_dn_search_base_dn",required:!1,label:"User DN Search Base DN",tooltip:"Base LDAP DN to search for user DN",type:"csv",placeholder:"dc=myldapserver"},{name:"user_dn_search_filter",required:!1,label:"User DN Search Filter",tooltip:"Search filter to lookup user DN",type:"string",placeholder:"(sAMAcountName=%s)"},{name:"group_search_filter",required:!1,label:"Group Search Filter",tooltip:"Search filter for groups",type:"string",placeholder:"(&(objectclass=groupOfNames)(member=%d))"},{name:"group_search_base_dn",required:!1,label:"Group Search Base DN",tooltip:"list of group search base DNs",type:"csv",placeholder:"dc=minioad,dc=local"},{name:"comment",required:!1,label:"Comment",tooltip:"Optionally add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],logger_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}]},v=function(e){return e.filter((function(e){return""!==e.value}))},y=function(e,t,r){var n=e.target,i=n.value,a=n.checked,l=(0,o.Z)(r);return a?l.push(i):l=l.filter((function(e){return e!==i})),t(l),l}},13901:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z"}),"CallToAction");t.Z=a},31292:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"}),"Code");t.Z=a},61809:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z"}),"Compress");t.Z=a},67055:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"}),"FindReplace");t.Z=a},98095:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"}),"LocalHospital");t.Z=a},61248:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"}),"LockOpen");t.Z=a},50521:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"}),"Login");t.Z=a},36909:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"}),"PendingActions");t.Z=a},87569:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.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-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"}),"Public");t.Z=a},59314:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"}),"SdStorage");t.Z=a},21141:function(e,t,r){var o=r(95318);t.Z=void 0;var n=o(r(45649)),i=r(80184),a=(0,n.default)((0,i.jsx)("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),"VpnKey");t.Z=a}}]); -//# sourceMappingURL=770.c5b57a95.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/770.c5b57a95.chunk.js.map b/portal-ui/build/static/js/770.c5b57a95.chunk.js.map deleted file mode 100644 index 51f312941..000000000 --- a/portal-ui/build/static/js/770.c5b57a95.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/770.c5b57a95.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Configurations/utils.tsx","../node_modules/@mui/icons-material/CallToAction.js","../node_modules/@mui/icons-material/Code.js","../node_modules/@mui/icons-material/Compress.js","../node_modules/@mui/icons-material/FindReplace.js","../node_modules/@mui/icons-material/LocalHospital.js","../node_modules/@mui/icons-material/LockOpen.js","../node_modules/@mui/icons-material/Login.js","../node_modules/@mui/icons-material/PendingActions.js","../node_modules/@mui/icons-material/Public.js","../node_modules/@mui/icons-material/SdStorage.js","../node_modules/@mui/icons-material/VpnKey.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, { 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 .\nimport React from \"react\";\nimport PublicIcon from \"@mui/icons-material/Public\";\nimport SdStorageIcon from \"@mui/icons-material/SdStorage\";\nimport CompressIcon from \"@mui/icons-material/Compress\";\nimport CodeIcon from \"@mui/icons-material/Code\";\nimport LocalHospitalIcon from \"@mui/icons-material/LocalHospital\";\nimport FindReplaceIcon from \"@mui/icons-material/FindReplace\";\nimport VpnKeyIcon from \"@mui/icons-material/VpnKey\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nimport LoginIcon from \"@mui/icons-material/Login\";\nimport PendingActionsIcon from \"@mui/icons-material/PendingActions\";\nimport CallToActionIcon from \"@mui/icons-material/CallToAction\";\nimport { IElement, IElementValue } from \"./types\";\n\nexport const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"region\",\n configuration_label: \"Region\",\n },\n {\n icon: ,\n configuration_id: \"cache\",\n configuration_label: \"Cache\",\n },\n {\n icon: ,\n configuration_id: \"compression\",\n configuration_label: \"Compression\",\n },\n {\n icon: ,\n configuration_id: \"api\",\n configuration_label: \"API\",\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n },\n {\n icon: ,\n configuration_id: \"scanner\",\n configuration_label: \"Scanner\",\n },\n {\n icon: ,\n configuration_id: \"etcd\",\n configuration_label: \"Etcd\",\n },\n {\n icon: ,\n configuration_id: \"identity_openid\",\n configuration_label: \"Identity Openid\",\n },\n {\n icon: ,\n configuration_id: \"identity_ldap\",\n configuration_label: \"Identity LDAP\",\n },\n {\n icon: ,\n configuration_id: \"logger_webhook\",\n configuration_label: \"Logger Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_webhook\",\n configuration_label: \"Audit Webhook\",\n },\n];\n\nexport const fieldsConfigurations: any = {\n region: [\n {\n name: \"name\",\n required: true,\n label: \"Server Location\",\n tooltip: 'Name of the location of the server e.g. \"us-west-rack2\"',\n type: \"string\",\n placeholder: \"e.g. us-west-rack-2\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n cache: [\n {\n name: \"drives\",\n required: true,\n label: \"Drives\",\n tooltip:\n 'Mountpoints e.g. \"/optane1\" or \"/optane2\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Mount Point\",\n },\n {\n name: \"expiry\",\n required: false,\n label: \"Expiry\",\n tooltip: 'Cache expiry duration in days e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter Number of Days\",\n },\n {\n name: \"quota\",\n required: false,\n label: \"Quota\",\n tooltip: 'Limit cache drive usage in percentage e.g. \"90\"',\n type: \"number\",\n placeholder: \"Enter in %\",\n },\n {\n name: \"exclude\",\n required: false,\n label: \"Exclude\",\n tooltip:\n 'Wildcard exclusion patterns e.g. \"bucket/*.tmp\" or \"*.exe\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Wildcard Exclusion Patterns\",\n },\n {\n name: \"after\",\n required: false,\n label: \"After\",\n tooltip: \"Minimum number of access before caching an object\",\n type: \"number\",\n placeholder: \"Enter Number of Attempts\",\n },\n {\n name: \"watermark_low\",\n required: false,\n label: \"Watermark Low\",\n tooltip: \"Watermark Low\",\n type: \"number\",\n placeholder: \"Enter Watermark Low\",\n },\n {\n name: \"watermark_high\",\n required: false,\n label: \"Watermark High\",\n tooltip: \"Watermark High\",\n type: \"number\",\n placeholder: \"Enter Watermark High\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n compression: [\n {\n name: \"extensions\",\n required: false,\n label: \"Extensions\",\n tooltip:\n 'Extensions to compress e.g. \".txt\",\".log\" or \".csv\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter an Extension\",\n withBorder: true,\n },\n {\n name: \"mime_types\",\n required: false,\n label: \"Mime Types\",\n tooltip:\n 'Mime types e.g. \"text/*\",\"application/json\" or \"application/xml\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter a Mime Type\",\n withBorder: true,\n },\n ],\n api: [\n {\n name: \"requests_max\",\n required: false,\n label: \"Requests Max\",\n tooltip: \"Maximum number of concurrent requests, e.g. '1600'\",\n type: \"number\",\n placeholder: \"Enter Requests Max\",\n },\n {\n name: \"cors_allow_origin\",\n required: false,\n label: \"Cors Allow Origin\",\n tooltip: \"list of origins allowed for CORS requests\",\n type: \"csv\",\n placeholder: \"Enter allowed origin e.g. https://example.com\",\n },\n {\n name: \"replication_workers\",\n required: false,\n label: \"Replication Workers\",\n tooltip: \"Number of replication workers, defaults to 100\",\n type: \"number\",\n placeholder: \"Enter Replication Workers\",\n },\n {\n name: \"replication_failed_workers\",\n required: false,\n label: \"Replication Failed Workers\",\n tooltip:\n \"Number of replication workers for recently failed replicas, defaults to 4\",\n type: \"number\",\n placeholder: \"Enter Replication Failed Workers\",\n },\n ],\n heal: [\n {\n name: \"bitrotscan\",\n required: false,\n label: \"Bitrot Scan\",\n tooltip:\n \"Perform bitrot scan on disks when checking objects during scanner\",\n type: \"on|off\",\n },\n {\n name: \"max_sleep\",\n required: false,\n label: \"Max Sleep\",\n tooltip:\n \"Maximum sleep duration between objects to slow down heal operation. eg. 2s\",\n type: \"duration\",\n placeholder: \"Enter Max Sleep duration\",\n },\n {\n name: \"max_io\",\n required: false,\n label: \"Max IO\",\n tooltip:\n \"Maximum IO requests allowed between objects to slow down heal operation. eg. 3\",\n type: \"number\",\n placeholder: \"Enter Max IO\",\n },\n ],\n scanner: [\n {\n name: \"delay\",\n required: false,\n label: \"Delay multiplier\",\n tooltip: \"Scanner delay multiplier, defaults to '10.0'\",\n type: \"number\",\n placeholder: \"Enter Delay\",\n },\n {\n name: \"max_wait\",\n required: false,\n label: \"Max Wait\",\n tooltip: \"Maximum wait time between operations, defaults to '15s'\",\n type: \"duration\",\n placeholder: \"Enter Max Wait\",\n },\n {\n name: \"cycle\",\n required: false,\n label: \"Cycle\",\n tooltip: \"Time duration between scanner cycles, defaults to '1m'\",\n type: \"duration\",\n placeholder: \"Enter Cycle\",\n },\n ],\n etcd: [\n {\n name: \"endpoints\",\n required: true,\n label: \"Endpoints\",\n tooltip:\n 'List of etcd endpoints e.g. \"http://localhost:2379\", you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"path_prefix\",\n required: false,\n label: \"Path Prefix\",\n tooltip: 'namespace prefix to isolate tenants e.g. \"customer1/\"',\n type: \"string\",\n placeholder: \"Enter Path Prefix\",\n },\n {\n name: \"coredns_path\",\n required: false,\n label: \"Coredns Path\",\n tooltip: 'Shared bucket DNS records, default is \"/skydns\"',\n type: \"string\",\n placeholder: \"Enter Coredns Path\",\n },\n {\n name: \"client_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_cert_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n identity_openid: [\n {\n name: \"config_url\",\n required: false,\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n type: \"string\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n },\n {\n name: \"client_id\",\n required: false,\n label: \"Client ID\",\n type: \"string\",\n placeholder: \"Enter Client ID\",\n },\n {\n name: \"client_secret\",\n required: false,\n label: \"Secret ID\",\n type: \"string\",\n placeholder: \"Enter Secret ID\",\n },\n {\n name: \"claim_name\",\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n type: \"string\",\n placeholder: \"Enter Claim Name\",\n },\n {\n name: \"claim_prefix\",\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"Claim Prefix\",\n type: \"string\",\n placeholder: \"Enter Claim Prefix\",\n },\n {\n name: \"claim_userinfo\",\n required: false,\n label: \"Claim UserInfo\",\n type: \"on|off\",\n },\n {\n name: \"redirect_uri\",\n required: false,\n label: \"Redirect URI\",\n type: \"string\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n },\n {\n name: \"scopes\",\n required: false,\n label: \"Scopes\",\n type: \"string\",\n placeholder: \"openid,profile,email\",\n },\n ],\n identity_ldap: [\n {\n name: \"server_addr\",\n required: true,\n label: \"Server Addr\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n type: \"string\",\n placeholder: \"myldapserver.com:636\",\n },\n {\n name: \"tls_skip_verify\",\n required: false,\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"off\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"server_insecure\",\n required: false,\n label: \"Server Insecure\",\n tooltip:\n 'Allow plain text connection to AD/LDAP server, defaults to \"off\"',\n type: \"on|off\",\n },\n {\n name: \"server_starttls\",\n required: false,\n label: \"Start TLS connection to AD/LDAP server\",\n tooltip: \"Use StartTLS connection to AD/LDAP server\",\n type: \"on|off\",\n },\n {\n name: \"lookup_bind_dn\",\n required: true,\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n },\n {\n name: \"lookup_bind_password\",\n required: false,\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n type: \"string\",\n placeholder: \"admin\",\n },\n {\n name: \"user_dn_search_base_dn\",\n required: false,\n label: \"User DN Search Base DN\",\n tooltip: \"Base LDAP DN to search for user DN\",\n type: \"csv\",\n placeholder: \"dc=myldapserver\",\n },\n {\n name: \"user_dn_search_filter\",\n required: false,\n label: \"User DN Search Filter\",\n tooltip: \"Search filter to lookup user DN\",\n type: \"string\",\n placeholder: \"(sAMAcountName=%s)\",\n },\n {\n name: \"group_search_filter\",\n required: false,\n label: \"Group Search Filter\",\n tooltip: \"Search filter for groups\",\n type: \"string\",\n placeholder: \"(&(objectclass=groupOfNames)(member=%d))\",\n },\n {\n name: \"group_search_base_dn\",\n required: false,\n label: \"Group Search Base DN\",\n tooltip: \"list of group search base DNs\",\n type: \"csv\",\n placeholder: \"dc=minioad,dc=local\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"Optionally add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n logger_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n};\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const selectSAs = (\n e: React.ChangeEvent,\n setSelectedSAs: Function,\n selectedSAs: string[]\n) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedSAs]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedSAs(elements);\n return elements;\n};\n","\"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: \"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z\"\n}), 'CallToAction');\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.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"\n}), 'Code');\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: \"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z\"\n}), 'Compress');\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 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\"\n}), 'FindReplace');\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 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z\"\n}), 'LocalHospital');\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 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z\"\n}), 'LockOpen');\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 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"\n}), 'Login');\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: \"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11c-.59-.57-1.07-1.25-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"\n}), 'PendingActions');\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.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n}), 'Public');\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: \"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\"\n}), 'SdStorage');\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.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"\n}), 'VpnKey');\n\nexports.default = _default;"],"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","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","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","configurationElements","icon","configuration_id","configuration_label","fieldsConfigurations","region","name","required","tooltip","type","placeholder","cache","multiline","compression","withBorder","api","heal","scanner","etcd","identity_openid","identity_ldap","logger_webhook","audit_webhook","removeEmptyFields","formFields","filter","field","value","selectSAs","e","setSelectedSAs","selectedSAs","targetD","target","checked","elements","push","element","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7798.21fc6f4a.chunk.js b/portal-ui/build/static/js/7798.21fc6f4a.chunk.js new file mode 100644 index 000000000..1aaa67997 --- /dev/null +++ b/portal-ui/build/static/js/7798.21fc6f4a.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7798,7015],{37798:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return C}});var o=n(1413),r=n(72791),a=n(26181),i=n.n(a),l=n(11135),s=n(25787),c=n(56028),u=n(61889),d=n(77196),p=n(63466),f=n(85531),m=n(78029),y=n.n(m),h=n(93656),g=n(23814),b=n(80184),v=(0,s.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,o.Z)((0,o.Z)({},g.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,o=e.value,r=void 0===o?"":o,a=e.classes,i=void 0===a?{}:a;return(0,b.jsxs)("div",{className:i.container,children:[(0,b.jsxs)("div",{className:i.inputLabel,children:[n,":"]}),(0,b.jsx)("div",{className:i.inputWithCopy,children:(0,b.jsx)(d.Z,{value:r,readOnly:!0,endAdornment:(0,b.jsx)(p.Z,{position:"end",children:(0,b.jsx)(y(),{text:r,children:(0,b.jsx)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,b.jsx)(h.TI,{})})})})})})]})})),x=n(89357),w=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)},C=(0,s.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,s=e.entity;if(!n)return null;var d=i()(n,"console",null),p=i()(n,"idp",!1);return(0,b.jsx)(c.Z,{modalOpen:a,onClose:function(){l()},title:(0,b.jsx)("div",{className:t.promptTitle,children:(0,b.jsxs)("div",{children:["New ",s," Created"]})}),titleIcon:(0,b.jsx)(h.tV,{}),children:(0,b.jsxs)(u.ZP,{container:!0,children:[(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",s," has been created with the following details:",!p&&d&&(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,b.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,t){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(v,{label:"Access Key",value:e.accessKey}),(0,b.jsx)(v,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(d)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(v,{label:"Access Key",value:d.accessKey}),(0,b.jsx)(v,{label:"Secret Key",value:d.secretKey})]})]})}),p?(0,b.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,b.jsxs)("div",{className:t.warningBlock,children:[(0,b.jsx)(x.Z,{}),(0,b.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,b.jsx)(u.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.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={};d&&(e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"});j("credentials.json",JSON.stringify((0,o.Z)({},e)))},icon:(0,b.jsx)(h._8,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,b.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={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));j("all_credentials.json",JSON.stringify((0,o.Z)({},e)))},icon:(0,b.jsx)(h._8,{}),variant:"contained",color:"primary"})]})})]})})}))},56028:function(e,t,n){"use strict";var o=n(29439),r=n(1413),a=n(72791),i=n(60364),l=n(13400),s=n(55646),c=n(5574),u=n(65661),d=n(39157),p=n(11135),f=n(25787),m=n(23814),y=n(42649),h=n(29823),g=n(28057),b=n(80184),v=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:y.MK});t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))(v((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,p=e.children,f=e.classes,m=e.wideLimit,y=void 0===m||m,v=e.modalSnackMessage,x=e.noContentPadding,w=e.setModalSnackMessage,j=e.titleIcon,C=void 0===j?null:j,O=(0,a.useState)(!1),S=(0,o.Z)(O,2),k=S[0],Z=S[1];(0,a.useEffect)((function(){w("")}),[w]),(0,a.useEffect)((function(){if(v){if(""===v.message)return void Z(!1);"error"!==v.type&&Z(!0)}}),[v]);var D=y?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return v&&(N=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(N=v.message)),(0,b.jsxs)(c.Z,(0,r.Z)((0,r.Z)({open:n,classes:f},D),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:f.root,children:[(0,b.jsxs)(u.Z,{className:f.title,children:[(0,b.jsxs)("div",{className:f.titleText,children:[C," ",i]}),(0,b.jsx)("div",{className:f.closeContainer,children:(0,b.jsx)(l.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(h.Z,{})})})]}),(0,b.jsx)(g.Z,{isModal:!0}),(0,b.jsx)(s.Z,{open:k,className:f.snackBarModal,onClose:function(){Z(!1),w("")},message:N,ContentProps:{className:"".concat(f.snackBar," ").concat(v&&"error"===v.type?f.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,b.jsx)(d.Z,{className:x?"":f.content,children:p})]}))})))},76998:function(e,t,n){"use strict";var o=n(42458),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,l,s,c,u=!1;t||(t={}),n=t.debug||!1;try{if(i=o(),l=document.createRange(),s=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(o){if(o.stopPropagation(),t.format)if(o.preventDefault(),"undefined"===typeof o.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=r[t.format]||r.default;window.clipboardData.setData(a,e)}else o.clipboardData.clearData(),o.clipboardData.setData(t.format,e);t.onCopy&&(o.preventDefault(),t.onCopy(o.clipboardData))})),document.body.appendChild(c),l.selectNodeContents(c),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),c&&document.body.removeChild(c),i()}return u}},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=a(n(72791)),r=a(n(76998));function a(e){return e&&e.__esModule?e:{default:e}}function i(e){return i="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},i(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n.\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 .\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 deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["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","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","deselectCurrent","require","clipboardToIE11Formatting","module","exports","options","debug","reselectPrevious","range","selection","mark","success","createRange","getSelection","textContent","all","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","Object","defineProperty","CopyToClipboard","_react","_interopRequireDefault","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","this","_len","arguments","args","_key","concat","_this$props","elem","Children","only","result","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7798.9bd6994f.chunk.js b/portal-ui/build/static/js/7798.9bd6994f.chunk.js deleted file mode 100644 index b733fb74e..000000000 --- a/portal-ui/build/static/js/7798.9bd6994f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7798,7015],{37798:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return C}});var o=n(1413),r=n(72791),a=n(26181),i=n.n(a),l=n(11135),s=n(25787),c=n(56028),u=n(61889),d=n(77196),p=n(63466),f=n(85531),m=n(78029),y=n.n(m),h=n(93656),g=n(23814),b=n(80184),v=(0,s.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,o.Z)((0,o.Z)({},g.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,o=e.value,r=void 0===o?"":o,a=e.classes,i=void 0===a?{}:a;return(0,b.jsxs)("div",{className:i.container,children:[(0,b.jsxs)("div",{className:i.inputLabel,children:[n,":"]}),(0,b.jsx)("div",{className:i.inputWithCopy,children:(0,b.jsx)(d.Z,{value:r,readOnly:!0,endAdornment:(0,b.jsx)(p.Z,{position:"end",children:(0,b.jsx)(y(),{text:r,children:(0,b.jsx)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,b.jsx)(h.TI,{})})})})})})]})})),x=n(89357),j=n(40603),w=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)},C=(0,s.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,s=e.entity;if(!n)return null;var d=i()(n,"console",null),p=i()(n,"idp",!1);return(0,b.jsx)(c.Z,{modalOpen:a,onClose:function(){l()},title:(0,b.jsx)("div",{className:t.promptTitle,children:(0,b.jsxs)("div",{children:["New ",s," Created"]})}),titleIcon:(0,b.jsx)(h.tV,{}),children:(0,b.jsxs)(u.ZP,{container:!0,children:[(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",s," has been created with the following details:",!p&&d&&(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,b.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,t){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(v,{label:"Access Key",value:e.accessKey}),(0,b.jsx)(v,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(d)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(v,{label:"Access Key",value:d.accessKey}),(0,b.jsx)(v,{label:"Secret Key",value:d.secretKey})]})]})}),p?(0,b.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,b.jsxs)("div",{className:t.warningBlock,children:[(0,b.jsx)(x.Z,{}),(0,b.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,b.jsx)(u.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.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={};d&&(e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"});w("credentials.json",JSON.stringify((0,o.Z)({},e)))},icon:(0,b.jsx)(h._8,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,b.jsx)(j.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={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));w("all_credentials.json",JSON.stringify((0,o.Z)({},e)))},icon:(0,b.jsx)(h._8,{}),variant:"contained",color:"primary"})]})})]})})}))},56028:function(e,t,n){"use strict";var o=n(29439),r=n(1413),a=n(72791),i=n(60364),l=n(13400),s=n(55646),c=n(5574),u=n(65661),d=n(39157),p=n(11135),f=n(25787),m=n(23814),y=n(42649),h=n(29823),g=n(28057),b=n(80184),v=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:y.MK});t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))(v((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,p=e.children,f=e.classes,m=e.wideLimit,y=void 0===m||m,v=e.modalSnackMessage,x=e.noContentPadding,j=e.setModalSnackMessage,w=e.titleIcon,C=void 0===w?null:w,O=(0,a.useState)(!1),S=(0,o.Z)(O,2),k=S[0],Z=S[1];(0,a.useEffect)((function(){j("")}),[j]),(0,a.useEffect)((function(){if(v){if(""===v.message)return void Z(!1);"error"!==v.type&&Z(!0)}}),[v]);var D=y?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return v&&(N=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(N=v.message)),(0,b.jsxs)(c.Z,(0,r.Z)((0,r.Z)({open:n,classes:f},D),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:f.root,children:[(0,b.jsxs)(u.Z,{className:f.title,children:[(0,b.jsxs)("div",{className:f.titleText,children:[C," ",i]}),(0,b.jsx)("div",{className:f.closeContainer,children:(0,b.jsx)(l.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(h.Z,{})})})]}),(0,b.jsx)(g.Z,{isModal:!0}),(0,b.jsx)(s.Z,{open:k,className:f.snackBarModal,onClose:function(){Z(!1),j("")},message:N,ContentProps:{className:"".concat(f.snackBar," ").concat(v&&"error"===v.type?f.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,b.jsx)(d.Z,{className:x?"":f.content,children:p})]}))})))},29823: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:"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=i},76998:function(e,t,n){"use strict";var o=n(42458),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,l,s,c,u=!1;t||(t={}),n=t.debug||!1;try{if(i=o(),l=document.createRange(),s=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(o){if(o.stopPropagation(),t.format)if(o.preventDefault(),"undefined"===typeof o.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=r[t.format]||r.default;window.clipboardData.setData(a,e)}else o.clipboardData.clearData(),o.clipboardData.setData(t.format,e);t.onCopy&&(o.preventDefault(),t.onCopy(o.clipboardData))})),document.body.appendChild(c),l.selectNodeContents(c),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),c&&document.body.removeChild(c),i()}return u}},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=a(n(72791)),r=a(n(76998));function a(e){return e&&e.__esModule?e:{default:e}}function i(e){return i="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},i(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n.\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 .\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;","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["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","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","deselectCurrent","clipboardToIE11Formatting","module","options","debug","reselectPrevious","range","selection","mark","success","createRange","getSelection","textContent","all","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","Object","defineProperty","CopyToClipboard","_react","_copyToClipboard","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_React$PureComponent","_getPrototypeOf2","_this","this","_len","arguments","args","_key","concat","_this$props","elem","Children","only","result","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props2","cloneElement","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7821.a2c85c06.chunk.js b/portal-ui/build/static/js/7821.a2c85c06.chunk.js new file mode 100644 index 000000000..488cbfc52 --- /dev/null +++ b/portal-ui/build/static/js/7821.a2c85c06.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7821],{75578:function(n,e,r){var o=r(1413),t=r(72791),i=r(80184);e.Z=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function r(r){return(0,i.jsx)(t.Suspense,{fallback:e,children:(0,i.jsx)(n,(0,o.Z)({},r))})}return r}},47821:function(n,e,r){r.r(e);var o=r(72791),t=r(62666),i=r(79271),a=r(60364),c=r(42649),u=r(50099),l=r(75578),s=r(56087),d=r(80184),p=(0,l.Z)(o.lazy((function(){return Promise.all([r.e(5171),r.e(2983),r.e(4133)]).then(r.bind(r,94874))}))),f=(0,l.Z)(o.lazy((function(){return Promise.all([r.e(5171),r.e(5561),r.e(5609),r.e(2983),r.e(1955)]).then(r.bind(r,23533))}))),m=(0,a.$j)((function(n){return{open:n.system.sidebarOpen}}),{setMenuOpen:c.gG});e.default=(0,i.EN)(m((function(){return(0,d.jsx)(i.F0,{history:t.Z,children:(0,d.jsxs)(i.rs,{children:[(0,d.jsx)(i.AW,{path:s.gA.POLICIES,exact:!0,component:p}),(0,d.jsx)(i.AW,{path:"".concat(s.gA.POLICIES,"/*"),component:f}),(0,d.jsx)(i.AW,{path:"/",component:p}),(0,d.jsx)(i.AW,{component:u.Z})]})})})))},50099:function(n,e,r){r.d(e,{Z:function(){return l}});r(72791);var o=r(64554),t=r(20890),i=r(23060),a=r(80184);function c(){return(0,a.jsxs)(t.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,a.jsx)(i.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var u=r(74794),l=function(){return(0,a.jsx)(u.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)(c,{})})]})})}},23060:function(n,e,r){r.d(e,{Z:function(){return w}});var o=r(29439),t=r(4942),i=r(63366),a=r(87462),c=r(72791),u=r(28182),l=r(90767),s=r(18529),d=r(12065),p=r(14036),f=r(47630),m=r(93736),h=r(23031),x=r(42071),Z=r(20890),v=r(95159);function y(n){return(0,v.Z)("MuiLink",n)}var b=(0,r(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),g=r(80184),j=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},k=(0,f.ZP)(Z.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(n,e){var r=n.ownerState;return[e.root,e["underline".concat((0,p.Z)(r.underline))],"button"===r.component&&e.button]}})((function(n){var e=n.theme,r=n.ownerState,o=(0,s.D)(e,"palette.".concat(function(n){return S[n]||n}(r.color)))||r.color;return(0,a.Z)({},"none"===r.underline&&{textDecoration:"none"},"hover"===r.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===r.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==o?(0,d.Fq)(o,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===r.component&&(0,t.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(b.focusVisible),{outline:"auto"}))})),w=c.forwardRef((function(n,e){var r=(0,m.Z)({props:n,name:"MuiLink"}),t=r.className,s=r.color,d=void 0===s?"primary":s,f=r.component,Z=void 0===f?"a":f,v=r.onBlur,b=r.onFocus,S=r.TypographyClasses,w=r.underline,C=void 0===w?"always":w,A=r.variant,F=void 0===A?"inherit":A,D=(0,i.Z)(r,j),M=(0,h.Z)(),W=M.isFocusVisibleRef,z=M.onBlur,I=M.onFocus,L=M.ref,P=c.useState(!1),V=(0,o.Z)(P,2),N=V[0],O=V[1],R=(0,x.Z)(e,L),B=(0,a.Z)({},r,{color:d,component:Z,focusVisible:N,underline:C,variant:F}),E=function(n){var e=n.classes,r=n.component,o=n.focusVisible,t=n.underline,i={root:["root","underline".concat((0,p.Z)(t)),"button"===r&&"button",o&&"focusVisible"]};return(0,l.Z)(i,y,e)}(B);return(0,g.jsx)(k,(0,a.Z)({className:(0,u.Z)(E.root,t),classes:S,color:d,component:Z,onBlur:function(n){z(n),!1===W.current&&O(!1),v&&v(n)},onFocus:function(n){I(n),!0===W.current&&O(!0),b&&b(n)},ref:R,ownerState:B,variant:F},D))}))}}]); +//# sourceMappingURL=7821.a2c85c06.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7821.a2c85c06.chunk.js.map b/portal-ui/build/static/js/7821.a2c85c06.chunk.js.map new file mode 100644 index 000000000..b7138aabe --- /dev/null +++ b/portal-ui/build/static/js/7821.a2c85c06.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7821.a2c85c06.chunk.js","mappings":"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","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Policies/Policies.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, { 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","// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport history from \"../../../history\";\nimport { 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 withSuspense from \"../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nconst ListPolicies = withSuspense(React.lazy(() => import(\"./ListPolicies\")));\nconst PolicyDetails = withSuspense(React.lazy(() => import(\"./PolicyDetails\")));\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Policies = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default withRouter(connector(Policies));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","ListPolicies","withSuspense","React","PolicyDetails","connector","connect","state","open","system","sidebarOpen","setMenuOpen","withRouter","history","path","IAM_PAGES","exact","component","NotFoundPage","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","styles","ownerState","root","capitalize","underline","button","theme","getPath","transformDeprecatedColors","_extends","textDecoration","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","backgroundColor","outline","border","borderRadius","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","className","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","classes","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7821.f798ffe1.chunk.js b/portal-ui/build/static/js/7821.f798ffe1.chunk.js deleted file mode 100644 index e5163c2ad..000000000 --- a/portal-ui/build/static/js/7821.f798ffe1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7821],{75578:function(n,e,r){var o=r(1413),t=r(72791),i=r(80184);e.Z=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function r(r){return(0,i.jsx)(t.Suspense,{fallback:e,children:(0,i.jsx)(n,(0,o.Z)({},r))})}return r}},74794:function(n,e,r){var o=r(1413),t=(r(72791),r(61889)),i=r(11135),a=r(25787),c=r(23814),l=r(80184);e.Z=(0,a.Z)((function(n){return(0,i.Z)((0,o.Z)({},c.Bw))}))((function(n){var e=n.classes,r=n.className,o=void 0===r?"":r,i=n.children;return(0,l.jsx)("div",{className:e.contentSpacer,children:(0,l.jsx)(t.ZP,{container:!0,children:(0,l.jsx)(t.ZP,{item:!0,xs:12,className:o,children:i})})})}))},47821:function(n,e,r){r.r(e);var o=r(72791),t=r(62666),i=r(79271),a=r(60364),c=r(42649),l=r(50099),u=r(75578),s=r(56087),d=r(80184),f=(0,u.Z)(o.lazy((function(){return Promise.all([r.e(5171),r.e(2879),r.e(2983),r.e(4874)]).then(r.bind(r,94874))}))),p=(0,u.Z)(o.lazy((function(){return Promise.all([r.e(5171),r.e(5561),r.e(5609),r.e(2983),r.e(1955)]).then(r.bind(r,23533))}))),m=(0,a.$j)((function(n){return{open:n.system.sidebarOpen}}),{setMenuOpen:c.gG});e.default=(0,i.EN)(m((function(){return(0,d.jsx)(i.F0,{history:t.Z,children:(0,d.jsxs)(i.rs,{children:[(0,d.jsx)(i.AW,{path:s.gA.POLICIES,exact:!0,component:f}),(0,d.jsx)(i.AW,{path:"".concat(s.gA.POLICIES,"/*"),component:p}),(0,d.jsx)(i.AW,{path:"/",component:f}),(0,d.jsx)(i.AW,{component:l.Z})]})})})))},50099:function(n,e,r){r.d(e,{Z:function(){return u}});r(72791);var o=r(64554),t=r(20890),i=r(23060),a=r(80184);function c(){return(0,a.jsxs)(t.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,a.jsx)(i.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var l=r(74794),u=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)(c,{})})]})})}},23060:function(n,e,r){r.d(e,{Z:function(){return k}});var o=r(29439),t=r(4942),i=r(63366),a=r(87462),c=r(72791),l=r(28182),u=r(90767),s=r(18529),d=r(12065),f=r(14036),p=r(47630),m=r(93736),h=r(23031),x=r(42071),Z=r(20890),v=r(95159);function y(n){return(0,v.Z)("MuiLink",n)}var b=(0,r(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),g=r(80184),j=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},w=(0,p.ZP)(Z.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(n,e){var r=n.ownerState;return[e.root,e["underline".concat((0,f.Z)(r.underline))],"button"===r.component&&e.button]}})((function(n){var e=n.theme,r=n.ownerState,o=(0,s.D)(e,"palette.".concat(function(n){return S[n]||n}(r.color)))||r.color;return(0,a.Z)({},"none"===r.underline&&{textDecoration:"none"},"hover"===r.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===r.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==o?(0,d.Fq)(o,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===r.component&&(0,t.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(b.focusVisible),{outline:"auto"}))})),k=c.forwardRef((function(n,e){var r=(0,m.Z)({props:n,name:"MuiLink"}),t=r.className,s=r.color,d=void 0===s?"primary":s,p=r.component,Z=void 0===p?"a":p,v=r.onBlur,b=r.onFocus,S=r.TypographyClasses,k=r.underline,C=void 0===k?"always":k,A=r.variant,F=void 0===A?"inherit":A,D=(0,i.Z)(r,j),N=(0,h.Z)(),P=N.isFocusVisibleRef,M=N.onBlur,W=N.onFocus,z=N.ref,I=c.useState(!1),L=(0,o.Z)(I,2),V=L[0],B=L[1],O=(0,x.Z)(e,z),R=(0,a.Z)({},r,{color:d,component:Z,focusVisible:V,underline:C,variant:F}),E=function(n){var e=n.classes,r=n.component,o=n.focusVisible,t=n.underline,i={root:["root","underline".concat((0,f.Z)(t)),"button"===r&&"button",o&&"focusVisible"]};return(0,u.Z)(i,y,e)}(R);return(0,g.jsx)(w,(0,a.Z)({className:(0,l.Z)(E.root,t),classes:S,color:d,component:Z,onBlur:function(n){M(n),!1===P.current&&B(!1),v&&v(n)},onFocus:function(n){W(n),!0===P.current&&B(!0),b&&b(n)},ref:O,ownerState:R,variant:F},D))}))}}]); -//# sourceMappingURL=7821.f798ffe1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7821.f798ffe1.chunk.js.map b/portal-ui/build/static/js/7821.f798ffe1.chunk.js.map deleted file mode 100644 index d447f91d5..000000000 --- a/portal-ui/build/static/js/7821.f798ffe1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7821.f798ffe1.chunk.js","mappings":"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","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Policies/Policies.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, { 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","// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport history from \"../../../history\";\nimport { 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 withSuspense from \"../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nconst ListPolicies = withSuspense(React.lazy(() => import(\"./ListPolicies\")));\nconst PolicyDetails = withSuspense(React.lazy(() => import(\"./PolicyDetails\")));\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Policies = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default withRouter(connector(Policies));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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":["WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","ListPolicies","withSuspense","React","PolicyDetails","connector","connect","state","open","system","sidebarOpen","setMenuOpen","withRouter","history","path","IAM_PAGES","exact","component","NotFoundPage","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","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/7923.552889f9.chunk.js b/portal-ui/build/static/js/7923.552889f9.chunk.js new file mode 100644 index 000000000..87f51d1e5 --- /dev/null +++ b/portal-ui/build/static/js/7923.552889f9.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7923],{26759:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var r=o(t(45649)),i=t(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var r=o(t(45649)),i=t(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var r=o(t(45649)),i=t(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return c},_i:function(){return l},pQ:function(){return u},uU:function(){return s}});var o=t(29439),r=t(72791),i=t(80184),a=r.createContext(null);function c(e){var n=e.children,t=e.value,c=function(){var e=r.useState(null),n=(0,o.Z)(e,2),t=n[0],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),l=r.useMemo((function(){return{idPrefix:c,value:t}}),[c,t]);return(0,i.jsx)(a.Provider,{value:l,children:n})}function l(){return r.useContext(a)}function s(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function u(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var o=t(87462),r=t(63366),i=t(72791),a=t(18073),c=t(83449),l=t(80184),s=["children"],u=i.forwardRef((function(e,n){var t=e.children,u=(0,r.Z)(e,s),d=(0,c._i)();if(null===d)throw new TypeError("No TabContext provided");var v=i.Children.map(t,(function(e){return i.isValidElement(e)?i.cloneElement(e,{"aria-controls":(0,c.uU)(d,e.props.value),id:(0,c.pQ)(d,e.props.value)}):null}));return(0,l.jsx)(a.Z,(0,o.Z)({},u,{ref:n,value:d.value,children:v}))}));n.Z=u},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var o=t(87462),r=t(63366),i=t(72791),a=t(28182),c=t(47630),l=t(93736),s=t(90767),u=t(95159);function d(e){return(0,u.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var v=t(83449),p=t(80184),f=["children","className","value"],h=(0,c.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),m=i.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTabPanel"}),i=t.children,c=t.className,u=t.value,m=(0,r.Z)(t,f),Z=(0,o.Z)({},t),b=function(e){var n=e.classes;return(0,s.Z)({root:["root"]},d,n)}(Z),x=(0,v._i)();if(null===x)throw new TypeError("No TabContext provided");var P=(0,v.uU)(x,u),w=(0,v.pQ)(x,u);return(0,p.jsx)(h,(0,o.Z)({"aria-labelledby":w,className:(0,a.Z)(b.root,c),hidden:u!==x.value,id:P,ref:n,role:"tabpanel",ownerState:Z},m,{children:u===x.value&&i}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return E}});var o=t(4942),r=t(63366),i=t(87462),a=t(72791),c=t(90767),l=t(12065),s=t(97278),u=t(76189),d=t(80184),v=(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"),p=(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"),f=(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"),h=t(14036),m=t(93736),Z=t(47630),b=t(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var P=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),w=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],z=(0,Z.ZP)(s.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,r=e.ownerState;return(0,i.Z)({color:t.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,l.Fq)("default"===r.color?t.palette.action.active:t.palette[r.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(n={},(0,o.Z)(n,"&.".concat(P.checked,", &.").concat(P.indeterminate),{color:t.palette[r.color].main}),(0,o.Z)(n,"&.".concat(P.disabled),{color:t.palette.action.disabled}),n))})),k=(0,d.jsx)(p,{}),j=(0,d.jsx)(v,{}),M=(0,d.jsx)(f,{}),E=a.forwardRef((function(e,n){var t,o,l=(0,m.Z)({props:e,name:"MuiCheckbox"}),s=l.checkedIcon,u=void 0===s?k:s,v=l.color,p=void 0===v?"primary":v,f=l.icon,Z=void 0===f?j:f,b=l.indeterminate,P=void 0!==b&&b,E=l.indeterminateIcon,S=void 0===E?M:E,g=l.inputProps,y=l.size,C=void 0===y?"medium":y,R=(0,r.Z)(l,w),T=P?S:Z,I=P?S:u,H=(0,i.Z)({},l,{color:p,indeterminate:P,size:C}),L=function(e){var n=e.classes,t=e.indeterminate,o=e.color,r={root:["root",t&&"indeterminate","color".concat((0,h.Z)(o))]},a=(0,c.Z)(r,x,n);return(0,i.Z)({},n,a)}(H);return(0,d.jsx)(z,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":P},g),icon:a.cloneElement(T,{fontSize:null!=(t=T.props.fontSize)?t:C}),checkedIcon:a.cloneElement(I,{fontSize:null!=(o=I.props.fontSize)?o:C}),ownerState:H,ref:n},R,{classes:L}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return z}});var o=t(4942),r=t(63366),i=t(87462),a=t(72791),c=t(28182),l=t(90767),s=t(14036),u=t(20890),d=t(93840),v=t(52930),p=t(47630),f=t(95159);function h(e){return(0,f.Z)("MuiInputAdornment",e)}var m,Z=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=t(93736),x=t(80184),P=["children","className","component","disablePointerEvents","disableTypography","position","variant"],w=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,s.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"})})),z=a.forwardRef((function(e,n){var t=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=t.children,p=t.className,f=t.component,Z=void 0===f?"div":f,z=t.disablePointerEvents,k=void 0!==z&&z,j=t.disableTypography,M=void 0!==j&&j,E=t.position,S=t.variant,g=(0,r.Z)(t,P),y=(0,v.Z)()||{},C=S;S&&y.variant,y&&!C&&(C=y.variant);var R=(0,i.Z)({},t,{hiddenLabel:y.hiddenLabel,size:y.size,disablePointerEvents:k,position:E,variant:C}),T=function(e){var n=e.classes,t=e.disablePointerEvents,o=e.hiddenLabel,r=e.position,i=e.size,a=e.variant,c={root:["root",t&&"disablePointerEvents",r&&"position".concat((0,s.Z)(r)),a,o&&"hiddenLabel",i&&"size".concat((0,s.Z)(i))]};return(0,l.Z)(c,h,n)}(R);return(0,x.jsx)(d.Z.Provider,{value:null,children:(0,x.jsx)(w,(0,i.Z)({as:Z,ownerState:R,className:(0,c.Z)(T.root,p),ref:n},g,{children:"string"!==typeof o||M?(0,x.jsxs)(a.Fragment,{children:["start"===E?m||(m=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(u.Z,{color:"text.secondary",children:o})}))})}))},26769:function(e,n,t){var o=t(39066),r=t(93629),i=t(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&i(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=7923.552889f9.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7923.552889f9.chunk.js.map b/portal-ui/build/static/js/7923.552889f9.chunk.js.map new file mode 100644 index 000000000..1146ef3e5 --- /dev/null +++ b/portal-ui/build/static/js/7923.552889f9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7923.552889f9.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/ViewColumn.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.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: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. 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":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","React","TabContext","props","children","value","idPrefix","id","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","root","padding","theme","spacing","inProps","useThemeProps","className","ownerState","classes","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","color","capitalize","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","slots","composedClasses","type","fontSize","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7931.9fe0101a.chunk.js b/portal-ui/build/static/js/7931.9fe0101a.chunk.js deleted file mode 100644 index 8e315a7d8..000000000 --- a/portal-ui/build/static/js/7931.9fe0101a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7931,8760,9362,2879],{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},37267: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)("circle",{cx:"12",cy:"12",r:"8"}),"FiberManualRecord");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},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});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"),m=(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=n(14036),f=n(93736),Z=n(47630),b=n(95159);function x(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"],j=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.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,h.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),k=(0,u.jsx)(v,{}),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?k:l,p=s.color,v=void 0===p?"primary":p,m=s.icon,Z=void 0===m?w:m,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,S=void 0===g?P:g,E=s.inputProps,M=s.size,C=void 0===M?"medium":M,I=(0,r.Z)(s,y),H=z?S:Z,L=z?S:d,O=(0,i.Z)({},s,{color:v,indeterminate:z,size:C}),R=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(O);return(0,u.jsx)(j,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},E),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:C}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:C}),ownerState:O,ref:t},I,{classes:R}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});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),m=n(95159);function h(e){return(0,m.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],y=(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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),j=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,m=n.component,Z=void 0===m?"div":m,j=n.disablePointerEvents,k=void 0!==j&&j,w=n.disableTypography,P=void 0!==w&&w,g=n.position,S=n.variant,E=(0,r.Z)(n,z),M=(0,p.Z)()||{},C=S;S&&M.variant,M&&!C&&(C=M.variant);var I=(0,i.Z)({},n,{hiddenLabel:M.hiddenLabel,size:M.size,disablePointerEvents:k,position:g,variant:C}),H=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,h,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(y,(0,i.Z)({as:Z,ownerState:I,className:(0,c.Z)(H.root,v),ref:t},E,{children:"string"!==typeof o||P?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(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=7931.9fe0101a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7931.9fe0101a.chunk.js.map b/portal-ui/build/static/js/7931.9fe0101a.chunk.js.map deleted file mode 100644 index cd19e7f9d..000000000 --- a/portal-ui/build/static/js/7931.9fe0101a.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/7931.9fe0101a.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/FiberManualRecord.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":["\"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)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"8\"\n}), 'FiberManualRecord');\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":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","cx","cy","r","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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_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/8138.4c6a5b7f.chunk.js b/portal-ui/build/static/js/8138.4c6a5b7f.chunk.js deleted file mode 100644 index cfbd9e5ea..000000000 --- a/portal-ui/build/static/js/8138.4c6a5b7f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8138],{40603:function(e,t,o){var n=o(1413),r=o(45987),a=(o(72791),o(85531)),i=o(72455),c=o(80184),l=["onClick","text","disabled","tooltip","icon","className"],s=(0,i.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=s(e),o=e.onClick,i=e.text,d=void 0===i?"":i,u=e.disabled,f=void 0!==u&&u,m=e.tooltip,p=e.icon,x=void 0===p?null:p,h=e.className,g=void 0===h?"":h,b=(0,r.Z)(e,l);return(0,c.jsxs)(a.Z,(0,n.Z)((0,n.Z)({className:g,classes:t,tooltip:m||d,variant:"outlined",onClick:o,disabled:f,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},b),{},{children:[(0,c.jsx)("span",{children:d})," ",x]}))}},92217:function(e,t,o){var n=o(93433),r=o(29439),a=o(1413),i=o(72791),c=o(61889),l=(o(2574),o(69874)),s=o(9461),d=o(73975),u=o(80745),f=o(30829),m=o(20068),p=o(64554),x=o(11135),h=o(25787),g=o(84570),b=o(23814),Z=o(93656),y=o(40603),j=o(78029),v=o.n(j),k=o(64294),C=o(80184),S={json:d.AV,yaml:function(){return s.i.define(u.r)}},B=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});t.Z=(0,h.Z)((function(e){return(0,x.Z)((0,a.Z)({},b.YI))}))((function(e){var t=e.value,o=e.label,a=void 0===o?"":o,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,h=e.classes,b=e.onBeforeChange,j=e.readOnly,k=void 0!==j&&j,N=e.editorHeight,w=void 0===N?"250px":N,P=(0,i.useState)(!1),E=(0,r.Z)(P,2),F=E[0],z=E[1],L=[];return S[x]&&(L=[].concat((0,n.Z)(L),[S[x]()])),(0,C.jsxs)(i.Fragment,{children:[(0,C.jsxs)(f.Z,{className:h.inputLabel,children:[(0,C.jsx)("span",{children:a}),""!==d&&(0,C.jsx)("div",{className:h.tooltipContainer,children:(0,C.jsx)(m.Z,{title:d,placement:"top-start",children:(0,C.jsx)("div",{className:h.tooltip,children:(0,C.jsx)(g.Z,{})})})})]}),(0,C.jsx)(c.ZP,{item:!0,xs:12,children:(0,C.jsx)("br",{})}),(0,C.jsxs)(c.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,C.jsx)(c.ZP,{item:!0,xs:12,children:(0,C.jsx)(l.ZP,{value:t,theme:F?M:B,extensions:L,editable:!k,basicSetup:!0,height:w,onChange:function(e,t){b(null,null,e)}})}),(0,C.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,C.jsxs)(p.Z,{className:F?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,C.jsx)(y.Z,{tooltip:"Change theme",onClick:function(){z(!F)},text:"",icon:(0,C.jsx)(Z.EO,{}),color:"primary",variant:"outlined"}),(0,C.jsx)(v(),{text:t,children:(0,C.jsx)(y.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,C.jsx)(Z.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,t,o){var n=o(29439),r=o(1413),a=o(72791),i=o(60364),c=o(13400),l=o(55646),s=o(5574),d=o(65661),u=o(39157),f=o(11135),m=o(25787),p=o(23814),x=o(42649),h=o(29823),g=o(28057),b=o(80184),Z=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});t.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 t=e.onClose,o=e.modalOpen,i=e.title,f=e.children,m=e.classes,p=e.wideLimit,x=void 0===p||p,Z=e.modalSnackMessage,y=e.noContentPadding,j=e.setModalSnackMessage,v=e.titleIcon,k=void 0===v?null:v,C=(0,a.useState)(!1),S=(0,n.Z)(C,2),B=S[0],M=S[1];(0,a.useEffect)((function(){j("")}),[j]),(0,a.useEffect)((function(){if(Z){if(""===Z.message)return void M(!1);"error"!==Z.type&&M(!0)}}),[Z]);var N=x?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return Z&&(w=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(w=Z.message)),(0,b.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:o,classes:m},N),{},{scroll:"paper",onClose:function(e,o){"backdropClick"!==o&&t()},className:m.root,children:[(0,b.jsxs)(d.Z,{className:m.title,children:[(0,b.jsxs)("div",{className:m.titleText,children:[k," ",i]}),(0,b.jsx)("div",{className:m.closeContainer,children:(0,b.jsx)(c.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(h.Z,{})})})]}),(0,b.jsx)(g.Z,{isModal:!0}),(0,b.jsx)(l.Z,{open:B,className:m.snackBarModal,onClose:function(){M(!1),j("")},message:w,ContentProps:{className:"".concat(m.snackBar," ").concat(Z&&"error"===Z.type?m.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,b.jsx)(u.Z,{className:y?"":m.content,children:f})]}))})))},82859:function(e,t,o){o.r(t);var n=o(29439),r=o(1413),a=o(72791),i=o(60364),c=o(61889),l=o(40986),s=o(36151),d=o(11135),u=o(25787),f=o(81207),m=o(42649),p=o(23814),x=o(56028),h=o(92217),g=o(93656),b=o(80184),Z={setModalErrorSnackMessage:m.zb},y=(0,i.$j)(null,Z);t.default=(0,u.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right"},errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},p.ID),p.YI))}))(y((function(e){var t=e.classes,o=e.open,r=e.closeModalAndRefresh,i=e.tenant,d=e.namespace,u=e.setModalErrorSnackMessage,m=(0,a.useState)(!1),p=(0,n.Z)(m,2),Z=p[0],y=p[1],j=(0,a.useState)(!1),v=(0,n.Z)(j,2),k=v[0],C=v[1],S=(0,a.useState)(""),B=(0,n.Z)(S,2),M=B[0],N=B[1],w=(0,a.useState)(""),P=(0,n.Z)(w,2),E=P[0],F=P[1];(0,a.useEffect)((function(){f.Z.invoke("GET","/api/v1/namespaces/".concat(d,"/tenants/").concat(i,"/yaml")).then((function(e){C(!1),N(e.yaml)})).catch((function(e){C(!1),u(e)}))}),[i,d,u]),(0,a.useEffect)((function(){}),[]);var z=""!==M.trim();return(0,b.jsxs)(x.Z,{modalOpen:o,onClose:function(){r(!1)},title:"YAML",titleIcon:(0,b.jsx)(g.wK,{}),children:[Z||k&&(0,b.jsx)(c.ZP,{item:!0,xs:12,children:(0,b.jsx)(l.Z,{})}),""!==E&&(0,b.jsx)("div",{className:t.errorState,children:E}),!k&&(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),Z||(y(!0),F(""),f.Z.invoke("PUT","/api/v1/namespaces/".concat(d,"/tenants/").concat(i,"/yaml"),{yaml:M}).then((function(e){y(!1),r(!0),F("")})).catch((function(e){y(!1),F(e.errorMessage)})))},children:(0,b.jsxs)(c.ZP,{container:!0,children:[(0,b.jsx)(c.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:(0,b.jsx)(h.Z,{label:"Tenant Specification",value:M,mode:"yaml",onBeforeChange:function(e,t,o){N(o)},editorHeight:"550px"})}),(0,b.jsxs)(c.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,b.jsx)(s.Z,{type:"button",variant:"outlined",color:"primary",disabled:Z,onClick:function(){r(!1)},children:"Cancel"}),(0,b.jsx)(s.Z,{type:"submit",variant:"contained",color:"primary",disabled:Z||!z,children:"Save"})]})]})})]})})))},29823:function(e,t,o){var n=o(95318);t.Z=void 0;var r=n(o(45649)),a=o(80184),i=(0,r.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");t.Z=i},61120:function(e,t,o){function n(e){return n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(e)}o.d(t,{Z:function(){return n}})},60136:function(e,t,o){o.d(t,{Z:function(){return r}});var n=o(89611);function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,n.Z)(e,t)}},6215:function(e,t,o){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)}o.d(t,{Z:function(){return a}});var r=o(97326);function a(e,t){if(t&&("object"===n(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]); -//# sourceMappingURL=8138.4c6a5b7f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8138.4c6a5b7f.chunk.js.map b/portal-ui/build/static/js/8138.4c6a5b7f.chunk.js.map deleted file mode 100644 index 2a22dcdc0..000000000 --- a/portal-ui/build/static/js/8138.4c6a5b7f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8138.4c6a5b7f.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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, { 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 });\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../common/api\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { EditYamlIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => void;\n tenant: string;\n namespace: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst TenantYAML = ({\n classes,\n open,\n closeModalAndRefresh,\n tenant,\n namespace,\n setModalErrorSnackMessage,\n}: ITenantYAMLProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n setErrorMessage(\"\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n // check the permissions for creating bucket\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [tenant, namespace, setModalErrorSnackMessage]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title={`YAML`}\n titleIcon={}\n >\n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n
    {errorMessage}
    \n )}\n\n {!loading && (\n ) => {\n updateTenant(e);\n }}\n >\n \n \n {\n setTenantYaml(value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\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(TenantYAML));\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":["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","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","borderRight","fontWeight","dark","darkTheme","withStyles","createStyles","fieldBasic","value","label","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","inputLabel","tooltipContainer","title","placement","item","xs","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","background","alignItems","paddingRight","justifyContent","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","disableRipple","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","errorState","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","closeModalAndRefresh","tenant","namespace","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","api","then","res","catch","err","validSave","trim","noValidate","autoComplete","onSubmit","e","preventDefault","container","editor","data","modalButtonBar","_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/8138.5e1c08de.chunk.js b/portal-ui/build/static/js/8138.5e1c08de.chunk.js new file mode 100644 index 000000000..161b9e484 --- /dev/null +++ b/portal-ui/build/static/js/8138.5e1c08de.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8138],{92217:function(e,t,o){var n=o(93433),r=o(29439),a=o(1413),c=o(72791),i=o(61889),l=(o(2574),o(69874)),s=o(9461),d=o(73975),u=o(80745),f=o(30829),m=o(20068),p=o(64554),x=o(11135),h=o(25787),g=o(84570),b=o(23814),Z=o(93656),j=o(40603),y=o(78029),k=o.n(y),v=o(64294),C=o(80184),S={json:d.AV,yaml:function(){return s.i.define(u.r)}},B=v.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=v.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,h.Z)((function(e){return(0,x.Z)((0,a.Z)({},b.YI))}))((function(e){var t=e.value,o=e.label,a=void 0===o?"":o,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,h=e.classes,b=e.onBeforeChange,y=e.readOnly,v=void 0!==y&&y,N=e.editorHeight,P=void 0===N?"250px":N,E=(0,c.useState)(!1),w=(0,r.Z)(E,2),F=w[0],O=w[1],L=[];return S[x]&&(L=[].concat((0,n.Z)(L),[S[x]()])),(0,C.jsxs)(c.Fragment,{children:[(0,C.jsxs)(f.Z,{className:h.inputLabel,children:[(0,C.jsx)("span",{children:a}),""!==d&&(0,C.jsx)("div",{className:h.tooltipContainer,children:(0,C.jsx)(m.Z,{title:d,placement:"top-start",children:(0,C.jsx)("div",{className:h.tooltip,children:(0,C.jsx)(g.Z,{})})})})]}),(0,C.jsx)(i.ZP,{item:!0,xs:12,children:(0,C.jsx)("br",{})}),(0,C.jsxs)(i.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,C.jsx)(i.ZP,{item:!0,xs:12,children:(0,C.jsx)(l.ZP,{value:t,theme:F?M:B,extensions:L,editable:!v,basicSetup:!0,height:P,onChange:function(e,t){b(null,null,e)}})}),(0,C.jsx)(i.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,C.jsxs)(p.Z,{className:F?"dark-theme":"",sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}},"&.dark-theme button":{background:"#FFFFFF"}},children:[(0,C.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){O(!F)},text:"",icon:(0,C.jsx)(Z.EO,{}),color:"primary",variant:"outlined"}),(0,C.jsx)(k(),{text:t,children:(0,C.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,C.jsx)(Z.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,t,o){var n=o(29439),r=o(1413),a=o(72791),c=o(60364),i=o(13400),l=o(55646),s=o(5574),d=o(65661),u=o(39157),f=o(11135),m=o(25787),p=o(23814),x=o(42649),h=o(29823),g=o(28057),b=o(80184),Z=(0,c.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});t.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 t=e.onClose,o=e.modalOpen,c=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,k=e.titleIcon,v=void 0===k?null:k,C=(0,a.useState)(!1),S=(0,n.Z)(C,2),B=S[0],M=S[1];(0,a.useEffect)((function(){y("")}),[y]),(0,a.useEffect)((function(){if(Z){if(""===Z.message)return void M(!1);"error"!==Z.type&&M(!0)}}),[Z]);var N=x?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return Z&&(P=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(P=Z.message)),(0,b.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:o,classes:m},N),{},{scroll:"paper",onClose:function(e,o){"backdropClick"!==o&&t()},className:m.root,children:[(0,b.jsxs)(d.Z,{className:m.title,children:[(0,b.jsxs)("div",{className:m.titleText,children:[v," ",c]}),(0,b.jsx)("div",{className:m.closeContainer,children:(0,b.jsx)(i.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(h.Z,{})})})]}),(0,b.jsx)(g.Z,{isModal:!0}),(0,b.jsx)(l.Z,{open:B,className:m.snackBarModal,onClose:function(){M(!1),y("")},message:P,ContentProps:{className:"".concat(m.snackBar," ").concat(Z&&"error"===Z.type?m.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,b.jsx)(u.Z,{className:j?"":m.content,children:f})]}))})))},82859:function(e,t,o){o.r(t);var n=o(29439),r=o(1413),a=o(72791),c=o(60364),i=o(61889),l=o(40986),s=o(36151),d=o(11135),u=o(25787),f=o(81207),m=o(42649),p=o(23814),x=o(56028),h=o(92217),g=o(93656),b=o(80184),Z={setModalErrorSnackMessage:m.zb},j=(0,c.$j)(null,Z);t.default=(0,u.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right"},errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},p.ID),p.YI))}))(j((function(e){var t=e.classes,o=e.open,r=e.closeModalAndRefresh,c=e.tenant,d=e.namespace,u=e.setModalErrorSnackMessage,m=(0,a.useState)(!1),p=(0,n.Z)(m,2),Z=p[0],j=p[1],y=(0,a.useState)(!1),k=(0,n.Z)(y,2),v=k[0],C=k[1],S=(0,a.useState)(""),B=(0,n.Z)(S,2),M=B[0],N=B[1],P=(0,a.useState)(""),E=(0,n.Z)(P,2),w=E[0],F=E[1];(0,a.useEffect)((function(){f.Z.invoke("GET","/api/v1/namespaces/".concat(d,"/tenants/").concat(c,"/yaml")).then((function(e){C(!1),N(e.yaml)})).catch((function(e){C(!1),u(e)}))}),[c,d,u]),(0,a.useEffect)((function(){}),[]);var O=""!==M.trim();return(0,b.jsxs)(x.Z,{modalOpen:o,onClose:function(){r(!1)},title:"YAML",titleIcon:(0,b.jsx)(g.wK,{}),children:[Z||v&&(0,b.jsx)(i.ZP,{item:!0,xs:12,children:(0,b.jsx)(l.Z,{})}),""!==w&&(0,b.jsx)("div",{className:t.errorState,children:w}),!v&&(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),Z||(j(!0),F(""),f.Z.invoke("PUT","/api/v1/namespaces/".concat(d,"/tenants/").concat(c,"/yaml"),{yaml:M}).then((function(e){j(!1),r(!0),F("")})).catch((function(e){j(!1),F(e.errorMessage)})))},children:(0,b.jsxs)(i.ZP,{container:!0,children:[(0,b.jsx)(i.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:(0,b.jsx)(h.Z,{label:"Tenant Specification",value:M,mode:"yaml",onBeforeChange:function(e,t,o){N(o)},editorHeight:"550px"})}),(0,b.jsxs)(i.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,b.jsx)(s.Z,{type:"button",variant:"outlined",color:"primary",disabled:Z,onClick:function(){r(!1)},children:"Cancel"}),(0,b.jsx)(s.Z,{type:"submit",variant:"contained",color:"primary",disabled:Z||!O,children:"Save"})]})]})})]})})))},61120:function(e,t,o){function n(e){return n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(e)}o.d(t,{Z:function(){return n}})},60136:function(e,t,o){o.d(t,{Z:function(){return r}});var n=o(89611);function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,n.Z)(e,t)}},6215:function(e,t,o){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)}o.d(t,{Z:function(){return a}});var r=o(97326);function a(e,t){if(t&&("object"===n(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]); +//# sourceMappingURL=8138.5e1c08de.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8138.5e1c08de.chunk.js.map b/portal-ui/build/static/js/8138.5e1c08de.chunk.js.map new file mode 100644 index 000000000..76c50b8f6 --- /dev/null +++ b/portal-ui/build/static/js/8138.5e1c08de.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8138.5e1c08de.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.tsx","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/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, { 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 });\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../common/api\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { EditYamlIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => void;\n tenant: string;\n namespace: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst TenantYAML = ({\n classes,\n open,\n closeModalAndRefresh,\n tenant,\n namespace,\n setModalErrorSnackMessage,\n}: ITenantYAMLProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n setErrorMessage(\"\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n // check the permissions for creating bucket\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [tenant, namespace, setModalErrorSnackMessage]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title={`YAML`}\n titleIcon={}\n >\n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n
    {errorMessage}
    \n )}\n\n {!loading && (\n ) => {\n updateTenant(e);\n }}\n >\n \n \n {\n setTenantYaml(value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\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(TenantYAML));\n","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":["langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","color","border","borderRight","fontSize","fontWeight","dark","darkTheme","withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","className","inputLabel","tooltipContainer","title","placement","item","xs","sx","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","background","display","alignItems","padding","paddingRight","justifyContent","width","marginLeft","onClick","text","icon","variant","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","errorState","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","closeModalAndRefresh","tenant","namespace","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","api","then","res","catch","err","validSave","trim","noValidate","autoComplete","onSubmit","e","preventDefault","container","editor","data","modalButtonBar","disabled","_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/8183.8c64a361.chunk.js b/portal-ui/build/static/js/8183.8c64a361.chunk.js deleted file mode 100644 index 5d10b72c2..000000000 --- a/portal-ui/build/static/js/8183.8c64a361.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8183],{40603:function(e,n,t){var a=t(1413),i=t(45987),o=(t(72791),t(85531)),r=t(72455),l=t(80184),s=["onClick","text","disabled","tooltip","icon","className"],c=(0,r.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,r=e.text,d=void 0===r?"":r,u=e.disabled,m=void 0!==u&&u,v=e.tooltip,p=e.icon,h=void 0===p?null:p,x=e.className,g=void 0===x?"":x,f=(0,i.Z)(e,s);return(0,l.jsxs)(o.Z,(0,a.Z)((0,a.Z)({className:g,classes:n,tooltip:v||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,l.jsx)("span",{children:d})," ",h]}))}},81806:function(e,n,t){var a=t(1413),i=t(45987),o=(t(72791),t(11135)),r=t(25787),l=t(80184),s=["classes","children"];n.Z=(0,r.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,i.Z)(e,s);return(0,l.jsx)("button",(0,a.Z)((0,a.Z)({},o),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var a=t(29439),i=t(1413),o=t(72791),r=t(60364),l=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(42649),x=t(29823),g=t(28057),f=t(80184),Z=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(Z((function(e){var n=e.onClose,t=e.modalOpen,r=e.title,m=e.children,v=e.classes,p=e.wideLimit,h=void 0===p||p,Z=e.modalSnackMessage,j=e.noContentPadding,b=e.setModalSnackMessage,y=e.titleIcon,w=void 0===y?null:y,k=(0,o.useState)(!1),S=(0,a.Z)(k,2),P=S[0],C=S[1];(0,o.useEffect)((function(){b("")}),[b]),(0,o.useEffect)((function(){if(Z){if(""===Z.message)return void C(!1);"error"!==Z.type&&C(!0)}}),[Z]);var E=h?{classes:{paper:v.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return Z&&(N=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(N=Z.message)),(0,f.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:v},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:v.root,children:[(0,f.jsxs)(d.Z,{className:v.title,children:[(0,f.jsxs)("div",{className:v.titleText,children:[w," ",r]}),(0,f.jsx)("div",{className:v.closeContainer,children:(0,f.jsx)(l.Z,{"aria-label":"close",id:"close",className:v.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,f.jsx)(x.Z,{})})})]}),(0,f.jsx)(g.Z,{isModal:!0}),(0,f.jsx)(s.Z,{open:P,className:v.snackBarModal,onClose:function(){C(!1),b("")},message:N,ContentProps:{className:"".concat(v.snackBar," ").concat(Z&&"error"===Z.type?v.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,f.jsx)(u.Z,{className:j?"":v.content,children:m})]}))})))},45902:function(e,n,t){var a=t(1413),i=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,r=e.value,l=void 0===r?"-":r,s=e.orientation,c=void 0===s?"column":s,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,o.jsxs)(i.Z,(0,a.Z)((0,a.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,o.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,o.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:l}))]}))}},18183:function(e,n,t){t.r(n),t.d(n,{default:function(){return ae}});var a=t(29439),i=t(1413),o=t(72791),r=t(60364),l=t(26181),s=t.n(l),c=t(11135),d=t(25787),u=t(23814),m=t(53767),v=t(61889),p=t(64554),h=t(10703),x=t(36151),g=t(42649),f=t(56028),Z=t(21435),j=t(37516),b=t(81207),y=t(80184),w=(0,r.$j)(null,{setModalErrorSnackMessage:g.zb}),k=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)({buttonContainer:{textAlign:"right"},infoText:{fontSize:14}},u.DF),u.ID))}))(w((function(e){var n=e.open,t=e.closeModalAndRefresh,r=e.namespace,l=e.idTenant,s=e.setModalErrorSnackMessage,c=e.classes,d=(0,o.useState)(!1),u=(0,a.Z)(d,2),m=u[0],p=u[1],h=(0,o.useState)(""),g=(0,a.Z)(h,2),w=g[0],k=g[1],S=(0,o.useState)(!1),P=(0,a.Z)(S,2),C=P[0],E=P[1],N=(0,o.useState)(""),R=(0,a.Z)(N,2),I=R[0],M=R[1],T=(0,o.useState)(""),D=(0,a.Z)(T,2),B=D[0],F=D[1],L=(0,o.useState)(""),O=(0,a.Z)(L,2),_=O[0],z=O[1],A=(0,o.useState)(!0),W=(0,a.Z)(A,2),$=W[0],U=W[1],V=(0,o.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)U(n.test(w))}),[w]);(0,o.useEffect)((function(){V("minioImage")}),[w,V]);return(0,y.jsx)(f.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,y.jsxs)(v.ZP,{container:!0,children:[(0,y.jsxs)(v.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,y.jsx)("div",{className:c.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,y.jsx)("br",{}),(0,y.jsx)("br",{}),(0,y.jsx)(v.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,y.jsx)(Z.Z,{value:w,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){k(e.target.value)}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,y.jsx)(j.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:C,onChange:function(e){E(!C)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),C&&(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(v.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,y.jsx)(Z.Z,{value:I,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){M(e.target.value)}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,y.jsx)(Z.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){F(e.target.value)}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,y.jsx)(Z.Z,{value:_,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){z(e.target.value)}})})]})]}),(0,y.jsxs)(v.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,y.jsx)(x.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),E(!1),M(""),F(""),z("")},children:"Clear"}),(0,y.jsx)(x.Z,{type:"submit",variant:"contained",color:"primary",disabled:!$||C&&(""===I.trim()||""===B.trim()||""===_.trim())||m,onClick:function(){p(!0);var e={image:w,enable_prometheus:!0};if(C){var n={image_registry:{registry:I,username:B,password:_}};e=(0,i.Z)((0,i.Z)({},e),n)}b.Z.invoke("PUT","/api/v1/namespaces/".concat(r,"/tenants/").concat(l),e).then((function(){p(!1),t(!0)})).catch((function(e){s(e),p(!1)}))},children:"Save"})]})]})})}))),S=t(62666),P=t(49724),C=t(81806),E=t(87462),N=t(63366),R=t(28182),I=t(62110),M=t.n(I),T=t(72455),D=["name"],B=["children","className","clone","component"];function F(e,n){var t={};return Object.keys(e).forEach((function(a){-1===n.indexOf(a)&&(t[a]=e[a])})),t}var L,O=t(40986),_=t(22512),z=t(93656),A=t(45902),W=t(45248),$=t(72401),U=(0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(O.Z),V=(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.healthStatus,r=e.loading,l=e.error,s={value:"n/a",unit:""},c={value:"n/a",unit:""};if(t){var d=(0,W.ae)("".concat(t),!0).split(" ");s.value=d[0],s.unit=d[1]}if(a){var u=(0,W.ae)("".concat(a),!0).split(" ");c.value=u[0],c.unit=u[1]}var p=0;a&&t&&(p=100*a/t);return(0,y.jsxs)(o.Fragment,{children:[r&&(0,y.jsx)("div",{className:n.padChart,children:(0,y.jsx)(v.ZP,{item:!0,xs:12,className:n.centerItem,children:(0,y.jsx)($.Z,{style:{width:40,height:40}})})}),r?null:""!==l?(0,y.jsx)(_.Z,{errorMessage:l,withBreak:!1}):(0,y.jsxs)(v.ZP,{item:!0,xs:12,children:[(0,y.jsx)(U,{variant:"determinate",value:p}),(0,y.jsxs)(m.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"15px 0 15px 0",children:[(0,y.jsx)(A.Z,{label:"Storage Capacity:",orientation:"row",value:"".concat(s.value," ").concat(s.unit)}),(0,y.jsx)(A.Z,{label:"Used:",orientation:"row",value:"".concat(c.value," ").concat(c.unit)}),i&&(0,y.jsx)(A.Z,{orientation:"row",label:"Health:",value:(0,y.jsx)("span",{className:i,children:(0,y.jsx)(z.J$,{})})})]})]})]})})),q=t(45987),H=["children"],Q=function(e){var n=e.children,t=void 0===n?null:n,a=(0,q.Z)(e,H);return(0,y.jsx)(m.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:"row"},justifyContent:"space-between",margin:"5px 0 5px 0",spacing:{xs:1,sm:2,md:4}},a),{},{children:t}))},Y=t(40603),J=(L=h.Z,function(e){var n,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.name,i=(0,N.Z)(t,D),r=a,l="function"===typeof e?function(n){return{root:function(t){return e((0,E.Z)({theme:n},t))}}}:{root:e},s=(0,T.Z)(l,(0,E.Z)({Component:L,name:a||L.displayName,classNamePrefix:r},i));e.filterProps&&(n=e.filterProps,delete e.filterProps),e.propTypes&&(e.propTypes,delete e.propTypes);var c=o.forwardRef((function(e,t){var a=e.children,i=e.className,r=e.clone,l=e.component,c=(0,N.Z)(e,B),d=s(e),u=(0,R.Z)(d.root,i),m=c;if(n&&(m=F(m,n)),r)return o.cloneElement(a,(0,E.Z)({className:(0,R.Z)(a.props.className,u)},m));if("function"===typeof a)return a((0,E.Z)({className:u},m));var v=l||L;return(0,y.jsx)(v,(0,E.Z)({ref:t,className:u},m,{children:a}))}));return M()(c,L),c})((function(e){e.theme;return{border:0}})),K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},G=function(e){var n,t,a,i,o,r=e.tenant,l=e.classes;return(0,y.jsx)(V,{currValue:null===r||void 0===r||null===(n=r.status)||void 0===n||null===(t=n.usage)||void 0===t?void 0:t.raw_usage,maxValue:null===r||void 0===r||null===(a=r.status)||void 0===a||null===(i=a.usage)||void 0===i?void 0:i.raw,label:"Storage",error:"",loading:!1,healthStatus:K(null===r||void 0===r||null===(o=r.status)||void 0===o?void 0:o.health_status,l)})},X=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,y.jsx)(j.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},ee={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},ne={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},te=(0,r.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,logEnabled:s()(e.tenants.tenantDetails.tenantInfo,"logEnabled",!1),monitoringEnabled:s()(e.tenants.tenantDetails.tenantInfo,"monitoringEnabled",!1),encryptionEnabled:s()(e.tenants.tenantDetails.tenantInfo,"encryptionEnabled",!1),minioTLS:s()(e.tenants.tenantDetails.tenantInfo,"minioTLS",!1),consoleTLS:s()(e.tenants.tenantDetails.tenantInfo,"consoleTLS",!1),consoleEnabled:s()(e.tenants.tenantDetails.tenantInfo,"consoleEnabled",!1),adEnabled:s()(e.tenants.tenantDetails.tenantInfo,"idpAdEnabled",!1),oidcEnabled:s()(e.tenants.tenantDetails.tenantInfo,"idpOidcEnabled",!1)}}),null),ae=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},centerAlign:{textAlign:"center"},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main}},(0,u.Bz)(e.spacing(4))))}))(te((function(e){var n,t,r,l,s,c,d,u,h,x,g=e.classes,f=e.match,Z=e.tenant,j=e.logEnabled,b=e.monitoringEnabled,w=e.encryptionEnabled,E=e.minioTLS,N=(e.consoleTLS,e.consoleEnabled,e.adEnabled),R=e.oidcEnabled,I=(e.loadingTenant,(0,o.useState)(0)),M=(0,a.Z)(I,2),T=M[0],D=M[1],B=(0,o.useState)(0),F=(0,a.Z)(B,2),L=F[0],O=F[1],_=(0,o.useState)(0),W=(0,a.Z)(_,2),$=W[0],U=W[1],V=(0,o.useState)(!1),q=(0,a.Z)(V,2),H=q[0],K=q[1],te=f.params.tenantName,ae=f.params.tenantNamespace;return(0,o.useEffect)((function(){Z&&(D(Z.pools.length),U(Z.total_volumes||0),O(Z.total_instances||0))}),[Z]),(0,y.jsxs)(o.Fragment,{children:[H&&(0,y.jsx)(k,{open:H,closeModalAndRefresh:function(){K(!1)},idTenant:te,namespace:ae}),(0,y.jsxs)(m.Z,{direction:{xs:"column-reverse",sm:"row"},justifyContent:"space-between",children:[(0,y.jsx)(J,{children:(0,y.jsx)("h3",{children:"Details"})}),(0,y.jsx)(J,{children:(0,y.jsx)(Y.Z,{tooltip:"Manage Tenant",text:"Manage Tenant",onClick:function(){S.Z.push("/namespaces/".concat(ae,"/tenants/").concat(te,"/hop"))},disabled:!Z||!(0,P.Yk)(Z),icon:(0,y.jsx)(z.ew,{}),color:"primary",variant:"contained"})})]}),(0,y.jsx)(G,{tenant:Z,classes:g}),(0,y.jsxs)(v.ZP,{container:!0,children:[(0,y.jsxs)(v.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"State:",value:null===Z||void 0===Z?void 0:Z.currentState})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"MinIO:",value:(0,y.jsx)(C.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){K(!0)},children:Z?Z.image:""})})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Endpoint:",value:(0,y.jsx)("a",{href:null===Z||void 0===Z||null===(n=Z.endpoints)||void 0===n?void 0:n.minio,target:"_blank",rel:"noopener noreferrer",className:g.linkedSection,children:(null===Z||void 0===Z||null===(t=Z.endpoints)||void 0===t?void 0:t.minio)||"-"})})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Console:",value:(0,y.jsx)("a",{href:null===Z||void 0===Z||null===(r=Z.endpoints)||void 0===r?void 0:r.console,target:"_blank",rel:"noopener noreferrer",className:g.linkedSection,children:(null===Z||void 0===Z||null===(l=Z.endpoints)||void 0===l?void 0:l.console)||"-"})})})]}),(0,y.jsxs)(v.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Instances:",value:L})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Clusters:",value:T,stkProps:{style:{marginRight:47}}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Total Drives:",value:$,stkProps:{style:{marginRight:43}}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Write Quorum:",value:null!==Z&&void 0!==Z&&null!==(s=Z.status)&&void 0!==s&&s.write_quorum?null===Z||void 0===Z||null===(c=Z.status)||void 0===c?void 0:c.write_quorum:0})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Drives Online:",value:null!==Z&&void 0!==Z&&null!==(d=Z.status)&&void 0!==d&&d.drives_online?null===Z||void 0===Z||null===(u=Z.status)||void 0===u?void 0:u.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,y.jsx)(v.ZP,{item:!0,xs:12,children:(0,y.jsx)(A.Z,{label:"Drives Offline:",value:null!==Z&&void 0!==Z&&null!==(h=Z.status)&&void 0!==h&&h.drives_offline?null===Z||void 0===Z||null===(x=Z.status)||void 0===x?void 0:x.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,y.jsxs)(m.Z,{children:[(0,y.jsx)(Q,{sx:{borderBottom:"1px solid #eaeaea",margin:0},children:(0,y.jsx)("h3",{style:{marginBottom:10},children:"Features"})}),(0,y.jsxs)(p.Z,{sx:(0,i.Z)({},ee),children:[(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"Logs:",value:X(j,"tenant-log")},ne)),(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"AD/LDAP:",value:X(N,"tenant-sts")},ne)),(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"Encryption:",value:X(w,"tenant-enc")},ne))]}),(0,y.jsxs)(p.Z,{sx:(0,i.Z)({},ee),children:[(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"MinIO TLS:",value:X(E,"tenant-tls")},ne)),(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"Monitoring:",value:X(b,"tenant-monitor")},ne)),(0,y.jsx)(A.Z,(0,i.Z)({orientation:"row",label:"OpenID:",value:X(R,"tenant-oidc")},ne))]})]})]})})))},22512:function(e,n,t){var a=t(72791),i=t(20890),o=t(11135),r=t(25787),l=t(80184);n.Z=(0,r.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,o=e.withBreak,r=void 0===o||o;return(0,l.jsxs)(a.Fragment,{children:[r&&(0,l.jsx)("br",{}),(0,l.jsx)(i.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},29823:function(e,n,t){var a=t(95318);n.Z=void 0;var i=a(t(45649)),o=t(80184),r=(0,i.default)((0,o.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=r},53767:function(e,n,t){var a=t(4942),i=t(63366),o=t(87462),r=t(72791),l=t(51184),s=t(45682),c=t(78519),d=t(82466),u=t(47630),m=t(93736),v=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=r.Children.toArray(e).filter(Boolean);return t.reduce((function(e,a,i){return e.push(a),i :not(style) + :not(style)":(0,a.Z)({margin:0},"margin".concat((i=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[i])),(0,s.NA)(r,e))};var i})))}return i})),g=r.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),a=(0,c.Z)(t),r=a.component,l=void 0===r?"div":r,s=a.direction,d=void 0===s?"column":s,u=a.spacing,g=void 0===u?0:u,f=a.divider,Z=a.children,j=(0,i.Z)(a,p),b={direction:d,spacing:g};return(0,v.jsx)(x,(0,o.Z)({as:l,ownerState:b,ref:n},j,{children:f?h(Z,f):Z}))}));n.Z=g}}]); -//# sourceMappingURL=8183.8c64a361.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8183.8c64a361.chunk.js.map b/portal-ui/build/static/js/8183.8c64a361.chunk.js.map deleted file mode 100644 index b6b335cd9..000000000 --- a/portal-ui/build/static/js/8183.8c64a361.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8183.8c64a361.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","../node_modules/@mui/styles/styled/styled.js","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Common/UsageBarWrapper/StackRow.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/material/Stack/Stack.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 { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { 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 from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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, useEffect, useCallback } 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, Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n setModalErrorSnackMessage,\n classes,\n}: IUpdateTenantModal) => {\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
    \n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
    \n
    \n
    \n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
    \n \n \n Clear\n \n \n Save\n \n \n
    \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UpdateTenantModal));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"name\"],\n _excluded2 = [\"children\", \"className\", \"clone\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes, getDisplayName } from '@mui/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport makeStyles from '../makeStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction omit(input, fields) {\n const output = {};\n Object.keys(input).forEach(prop => {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n} // styled-components's API removes the mapping between components and styles.\n// Using components as a low-level styling construct can be simpler.\n\n\nexport default function styled(Component) {\n const componentCreator = (style, options = {}) => {\n const {\n name\n } = options,\n stylesOptions = _objectWithoutPropertiesLoose(options, _excluded);\n\n if (process.env.NODE_ENV !== 'production' && Component === undefined) {\n throw new Error(['You are calling styled(Component)(style) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n\n let classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n const displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n const stylesOrCreator = typeof style === 'function' ? theme => ({\n root: props => style(_extends({\n theme\n }, props))\n }) : {\n root: style\n };\n const useStyles = makeStyles(stylesOrCreator, _extends({\n Component,\n name: name || Component.displayName,\n classNamePrefix\n }, stylesOptions));\n let filterProps;\n let propTypes = {};\n\n if (style.filterProps) {\n filterProps = style.filterProps;\n delete style.filterProps;\n }\n /* eslint-disable react/forbid-foreign-prop-types */\n\n\n if (style.propTypes) {\n propTypes = style.propTypes;\n delete style.propTypes;\n }\n /* eslint-enable react/forbid-foreign-prop-types */\n\n\n const StyledComponent = /*#__PURE__*/React.forwardRef(function StyledComponent(props, ref) {\n const {\n children,\n className: classNameProp,\n clone,\n component: ComponentProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const classes = useStyles(props);\n const className = clsx(classes.root, classNameProp);\n let spread = other;\n\n if (filterProps) {\n spread = omit(spread, filterProps);\n }\n\n if (clone) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n className: clsx(children.props.className, className)\n }, spread));\n }\n\n if (typeof children === 'function') {\n return children(_extends({\n className\n }, spread));\n }\n\n const FinalComponent = ComponentProp || Component;\n return /*#__PURE__*/_jsx(FinalComponent, _extends({\n ref: ref,\n className: className\n }, spread, {\n children: children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? StyledComponent.propTypes = _extends({\n /**\n * A render function or node.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the component will recycle it's children HTML element.\n * It's using `React.cloneElement` internally.\n *\n * This prop will be deprecated and removed in v5\n */\n clone: chainPropTypes(PropTypes.bool, props => {\n if (props.clone && props.component) {\n return new Error('You can not use the clone and component prop at the same time.');\n }\n\n return null;\n }),\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\n /* @typescript-to-proptypes-ignore */\n .elementType\n }, propTypes) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.displayName = `Styled(${classNamePrefix})`;\n }\n\n hoistNonReactStatics(StyledComponent, Component);\n return StyledComponent;\n };\n\n return componentCreator;\n}","import React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport { CircleIcon } from \"../../../../icons\";\nimport LabelValuePair from \"./LabelValuePair\";\nimport { ValueUnit } from \"../../Tenants/ListTenants/types\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\n\ninterface ISummaryUsageBar {\n maxValue: number | undefined;\n currValue: number | undefined;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n 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 SummaryUsageBar = ({\n classes,\n maxValue,\n currValue,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n var capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n var used: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (maxValue) {\n const b = niceBytes(`${maxValue}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (currValue) {\n const b = niceBytes(`${currValue}`, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let percentagelValue = 0;\n if (currValue && maxValue) {\n percentagelValue = (currValue * 100) / maxValue;\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n \n \n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
    \n \n \n \n
    \n )}\n {renderComponent()}\n
    \n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\nconst StackRow = ({\n children = null,\n ...restProps\n}: {\n children?: any;\n [x: string]: any;\n}) => {\n return (\n \n {children}\n \n );\n};\nexport default StackRow;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid, Stack } from \"@mui/material\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState } from \"../../../../store\";\nimport history from \"./../../../../history\";\nimport { tenantIsOnline } from \"../ListTenants/utils\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport { styled } from \"@mui/styles\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport StackRow from \"../../Common/UsageBarWrapper/StackRow\";\nimport { SettingsIcon } from \"../../../../icons\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\ninterface ITenantsSummary {\n classes: any;\n match: any;\n tenant: ITenant | null;\n logEnabled: boolean;\n monitoringEnabled: boolean;\n encryptionEnabled: boolean;\n minioTLS: boolean;\n consoleTLS: boolean;\n consoleEnabled: boolean;\n adEnabled: boolean;\n oidcEnabled: boolean;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n centerAlign: {\n textAlign: \"center\",\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst StackItem = styled(Paper)(({ theme }) => ({\n border: 0,\n}));\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({ tenant, classes }: Partial) => {\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({\n classes,\n match,\n tenant,\n logEnabled,\n monitoringEnabled,\n encryptionEnabled,\n minioTLS,\n consoleTLS,\n consoleEnabled,\n adEnabled,\n oidcEnabled,\n loadingTenant,\n}: ITenantsSummary) => {\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant.pools.length);\n setVolumes(tenant.total_volumes || 0);\n setInstances(tenant.total_instances || 0);\n }\n }, [tenant]);\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n }}\n idTenant={tenantName}\n namespace={tenantNamespace}\n />\n )}\n\n \n \n

    Details

    \n
    \n \n {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/hop`\n );\n }}\n disabled={!tenant || !tenantIsOnline(tenant)}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n }\n />\n \n \n \n {tenant?.endpoints?.console || \"-\"}\n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n Features\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n
    \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(TenantSummary));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;"],"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","margin","backgroundColor","textDecoration","cursor","info","fontFamily","children","rest","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","disableRipple","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","setModalErrorSnackMessage","buttonContainer","textAlign","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","catch","error","_excluded","_excluded2","omit","input","fields","output","Object","keys","forEach","prop","indexOf","Component","BorderLinearProgress","height","borderRadius","colorPrimary","bar","padChart","LinearProgress","allValue","marginBottom","currentUsage","marginTop","centerItem","maxValue","currValue","healthStatus","loading","capacity","unit","used","parts","niceBytes","split","percentagelValue","Loader","ErrorBlock","errorMessage","withBreak","Stack","spacing","md","alignItems","LabelValuePair","justifyContent","StackItem","Paper","filterProps","options","stylesOptions","_objectWithoutPropertiesLoose","classNamePrefix","stylesOrCreator","_extends","displayName","propTypes","StyledComponent","React","ref","classNameProp","clone","ComponentProp","component","other","clsx","spread","FinalComponent","_jsx","hoistNonReactStatics","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","tenant","status","usage","raw_usage","raw","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","flexFlow","featureItemStyleProps","flex","minWidth","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","consoleTLS","consoleEnabled","adEnabled","oidcEnabled","tenantDetailsStyles","warning","success","centerAlign","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","containerForHeader","match","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","tenantName","params","tenantNamespace","pools","total_volumes","total_instances","RBIconButton","history","tenantIsOnline","currentState","AButton","overflow","textOverflow","whiteSpace","wordBreak","href","endpoints","minio","rel","console","write_quorum","drives_online","drives_offline","borderBottom","Box","errorBlock","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","joinChildren","separator","childrenArray","filter","Boolean","reduce","child","index","push","key","StackRoot","styled","slot","overridesResolver","styles","ownerState","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","acc","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","themeProps","useThemeProps","extendSxProp","divider","as"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8350.501e9b49.chunk.js b/portal-ui/build/static/js/8350.501e9b49.chunk.js deleted file mode 100644 index ba358ba82..000000000 --- a/portal-ui/build/static/js/8350.501e9b49.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8350],{9505:function(e,n,t){var a=t(29439),o=t(72791),i=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),l=(0,a.Z)(t,2),s=l[0],r=l[1];return[s,function(t,a,o){r(!0),i.Z.invoke(t,a,o).then((function(n){r(!1),e(n)})).catch((function(e){r(!1),n(e)}))}]}},23508:function(e,n,t){var a=t(1413),o=t(72791),i=t(5574),l=t(65661),s=t(39157),r=t(97123),c=t(36151),d=t(59860),u=t(13400),m=t(29823),f=t(11135),x=t(25787),Z=t(23814),v=t(80184);n.Z=(0,x.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,x=e.onCancel,Z=e.onConfirm,h=e.classes,p=void 0===h?{}:h,j=e.title,b=void 0===j?"":j,C=e.isLoading,g=e.confirmationContent,k=e.cancelText,N=void 0===k?"Cancel":k,T=e.confirmText,y=void 0===T?"Confirm":T,B=e.confirmButtonProps,P=void 0===B?{}:B,D=e.cancelButtonProps,S=void 0===D?{}:D,E=e.titleIcon,M=void 0===E?null:E;return(0,v.jsxs)(i.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:p.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,v.jsxs)(l.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[M," ",b]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(u.Z,{"aria-label":"close",className:p.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,v.jsx)(m.Z,{})})})]}),(0,v.jsx)(s.Z,{className:p.content,children:g}),(0,v.jsxs)(r.Z,{className:p.actions,children:[(0,v.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:p.cancelButton,onClick:x||f,disabled:C,type:"button"},S),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,v.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:p.confirmButton,type:"button",onClick:Z,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,v.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},P),{},{children:y}))]})]})}))},16502:function(e,n,t){t(72791);var a=t(11135),o=t(25787),i=t(80184);n.Z=(0,o.Z)((function(e){return(0,a.Z)({headerContainer:{backgroundColor:"#e78794",borderRadius:3,marginBottom:20,padding:1,paddingBottom:15},labelHeadline:{color:"#000000",fontSize:14,marginLeft:20},labelText:{color:"#000000",fontSize:14,marginLeft:20,marginRight:40}})}))((function(e){var n=e.classes,t=e.label,a=e.title;return(0,i.jsxs)("div",{className:n.headerContainer,children:[(0,i.jsx)("h4",{className:n.labelHeadline,children:a}),(0,i.jsx)("div",{className:n.labelText,children:t})]})}))},78350:function(e,n,t){t.r(n);var a=t(29439),o=t(72791),i=t(51691),l=t(60364),s=t(42649),r=t(21435),c=t(61889),d=t(9505),u=t(23508),m=t(93656),f=t(16502),x=t(37516),Z=t(80184),v=(0,l.$j)(null,{setErrorSnackMessage:s.Ih});n.default=v((function(e){var n=e.deleteOpen,t=e.selectedTenant,l=e.closeDeleteModalAndRefresh,s=e.setErrorSnackMessage,v=(0,o.useState)(""),h=(0,a.Z)(v,2),p=h[0],j=h[1],b=(0,o.useState)(!1),C=(0,a.Z)(b,2),g=C[0],k=C[1],N=(0,d.Z)((function(){return l(!0)}),(function(e){return s(e)})),T=(0,a.Z)(N,2),y=T[0],B=T[1];return(0,Z.jsx)(u.Z,{title:"Delete Tenant",confirmText:"Delete",isOpen:n,titleIcon:(0,Z.jsx)(m.Nv,{}),isLoading:y,onConfirm:function(){p===t.name?B("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.name),{delete_pvcs:g}):s({errorMessage:"Tenant name is incorrect",detailedError:""})},onClose:function(){return l(!1)},confirmButtonProps:{disabled:p!==t.name||y},confirmationContent:(0,Z.jsxs)(i.Z,{children:[g&&(0,Z.jsx)(c.ZP,{item:!0,xs:12,children:(0,Z.jsx)(f.Z,{title:"WARNING",label:"Delete Volumes: Data will be permanently deleted. Please proceed with caution."})}),"To continue please type ",(0,Z.jsx)("b",{children:t.name})," in the box.",(0,Z.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,Z.jsx)(r.Z,{id:"retype-tenant",name:"retype-tenant",onChange:function(e){j(e.target.value)},label:"",value:p}),(0,Z.jsx)("br",{}),(0,Z.jsx)(x.Z,{checked:g,id:"delete-volumes",label:"Delete Volumes",name:"delete-volumes",onChange:function(){k(!g)},value:g})]})]})})}))},29823:function(e,n,t){var a=t(95318);n.Z=void 0;var o=a(t(45649)),i=t(80184),l=(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");n.Z=l}}]); -//# sourceMappingURL=8350.501e9b49.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8350.501e9b49.chunk.js.map b/portal-ui/build/static/js/8350.501e9b49.chunk.js.map deleted file mode 100644 index fb5243945..000000000 --- a/portal-ui/build/static/js/8350.501e9b49.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8350.501e9b49.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/Tenants/ListTenants/DeleteTenant.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 from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
    \n

    {title}

    \n
    {label}
    \n
    \n );\n};\n\nexport default withStyles(styles)(WarningMessage);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { ITenant } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport WarningMessage from \"../../Common/WarningMessage/WarningMessage\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteTenant {\n deleteOpen: boolean;\n selectedTenant: ITenant;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteTenant = ({\n deleteOpen,\n selectedTenant,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeleteTenant) => {\n const [retypeTenant, setRetypeTenant] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteVolumes, setDeleteVolumes] = useState(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypeTenant !== selectedTenant.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedTenant.namespace}/tenants/${selectedTenant.name}`,\n { delete_pvcs: deleteVolumes }\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeTenant !== selectedTenant.name || deleteLoading,\n }}\n confirmationContent={\n \n {deleteVolumes && (\n \n \n \n )}\n To continue please type {selectedTenant.name} in the box.\n \n ) => {\n setRetypeTenant(event.target.value);\n }}\n label=\"\"\n value={retypeTenant}\n />\n
    \n {\n setDeleteVolumes(!deleteVolumes);\n }}\n value={deleteVolumes}\n />\n
    \n
    \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeleteTenant);\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","headerContainer","backgroundColor","borderRadius","marginBottom","paddingBottom","labelHeadline","fontSize","marginLeft","labelText","marginRight","label","connector","connect","setErrorSnackMessage","deleteOpen","selectedTenant","closeDeleteModalAndRefresh","retypeTenant","setRetypeTenant","deleteVolumes","setDeleteVolumes","useApi","deleteLoading","invokeDeleteApi","name","namespace","delete_pvcs","errorMessage","detailedError","item","xs","onChange","target","value","checked","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8350.feed1db5.chunk.js b/portal-ui/build/static/js/8350.feed1db5.chunk.js new file mode 100644 index 000000000..f60df4207 --- /dev/null +++ b/portal-ui/build/static/js/8350.feed1db5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8350],{9505:function(e,n,t){var a=t(29439),l=t(72791),r=t(81207);n.Z=function(e,n){var t=(0,l.useState)(!1),i=(0,a.Z)(t,2),o=i[0],s=i[1];return[o,function(t,a,l){s(!0),r.Z.invoke(t,a,l).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},16502:function(e,n,t){t(72791);var a=t(11135),l=t(25787),r=t(80184);n.Z=(0,l.Z)((function(e){return(0,a.Z)({headerContainer:{backgroundColor:"#e78794",borderRadius:3,marginBottom:20,padding:1,paddingBottom:15},labelHeadline:{color:"#000000",fontSize:14,marginLeft:20},labelText:{color:"#000000",fontSize:14,marginLeft:20,marginRight:40}})}))((function(e){var n=e.classes,t=e.label,a=e.title;return(0,r.jsxs)("div",{className:n.headerContainer,children:[(0,r.jsx)("h4",{className:n.labelHeadline,children:a}),(0,r.jsx)("div",{className:n.labelText,children:t})]})}))},78350:function(e,n,t){t.r(n);var a=t(29439),l=t(72791),r=t(51691),i=t(60364),o=t(42649),s=t(21435),c=t(61889),u=t(9505),d=t(2148),m=t(93656),f=t(16502),h=t(37516),p=t(80184),x=(0,i.$j)(null,{setErrorSnackMessage:o.Ih});n.default=x((function(e){var n=e.deleteOpen,t=e.selectedTenant,i=e.closeDeleteModalAndRefresh,o=e.setErrorSnackMessage,x=(0,l.useState)(""),b=(0,a.Z)(x,2),v=b[0],Z=b[1],g=(0,l.useState)(!1),j=(0,a.Z)(g,2),C=j[0],k=j[1],T=(0,u.Z)((function(){return i(!0)}),(function(e){return o(e)})),D=(0,a.Z)(T,2),S=D[0],E=D[1];return(0,p.jsx)(d.Z,{title:"Delete Tenant",confirmText:"Delete",isOpen:n,titleIcon:(0,p.jsx)(m.Nv,{}),isLoading:S,onConfirm:function(){v===t.name?E("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.name),{delete_pvcs:C}):o({errorMessage:"Tenant name is incorrect",detailedError:""})},onClose:function(){return i(!1)},confirmButtonProps:{disabled:v!==t.name||S},confirmationContent:(0,p.jsxs)(r.Z,{children:[C&&(0,p.jsx)(c.ZP,{item:!0,xs:12,children:(0,p.jsx)(f.Z,{title:"WARNING",label:"Delete Volumes: Data will be permanently deleted. Please proceed with caution."})}),"To continue please type ",(0,p.jsx)("b",{children:t.name})," in the box.",(0,p.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,p.jsx)(s.Z,{id:"retype-tenant",name:"retype-tenant",onChange:function(e){Z(e.target.value)},label:"",value:v}),(0,p.jsx)("br",{}),(0,p.jsx)(h.Z,{checked:C,id:"delete-volumes",label:"Delete Volumes",name:"delete-volumes",onChange:function(){k(!C)},value:C})]})]})})}))}}]); +//# sourceMappingURL=8350.feed1db5.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8350.feed1db5.chunk.js.map b/portal-ui/build/static/js/8350.feed1db5.chunk.js.map new file mode 100644 index 000000000..a0af1d1a8 --- /dev/null +++ b/portal-ui/build/static/js/8350.feed1db5.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8350.feed1db5.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,oECkChB,KAAeC,EAAAA,EAAAA,IA/BA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,gBAAiB,CACfC,gBAAiB,UACjBC,aAAc,EACdC,aAAc,GACdC,QAAS,EACTC,cAAe,IAEjBC,cAAe,CACbC,MAAO,UACPC,SAAU,GACVC,WAAY,IAEdC,UAAW,CACTH,MAAO,UACPC,SAAU,GACVC,WAAY,GACZE,YAAa,QAanB,EATuB,SAAC,GAAgD,IAA9CC,EAA6C,EAA7CA,QAASC,EAAoC,EAApCA,MAAOC,EAA6B,EAA7BA,MACxC,OACE,iBAAKC,UAAWH,EAAQZ,gBAAxB,WACE,eAAIe,UAAWH,EAAQN,cAAvB,SAAuCQ,KACvC,gBAAKC,UAAWH,EAAQF,UAAxB,SAAoCG,W,8KCoEpCG,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,qBAAAA,EAAAA,KAGF,UAAeF,GAxFM,SAAC,GAKA,IAJpBG,EAImB,EAJnBA,WACAC,EAGmB,EAHnBA,eACAC,EAEmB,EAFnBA,2BACAH,EACmB,EADnBA,qBAEA,GAAwChC,EAAAA,EAAAA,UAAS,IAAjD,eAAOoC,EAAP,KAAqBC,EAArB,KAMA,GAA0CrC,EAAAA,EAAAA,WAAkB,GAA5D,eAAOsC,EAAP,KAAsBC,EAAtB,KAEA,GAAyCC,EAAAA,EAAAA,IANpB,kBAAML,GAA2B,MACnC,SAACzB,GAAD,OAA+BsB,EAAqBtB,MAKvE,eAAO+B,EAAP,KAAsBC,EAAtB,KAiBA,OACE,SAAC,IAAD,CACEd,MAAK,gBACLe,YAAa,SACbC,OAAQX,EACRY,WAAW,SAAC,KAAD,IACX5C,UAAWwC,EACXK,UAtBoB,WAClBV,IAAiBF,EAAea,KAOpCL,EACE,SADa,6BAESR,EAAec,UAFxB,oBAE6Cd,EAAea,MACzE,CAAEE,YAAaX,IATfN,EAAqB,CACnBkB,aAAc,2BACdC,cAAe,MAmBjBC,QA7BY,kBAAMjB,GAA2B,IA8B7CkB,mBAAoB,CAClBC,SAAUlB,IAAiBF,EAAea,MAAQN,GAEpDc,qBACE,UAAC,IAAD,WACGjB,IACC,SAAC,KAAD,CAAMkB,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACE7B,MAAO,UACPD,MACE,qFANV,4BAW0B,uBAAIO,EAAea,OAX7C,gBAYE,UAAC,KAAD,CAAMS,MAAI,EAACC,GAAI,GAAf,WACE,SAAC,IAAD,CACEC,GAAG,gBACHX,KAAK,gBACLY,SAAU,SAACC,GACTvB,EAAgBuB,EAAMC,OAAOC,QAE/BnC,MAAM,GACNmC,MAAO1B,KAET,mBACA,SAAC,IAAD,CACE2B,QAASzB,EACToB,GAAE,iBACF/B,MAAO,iBACPoB,KAAI,iBACJY,SAAU,WACRpB,GAAkBD,IAEpBwB,MAAOxB","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/Tenants/ListTenants/DeleteTenant.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","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
    \n

    {title}

    \n
    {label}
    \n
    \n );\n};\n\nexport default withStyles(styles)(WarningMessage);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { ITenant } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport WarningMessage from \"../../Common/WarningMessage/WarningMessage\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteTenant {\n deleteOpen: boolean;\n selectedTenant: ITenant;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteTenant = ({\n deleteOpen,\n selectedTenant,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeleteTenant) => {\n const [retypeTenant, setRetypeTenant] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteVolumes, setDeleteVolumes] = useState(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypeTenant !== selectedTenant.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedTenant.namespace}/tenants/${selectedTenant.name}`,\n { delete_pvcs: deleteVolumes }\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeTenant !== selectedTenant.name || deleteLoading,\n }}\n confirmationContent={\n \n {deleteVolumes && (\n \n \n \n )}\n To continue please type {selectedTenant.name} in the box.\n \n ) => {\n setRetypeTenant(event.target.value);\n }}\n label=\"\"\n value={retypeTenant}\n />\n
    \n {\n setDeleteVolumes(!deleteVolumes);\n }}\n value={deleteVolumes}\n />\n
    \n
    \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeleteTenant);\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","withStyles","theme","createStyles","headerContainer","backgroundColor","borderRadius","marginBottom","padding","paddingBottom","labelHeadline","color","fontSize","marginLeft","labelText","marginRight","classes","label","title","className","connector","connect","setErrorSnackMessage","deleteOpen","selectedTenant","closeDeleteModalAndRefresh","retypeTenant","setRetypeTenant","deleteVolumes","setDeleteVolumes","useApi","deleteLoading","invokeDeleteApi","confirmText","isOpen","titleIcon","onConfirm","name","namespace","delete_pvcs","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","item","xs","id","onChange","event","target","value","checked"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8354.e837d480.chunk.js b/portal-ui/build/static/js/8354.e837d480.chunk.js deleted file mode 100644 index a998c96a8..000000000 --- a/portal-ui/build/static/js/8354.e837d480.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8354],{29823:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),c=(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=c},77961:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),c=(0,r.default)((0,i.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");t.Z=c},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var o=n(4942),r=n(63366),i=n(87462),c=n(72791),a=n(90767),u=n(12065),l=n(97278),s=n(76189),d=n(80184),f=(0,s.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"),v=(0,s.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"),p=(0,s.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"),h=n(14036),m=n(93736),x=n(47630),Z=n(95159);function k(e){return(0,Z.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),b=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,x.ZP)(l.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,h.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,u.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)(v,{}),M=(0,d.jsx)(f,{}),w=(0,d.jsx)(p,{}),j=c.forwardRef((function(e,t){var n,o,u=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=u.checkedIcon,s=void 0===l?y:l,f=u.color,v=void 0===f?"primary":f,p=u.icon,x=void 0===p?M:p,Z=u.indeterminate,z=void 0!==Z&&Z,j=u.indeterminateIcon,S=void 0===j?w:j,g=u.inputProps,H=u.size,I=void 0===H?"medium":H,T=(0,r.Z)(u,b),P=z?S:x,O=z?S:s,B=(0,i.Z)({},u,{color:v,indeterminate:z,size:I}),E=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},c=(0,a.Z)(r,k,t);return(0,i.Z)({},t,c)}(B);return(0,d.jsx)(C,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},g),icon:c.cloneElement(P,{fontSize:null!=(n=P.props.fontSize)?n:I}),checkedIcon:c.cloneElement(O,{fontSize:null!=(o=O.props.fontSize)?o:I}),ownerState:B,ref:t},T,{classes:E}))}))},20821:function(e,t,n){var o=n(26050),r=/^\s+/;e.exports=function(e){return e?e.slice(0,o(e)+1).replace(r,""):e}},26050:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},48573:function(e,t,n){var o=n(8092),r=n(50072),i=n(42582),c=Math.max,a=Math.min;e.exports=function(e,t,n){var u,l,s,d,f,v,p=0,h=!1,m=!1,x=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function Z(t){var n=u,o=l;return u=l=void 0,p=t,d=e.apply(o,n)}function k(e){return p=e,f=setTimeout(b,t),h?Z(e):d}function z(e){var n=e-v;return void 0===v||n>=t||n<0||m&&e-p>=s}function b(){var e=r();if(z(e))return C(e);f=setTimeout(b,function(e){var n=t-(e-v);return m?a(n,s-(e-p)):n}(e))}function C(e){return f=void 0,x&&u?Z(e):(u=l=void 0,d)}function y(){var e=r(),n=z(e);if(u=arguments,l=this,v=e,n){if(void 0===f)return k(v);if(m)return clearTimeout(f),f=setTimeout(b,t),Z(v)}return void 0===f&&(f=setTimeout(b,t)),d}return t=i(t)||0,o(n)&&(h=!!n.leading,s=(m="maxWait"in n)?c(i(n.maxWait)||0,t):s,x="trailing"in n?!!n.trailing:x),y.cancel=function(){void 0!==f&&clearTimeout(f),p=0,u=v=l=f=void 0},y.flush=function(){return void 0===f?d:C(r())},y}},50072:function(e,t,n){var o=n(97009);e.exports=function(){return o.Date.now()}},42582:function(e,t,n){var o=n(20821),r=n(8092),i=n(70152),c=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=o(e);var n=a.test(e);return n||u.test(e)?l(e.slice(2),n?2:8):c.test(e)?NaN:+e}}}]); -//# sourceMappingURL=8354.e837d480.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8354.e837d480.chunk.js.map b/portal-ui/build/static/js/8354.e837d480.chunk.js.map deleted file mode 100644 index c6ed346ce..000000000 --- a/portal-ui/build/static/js/8354.e837d480.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8354.e837d480.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Help.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/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.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: \"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 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\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 trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\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 === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\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","trimmedEndIndex","reTrimStart","module","string","slice","replace","reWhitespace","index","length","test","charAt","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","Date","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","value","valueOf","isBinary"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8391.4ea39138.chunk.js b/portal-ui/build/static/js/8391.4ea39138.chunk.js new file mode 100644 index 000000000..a1fb9dacd --- /dev/null +++ b/portal-ui/build/static/js/8391.4ea39138.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8391],{18391:function(e,s,n){n.r(s);var a=n(29439),t=n(1413),l=n(72791),o=n(60364),i=n(61889),c=n(36151),r=n(40986),d=n(11135),u=n(25787),m=n(42649),p=n(23814),f=n(81207),Z=n(56028),h=n(21435),k=n(90673),x=n(93656),S=n(80184),b=(0,o.$j)(null,{setModalErrorSnackMessage:m.zb});s.default=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)({},p.ID),p.DF))}))(b((function(e){var s=e.classes,n=e.open,t=e.encryptionCfg,o=e.selectedBucket,d=e.closeModalAndRefresh,u=e.setModalErrorSnackMessage,m=(0,l.useState)(!1),p=(0,a.Z)(m,2),b=p[0],g=p[1],j=(0,l.useState)(""),v=(0,a.Z)(j,2),y=v[0],M=v[1],C=(0,l.useState)("disabled"),E=(0,a.Z)(C,2),N=E[0],B=E[1];(0,l.useEffect)((function(){t&&("AES256"===t.algorithm?B("sse-s3"):(B("sse-kms"),M(t.kmsMasterKeyID)))}),[t]);return(0,S.jsx)(Z.Z,{modalOpen:n,onClose:function(){d()},title:"Enable Bucket Encryption",titleIcon:(0,S.jsx)(x.Xn,{}),children:(0,S.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),b||("disabled"===N?f.Z.invoke("POST","/api/v1/buckets/".concat(o,"/encryption/disable")).then((function(){g(!1),d()})).catch((function(e){g(!1),u(e)})):f.Z.invoke("POST","/api/v1/buckets/".concat(o,"/encryption/enable"),{encType:N,kmsKeyID:y}).then((function(){g(!1),d()})).catch((function(e){g(!1),u(e)})))},children:(0,S.jsxs)(i.ZP,{container:!0,children:[(0,S.jsxs)(i.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,S.jsx)(i.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,S.jsx)(k.Z,{onChange:function(e){B(e.target.value)},id:"select-encryption-type",name:"select-encryption-type",label:"Encryption Type",value:N,options:[{label:"Disabled",value:"disabled"},{label:"SSE-S3",value:"sse-s3"},{label:"SSE-KMS",value:"sse-kms"}]})}),"sse-kms"===N&&(0,S.jsx)(i.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,S.jsx)(h.Z,{id:"kms-key-id",name:"kms-key-id",label:"KMS Key ID",value:y,onChange:function(e){M(e.target.value)}})})]}),(0,S.jsxs)(i.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,S.jsx)(c.Z,{type:"submit",variant:"outlined",color:"primary",onClick:function(){d()},disabled:b,children:"Cancel"}),(0,S.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:b,children:"Save"})]}),b&&(0,S.jsx)(i.ZP,{item:!0,xs:12,children:(0,S.jsx)(r.Z,{})})]})})})})))},56028:function(e,s,n){var a=n(29439),t=n(1413),l=n(72791),o=n(60364),i=n(13400),c=n(55646),r=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),f=n(23814),Z=n(42649),h=n(29823),k=n(28057),x=n(80184),S=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});s.Z=(0,p.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(S((function(e){var s=e.onClose,n=e.modalOpen,o=e.title,m=e.children,p=e.classes,f=e.wideLimit,Z=void 0===f||f,S=e.modalSnackMessage,b=e.noContentPadding,g=e.setModalSnackMessage,j=e.titleIcon,v=void 0===j?null:j,y=(0,l.useState)(!1),M=(0,a.Z)(y,2),C=M[0],E=M[1];(0,l.useEffect)((function(){g("")}),[g]),(0,l.useEffect)((function(){if(S){if(""===S.message)return void E(!1);"error"!==S.type&&E(!0)}}),[S]);var N=Z?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return S&&(B=S.detailedErrorMsg,(""===S.detailedErrorMsg||S.detailedErrorMsg.length<5)&&(B=S.message)),(0,x.jsxs)(r.Z,(0,t.Z)((0,t.Z)({open:n,classes:p},N),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&s()},className:p.root,children:[(0,x.jsxs)(d.Z,{className:p.title,children:[(0,x.jsxs)("div",{className:p.titleText,children:[v," ",o]}),(0,x.jsx)("div",{className:p.closeContainer,children:(0,x.jsx)(i.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:s,disableRipple:!0,size:"small",children:(0,x.jsx)(h.Z,{})})})]}),(0,x.jsx)(k.Z,{isModal:!0}),(0,x.jsx)(c.Z,{open:C,className:p.snackBarModal,onClose:function(){E(!1),g("")},message:B,ContentProps:{className:"".concat(p.snackBar," ").concat(S&&"error"===S.type?p.errorSnackBar:"")},autoHideDuration:S&&"error"===S.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))}}]); +//# sourceMappingURL=8391.4ea39138.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8391.4ea39138.chunk.js.map b/portal-ui/build/static/js/8391.4ea39138.chunk.js.map new file mode 100644 index 000000000..c7fb451df --- /dev/null +++ b/portal-ui/build/static/js/8391.4ea39138.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8391.4ea39138.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableBucketEncryption.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, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress, SelectChangeEvent } 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 {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketEncryptionInfo } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { BucketEncryptionIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IEnableBucketEncryptionProps {\n classes: any;\n open: boolean;\n encryptionEnabled: boolean;\n encryptionCfg: BucketEncryptionInfo | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableBucketEncryption = ({\n classes,\n open,\n encryptionCfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableBucketEncryptionProps) => {\n const [loading, setLoading] = useState(false);\n const [kmsKeyID, setKmsKeyID] = useState(\"\");\n const [encryptionType, setEncryptionType] = useState(\"disabled\");\n\n useEffect(() => {\n if (encryptionCfg) {\n if (encryptionCfg.algorithm === \"AES256\") {\n setEncryptionType(\"sse-s3\");\n } else {\n setEncryptionType(\"sse-kms\");\n setKmsKeyID(encryptionCfg.kmsMasterKeyID);\n }\n }\n }, [encryptionCfg]);\n\n const enableBucketEncryption = (event: React.FormEvent) => {\n event.preventDefault();\n if (loading) {\n return;\n }\n if (encryptionType === \"disabled\") {\n api\n .invoke(\"POST\", `/api/v1/buckets/${selectedBucket}/encryption/disable`)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", `/api/v1/buckets/${selectedBucket}/encryption/enable`, {\n encType: encryptionType,\n kmsKeyID: kmsKeyID,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Encryption\"\n titleIcon={}\n >\n ) => {\n enableBucketEncryption(e);\n }}\n >\n \n \n \n ) => {\n setEncryptionType(e.target.value as string);\n }}\n id=\"select-encryption-type\"\n name=\"select-encryption-type\"\n label={\"Encryption Type\"}\n value={encryptionType}\n options={[\n {\n label: \"Disabled\",\n value: \"disabled\",\n },\n {\n label: \"SSE-S3\",\n value: \"sse-s3\",\n },\n {\n label: \"SSE-KMS\",\n value: \"sse-kms\",\n },\n ]}\n />\n \n\n {encryptionType === \"sse-kms\" && (\n \n ) => {\n setKmsKeyID(e.target.value);\n }}\n />\n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={loading}\n >\n Cancel\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(EnableBucketEncryption));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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":["connector","connect","setModalErrorSnackMessage","withStyles","theme","createStyles","modalStyleUtils","formFieldStyles","classes","open","encryptionCfg","selectedBucket","closeModalAndRefresh","useState","loading","setLoading","kmsKeyID","setKmsKeyID","encryptionType","setEncryptionType","useEffect","algorithm","kmsMasterKeyID","modalOpen","onClose","title","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","then","catch","err","encType","container","item","xs","className","modalFormScrollable","formFieldRow","onChange","target","value","id","name","label","options","modalButtonBar","type","variant","color","onClick","disabled","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","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/8391.cf78366d.chunk.js b/portal-ui/build/static/js/8391.cf78366d.chunk.js deleted file mode 100644 index a395a05fb..000000000 --- a/portal-ui/build/static/js/8391.cf78366d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8391],{18391:function(e,s,a){a.r(s);var n=a(29439),t=a(1413),l=a(72791),o=a(60364),i=a(61889),c=a(36151),r=a(40986),d=a(11135),u=a(25787),m=a(42649),p=a(23814),f=a(81207),Z=a(56028),h=a(21435),k=a(90673),x=a(93656),v=a(80184),S=(0,o.$j)(null,{setModalErrorSnackMessage:m.zb});s.default=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)({},p.ID),p.DF))}))(S((function(e){var s=e.classes,a=e.open,t=e.encryptionCfg,o=e.selectedBucket,d=e.closeModalAndRefresh,u=e.setModalErrorSnackMessage,m=(0,l.useState)(!1),p=(0,n.Z)(m,2),S=p[0],b=p[1],j=(0,l.useState)(""),g=(0,n.Z)(j,2),y=g[0],M=g[1],C=(0,l.useState)("disabled"),E=(0,n.Z)(C,2),N=E[0],B=E[1];(0,l.useEffect)((function(){t&&("AES256"===t.algorithm?B("sse-s3"):(B("sse-kms"),M(t.kmsMasterKeyID)))}),[t]);return(0,v.jsx)(Z.Z,{modalOpen:a,onClose:function(){d()},title:"Enable Bucket Encryption",titleIcon:(0,v.jsx)(x.Xn,{}),children:(0,v.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),S||("disabled"===N?f.Z.invoke("POST","/api/v1/buckets/".concat(o,"/encryption/disable")).then((function(){b(!1),d()})).catch((function(e){b(!1),u(e)})):f.Z.invoke("POST","/api/v1/buckets/".concat(o,"/encryption/enable"),{encType:N,kmsKeyID:y}).then((function(){b(!1),d()})).catch((function(e){b(!1),u(e)})))},children:(0,v.jsxs)(i.ZP,{container:!0,children:[(0,v.jsxs)(i.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,v.jsx)(i.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,v.jsx)(k.Z,{onChange:function(e){B(e.target.value)},id:"select-encryption-type",name:"select-encryption-type",label:"Encryption Type",value:N,options:[{label:"Disabled",value:"disabled"},{label:"SSE-S3",value:"sse-s3"},{label:"SSE-KMS",value:"sse-kms"}]})}),"sse-kms"===N&&(0,v.jsx)(i.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,v.jsx)(h.Z,{id:"kms-key-id",name:"kms-key-id",label:"KMS Key ID",value:y,onChange:function(e){M(e.target.value)}})})]}),(0,v.jsxs)(i.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,v.jsx)(c.Z,{type:"submit",variant:"outlined",color:"primary",onClick:function(){d()},disabled:S,children:"Cancel"}),(0,v.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:S,children:"Save"})]}),S&&(0,v.jsx)(i.ZP,{item:!0,xs:12,children:(0,v.jsx)(r.Z,{})})]})})})})))},56028:function(e,s,a){var n=a(29439),t=a(1413),l=a(72791),o=a(60364),i=a(13400),c=a(55646),r=a(5574),d=a(65661),u=a(39157),m=a(11135),p=a(25787),f=a(23814),Z=a(42649),h=a(29823),k=a(28057),x=a(80184),v=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});s.Z=(0,p.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(v((function(e){var s=e.onClose,a=e.modalOpen,o=e.title,m=e.children,p=e.classes,f=e.wideLimit,Z=void 0===f||f,v=e.modalSnackMessage,S=e.noContentPadding,b=e.setModalSnackMessage,j=e.titleIcon,g=void 0===j?null:j,y=(0,l.useState)(!1),M=(0,n.Z)(y,2),C=M[0],E=M[1];(0,l.useEffect)((function(){b("")}),[b]),(0,l.useEffect)((function(){if(v){if(""===v.message)return void E(!1);"error"!==v.type&&E(!0)}}),[v]);var N=Z?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return v&&(B=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(B=v.message)),(0,x.jsxs)(r.Z,(0,t.Z)((0,t.Z)({open:a,classes:p},N),{},{scroll:"paper",onClose:function(e,a){"backdropClick"!==a&&s()},className:p.root,children:[(0,x.jsxs)(d.Z,{className:p.title,children:[(0,x.jsxs)("div",{className:p.titleText,children:[g," ",o]}),(0,x.jsx)("div",{className:p.closeContainer,children:(0,x.jsx)(i.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:s,disableRipple:!0,size:"small",children:(0,x.jsx)(h.Z,{})})})]}),(0,x.jsx)(k.Z,{isModal:!0}),(0,x.jsx)(c.Z,{open:C,className:p.snackBarModal,onClose:function(){E(!1),b("")},message:B,ContentProps:{className:"".concat(p.snackBar," ").concat(v&&"error"===v.type?p.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:S?"":p.content,children:m})]}))})))},29823:function(e,s,a){var n=a(95318);s.Z=void 0;var t=n(a(45649)),l=a(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");s.Z=o}}]); -//# sourceMappingURL=8391.cf78366d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8391.cf78366d.chunk.js.map b/portal-ui/build/static/js/8391.cf78366d.chunk.js.map deleted file mode 100644 index a6ef63277..000000000 --- a/portal-ui/build/static/js/8391.cf78366d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8391.cf78366d.chunk.js","mappings":"kTAsMMA,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,0BAAAA,EAAAA,KAGF,WAAeC,EAAAA,EAAAA,IAtKA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRC,EAAAA,IACAC,EAAAA,OAmKP,CAAkCP,GAtJH,SAAC,GAOK,IANnCQ,EAMkC,EANlCA,QACAC,EAKkC,EALlCA,KACAC,EAIkC,EAJlCA,cACAC,EAGkC,EAHlCA,eACAC,EAEkC,EAFlCA,qBACAV,EACkC,EADlCA,0BAEA,GAA8BW,EAAAA,EAAAA,WAAkB,GAAhD,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAgCF,EAAAA,EAAAA,UAAiB,IAAjD,eAAOG,EAAP,KAAiBC,EAAjB,KACA,GAA4CJ,EAAAA,EAAAA,UAAiB,YAA7D,eAAOK,EAAP,KAAuBC,EAAvB,MAEAC,EAAAA,EAAAA,YAAU,WACJV,IAC8B,WAA5BA,EAAcW,UAChBF,EAAkB,WAElBA,EAAkB,WAClBF,EAAYP,EAAcY,oBAG7B,CAACZ,IAmCJ,OACE,SAAC,IAAD,CACEa,UAAWd,EACXe,QAAS,WACPZ,KAEFa,MAAM,2BACNC,WAAW,SAAC,KAAD,IANb,UAQE,iBACEC,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,GACcA,EA7CvBC,iBACFjB,IAGmB,aAAnBI,EACFc,EAAAA,EAAAA,OACU,OADV,0BACqCrB,EADrC,wBAEGsB,MAAK,WACJlB,GAAW,GACXH,OAEDsB,OAAM,SAACC,GACNpB,GAAW,GACXb,EAA0BiC,MAG9BH,EAAAA,EAAAA,OACU,OADV,0BACqCrB,EADrC,sBACyE,CACrEyB,QAASlB,EACTF,SAAUA,IAEXiB,MAAK,WACJlB,GAAW,GACXH,OAEDsB,OAAM,SAACC,GACNpB,GAAW,GACXb,EAA0BiC,QAc9B,UAOE,UAAC,KAAD,CAAME,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIC,UAAWhC,EAAQiC,oBAAtC,WACE,SAAC,KAAD,CAAMH,MAAI,EAACC,GAAI,GAAIC,UAAWhC,EAAQkC,aAAtC,UACE,SAAC,IAAD,CACEC,SAAU,SAACb,GACTX,EAAkBW,EAAEc,OAAOC,QAE7BC,GAAG,yBACHC,KAAK,yBACLC,MAAO,kBACPH,MAAO3B,EACP+B,QAAS,CACP,CACED,MAAO,WACPH,MAAO,YAET,CACEG,MAAO,SACPH,MAAO,UAET,CACEG,MAAO,UACPH,MAAO,gBAMK,YAAnB3B,IACC,SAAC,KAAD,CAAMoB,MAAI,EAACC,GAAI,GAAIC,UAAWhC,EAAQkC,aAAtC,UACE,SAAC,IAAD,CACEI,GAAG,aACHC,KAAK,aACLC,MAAM,aACNH,MAAO7B,EACP2B,SAAU,SAACb,GACTb,EAAYa,EAAEc,OAAOC,gBAM/B,UAAC,KAAD,CAAMP,MAAI,EAACC,GAAI,GAAIC,UAAWhC,EAAQ0C,eAAtC,WACE,SAAC,IAAD,CACEC,KAAK,SACLC,QAAQ,WACRC,MAAM,UACNC,QAAS,WACP1C,KAEF2C,SAAUzC,EAPZ,qBAWA,SAAC,IAAD,CACEqC,KAAK,SACLC,QAAQ,YACRC,MAAM,UACNE,SAAUzC,EAJZ,qBASDA,IACC,SAAC,KAAD,CAAMwB,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,kB,wMCZRvC,GAAYC,EAAAA,EAAAA,KAJD,SAACuD,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAezD,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRwD,EAAAA,IADO,IAEVC,QAAS,CACPC,QAAS,GACTC,cAAe,GAEjBC,iBAAkB,CAChBC,MAAO,OACPC,SAAU,MAETC,EAAAA,OA4HP,CAAkCpE,GAzHb,SAAC,GAWF,IAVlBwB,EAUiB,EAVjBA,QACAD,EASiB,EATjBA,UACAE,EAQiB,EARjBA,MACA4C,EAOiB,EAPjBA,SACA7D,EAMiB,EANjBA,QAMiB,IALjB8D,UAAAA,OAKiB,SAJjBb,EAIiB,EAJjBA,kBACAc,EAGiB,EAHjBA,iBACAX,EAEiB,EAFjBA,qBAEiB,IADjBlC,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCb,EAAAA,EAAAA,WAAkB,GAA1D,eAAO2D,EAAP,KAAqBC,EAArB,MAEArD,EAAAA,EAAAA,YAAU,WACRwC,EAAqB,MACpB,CAACA,KAEJxC,EAAAA,EAAAA,YAAU,WACR,GAAIqC,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBiB,QAEpB,YADAD,GAAgB,GAIa,UAA3BhB,EAAkBN,MACpBsB,GAAgB,MAGnB,CAAChB,IAEJ,IAKMkB,EAAaL,EACf,CACE9D,QAAS,CACPoE,MAAOpE,EAAQyD,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,gBACEjE,KAAMc,EACNf,QAASA,GACLmE,GAHN,IAIEK,OAAQ,QACRxD,QAAS,SAACyD,EAAOC,GACA,kBAAXA,GACF1D,KAGJgB,UAAWhC,EAAQ2E,KAVrB,WAYE,UAAC,IAAD,CAAa3C,UAAWhC,EAAQiB,MAAhC,WACE,iBAAKe,UAAWhC,EAAQ4E,UAAxB,UACG1D,EADH,IACeD,MAEf,gBAAKe,UAAWhC,EAAQ6E,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXvC,GAAI,QACJN,UAAWhC,EAAQ8E,YACnBhC,QAAS9B,EACT+D,eAAa,EACbC,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWC,SAAS,KACpB,SAAC,IAAD,CACEhF,KAAM+D,EACNhC,UAAWhC,EAAQkF,cACnBlE,QAAS,WA3DbiD,GAAgB,GAChBb,EAAqB,KA6DjBc,QAASA,EACTiB,aAAc,CACZnD,UAAU,GAAD,OAAKhC,EAAQoF,SAAb,YACPnC,GAAgD,UAA3BA,EAAkBN,KACnC3C,EAAQqF,cACR,KAGRC,iBACErC,GAAgD,UAA3BA,EAAkBN,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAeX,UAAW+B,EAAmB,GAAK/D,EAAQsD,QAA1D,SACGO,a,0BCrKL0B,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/EnableBucketEncryption.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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress, SelectChangeEvent } 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 {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketEncryptionInfo } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { BucketEncryptionIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IEnableBucketEncryptionProps {\n classes: any;\n open: boolean;\n encryptionEnabled: boolean;\n encryptionCfg: BucketEncryptionInfo | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableBucketEncryption = ({\n classes,\n open,\n encryptionCfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableBucketEncryptionProps) => {\n const [loading, setLoading] = useState(false);\n const [kmsKeyID, setKmsKeyID] = useState(\"\");\n const [encryptionType, setEncryptionType] = useState(\"disabled\");\n\n useEffect(() => {\n if (encryptionCfg) {\n if (encryptionCfg.algorithm === \"AES256\") {\n setEncryptionType(\"sse-s3\");\n } else {\n setEncryptionType(\"sse-kms\");\n setKmsKeyID(encryptionCfg.kmsMasterKeyID);\n }\n }\n }, [encryptionCfg]);\n\n const enableBucketEncryption = (event: React.FormEvent) => {\n event.preventDefault();\n if (loading) {\n return;\n }\n if (encryptionType === \"disabled\") {\n api\n .invoke(\"POST\", `/api/v1/buckets/${selectedBucket}/encryption/disable`)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", `/api/v1/buckets/${selectedBucket}/encryption/enable`, {\n encType: encryptionType,\n kmsKeyID: kmsKeyID,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Encryption\"\n titleIcon={}\n >\n ) => {\n enableBucketEncryption(e);\n }}\n >\n \n \n \n ) => {\n setEncryptionType(e.target.value as string);\n }}\n id=\"select-encryption-type\"\n name=\"select-encryption-type\"\n label={\"Encryption Type\"}\n value={encryptionType}\n options={[\n {\n label: \"Disabled\",\n value: \"disabled\",\n },\n {\n label: \"SSE-S3\",\n value: \"sse-s3\",\n },\n {\n label: \"SSE-KMS\",\n value: \"sse-kms\",\n },\n ]}\n />\n \n\n {encryptionType === \"sse-kms\" && (\n \n ) => {\n setKmsKeyID(e.target.value);\n }}\n />\n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={loading}\n >\n Cancel\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(EnableBucketEncryption));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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","modalStyleUtils","formFieldStyles","classes","open","encryptionCfg","selectedBucket","closeModalAndRefresh","useState","loading","setLoading","kmsKeyID","setKmsKeyID","encryptionType","setEncryptionType","useEffect","algorithm","kmsMasterKeyID","modalOpen","onClose","title","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","then","catch","err","encType","container","item","xs","className","modalFormScrollable","formFieldRow","onChange","target","value","id","name","label","options","modalButtonBar","type","variant","color","onClick","disabled","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","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/8396.49ac6668.chunk.js b/portal-ui/build/static/js/8396.49ac6668.chunk.js new file mode 100644 index 000000000..6e23a40c2 --- /dev/null +++ b/portal-ui/build/static/js/8396.49ac6668.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8396],{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},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,b=void 0!==x&&x,Z=i.maxWidth,w=void 0===Z?"lg":Z,S=(0,a.Z)(i,f),W=(0,n.Z)({},i,{component:d,disableGutters:g,fixed:b,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,b=i.flexItem,Z=void 0!==b&&b,w=i.light,S=void 0!==w&&w,W=i.orientation,M=void 0===W?"horizontal":W,L=i.role,I=void 0===L?"hr"!==x?"separator":void 0:L,k=i.textAlign,z=void 0===k?"center":k,C=i.variant,A=void 0===C?"fullWidth":C,R=(0,r.Z)(i,v),V=(0,a.Z)({},i,{absolute:c,component:x,flexItem:Z,light:S,orientation:M,role:I,textAlign:z,variant:A}),N=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)(N.root,p),role:I,ref:e,ownerState:V},R,{children:s?(0,u.jsx)(f,{className:N.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=8396.49ac6668.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8396.49ac6668.chunk.js.map b/portal-ui/build/static/js/8396.49ac6668.chunk.js.map new file mode 100644 index 000000000..cabe45dc7 --- /dev/null +++ b/portal-ui/build/static/js/8396.49ac6668.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8396.49ac6668.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/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: \"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/8455.802bf15b.chunk.js b/portal-ui/build/static/js/8455.802bf15b.chunk.js new file mode 100644 index 000000000..424137a34 --- /dev/null +++ b/portal-ui/build/static/js/8455.802bf15b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8455],{58455:function(e,s,n){n.r(s);var a=n(29439),t=n(1413),o=n(72791),c=n(56028),l=n(61889),i=n(36151),r=n(11135),d=n(25787),u=n(23814),m=n(60364),p=n(81207),f=n(42649),h=n(90673),Z=n(93656),x=n(80184),g=(0,m.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:f.Ih});s.default=(0,d.Z)((function(e){return(0,r.Z)((0,t.Z)((0,t.Z)({buttonContainer:{textAlign:"right"}},u.ID),u.bK))}))(g((function(e){var s=e.modalOpen,n=e.onClose,t=e.classes,r=e.bucket,d=e.toEdit,u=e.initial,m=(0,o.useState)(u),g=(0,a.Z)(m,2),k=g[0],j=g[1];return(0,x.jsx)(o.Fragment,{children:(0,x.jsx)(c.Z,{modalOpen:s,title:"Edit Access Rule for ".concat("".concat(r,"/").concat(d||"")),onClose:n,titleIcon:(0,x.jsx)(Z.sR,{}),children:(0,x.jsxs)(l.ZP,{container:!0,children:[(0,x.jsx)(l.ZP,{item:!0,xs:12,className:t.spacerTop,children:(0,x.jsx)(h.Z,{id:"access",name:"Access",onChange:function(e){j(e.target.value)},label:"Access",value:k,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1})}),(0,x.jsxs)(l.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,x.jsx)(i.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){j(u)},children:"Clear"}),(0,x.jsx)(i.Z,{type:"submit",variant:"contained",color:"primary",onClick:function(){p.Z.invoke("PUT","/api/v1/bucket/".concat(r,"/access-rules"),{prefix:d,access:k}).then((function(e){n()})).catch((function(e){(0,f.Ih)(e),n()}))},children:"Save"})]})]})})})})))},56028:function(e,s,n){var a=n(29439),t=n(1413),o=n(72791),c=n(60364),l=n(13400),i=n(55646),r=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),f=n(23814),h=n(42649),Z=n(29823),x=n(28057),g=n(80184),k=(0,c.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});s.Z=(0,p.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(k((function(e){var s=e.onClose,n=e.modalOpen,c=e.title,m=e.children,p=e.classes,f=e.wideLimit,h=void 0===f||f,k=e.modalSnackMessage,j=e.noContentPadding,v=e.setModalSnackMessage,C=e.titleIcon,b=void 0===C?null:C,M=(0,o.useState)(!1),y=(0,a.Z)(M,2),S=y[0],N=y[1];(0,o.useEffect)((function(){v("")}),[v]),(0,o.useEffect)((function(){if(k){if(""===k.message)return void N(!1);"error"!==k.type&&N(!0)}}),[k]);var w=h?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return k&&(B=k.detailedErrorMsg,(""===k.detailedErrorMsg||k.detailedErrorMsg.length<5)&&(B=k.message)),(0,g.jsxs)(r.Z,(0,t.Z)((0,t.Z)({open:n,classes:p},w),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&s()},className:p.root,children:[(0,g.jsxs)(d.Z,{className:p.title,children:[(0,g.jsxs)("div",{className:p.titleText,children:[b," ",c]}),(0,g.jsx)("div",{className:p.closeContainer,children:(0,g.jsx)(l.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:s,disableRipple:!0,size:"small",children:(0,g.jsx)(Z.Z,{})})})]}),(0,g.jsx)(x.Z,{isModal:!0}),(0,g.jsx)(i.Z,{open:S,className:p.snackBarModal,onClose:function(){N(!1),v("")},message:B,ContentProps:{className:"".concat(p.snackBar," ").concat(k&&"error"===k.type?p.errorSnackBar:"")},autoHideDuration:k&&"error"===k.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:j?"":p.content,children:m})]}))})))}}]); +//# sourceMappingURL=8455.802bf15b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8455.802bf15b.chunk.js.map b/portal-ui/build/static/js/8455.802bf15b.chunk.js.map new file mode 100644 index 000000000..1702df0bc --- /dev/null +++ b/portal-ui/build/static/js/8455.802bf15b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8455.802bf15b.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EditAccessRule.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 ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\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 modalStyleUtils,\n spacingUtils,\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 IEditAccessRule {\n classes: any;\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toEdit: string;\n initial: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst EditAccessRule = ({\n modalOpen,\n onClose,\n classes,\n bucket,\n toEdit,\n initial,\n}: IEditAccessRule) => {\n const [selectedAccess, setSelectedAccess] = useState(initial);\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 setSelectedAccess(initial);\n };\n\n const createProcess = () => {\n api\n .invoke(\"PUT\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: toEdit,\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 {\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};\n\nexport default withStyles(styles)(connector(EditAccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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":["connector","connect","state","session","console","setErrorSnackMessage","withStyles","theme","createStyles","buttonContainer","textAlign","modalStyleUtils","spacingUtils","modalOpen","onClose","classes","bucket","toEdit","initial","useState","selectedAccess","setSelectedAccess","title","titleIcon","container","item","xs","className","spacerTop","id","name","onChange","e","target","value","label","options","disabled","modalButtonBar","type","color","variant","onClick","api","prefix","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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8455.f9b61de1.chunk.js b/portal-ui/build/static/js/8455.f9b61de1.chunk.js deleted file mode 100644 index 66a07961a..000000000 --- a/portal-ui/build/static/js/8455.f9b61de1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8455],{58455:function(e,s,a){a.r(s);var n=a(29439),t=a(1413),o=a(72791),l=a(56028),c=a(61889),i=a(36151),r=a(11135),d=a(25787),u=a(23814),m=a(60364),p=a(81207),f=a(42649),Z=a(90673),h=a(93656),x=a(80184),g=(0,m.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:f.Ih});s.default=(0,d.Z)((function(e){return(0,r.Z)((0,t.Z)((0,t.Z)({buttonContainer:{textAlign:"right"}},u.ID),u.bK))}))(g((function(e){var s=e.modalOpen,a=e.onClose,t=e.classes,r=e.bucket,d=e.toEdit,u=e.initial,m=(0,o.useState)(u),g=(0,n.Z)(m,2),v=g[0],j=g[1];return(0,x.jsx)(o.Fragment,{children:(0,x.jsx)(l.Z,{modalOpen:s,title:"Edit Access Rule for ".concat("".concat(r,"/").concat(d||"")),onClose:a,titleIcon:(0,x.jsx)(h.sR,{}),children:(0,x.jsxs)(c.ZP,{container:!0,children:[(0,x.jsx)(c.ZP,{item:!0,xs:12,className:t.spacerTop,children:(0,x.jsx)(Z.Z,{id:"access",name:"Access",onChange:function(e){j(e.target.value)},label:"Access",value:v,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1})}),(0,x.jsxs)(c.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,x.jsx)(i.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){j(u)},children:"Clear"}),(0,x.jsx)(i.Z,{type:"submit",variant:"contained",color:"primary",onClick:function(){p.Z.invoke("PUT","/api/v1/bucket/".concat(r,"/access-rules"),{prefix:d,access:v}).then((function(e){a()})).catch((function(e){(0,f.Ih)(e),a()}))},children:"Save"})]})]})})})})))},56028:function(e,s,a){var n=a(29439),t=a(1413),o=a(72791),l=a(60364),c=a(13400),i=a(55646),r=a(5574),d=a(65661),u=a(39157),m=a(11135),p=a(25787),f=a(23814),Z=a(42649),h=a(29823),x=a(28057),g=a(80184),v=(0,l.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});s.Z=(0,p.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(v((function(e){var s=e.onClose,a=e.modalOpen,l=e.title,m=e.children,p=e.classes,f=e.wideLimit,Z=void 0===f||f,v=e.modalSnackMessage,j=e.noContentPadding,k=e.setModalSnackMessage,C=e.titleIcon,b=void 0===C?null:C,M=(0,o.useState)(!1),y=(0,n.Z)(M,2),S=y[0],N=y[1];(0,o.useEffect)((function(){k("")}),[k]),(0,o.useEffect)((function(){if(v){if(""===v.message)return void N(!1);"error"!==v.type&&N(!0)}}),[v]);var w=Z?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return v&&(B=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(B=v.message)),(0,g.jsxs)(r.Z,(0,t.Z)((0,t.Z)({open:a,classes:p},w),{},{scroll:"paper",onClose:function(e,a){"backdropClick"!==a&&s()},className:p.root,children:[(0,g.jsxs)(d.Z,{className:p.title,children:[(0,g.jsxs)("div",{className:p.titleText,children:[b," ",l]}),(0,g.jsx)("div",{className:p.closeContainer,children:(0,g.jsx)(c.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:s,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(x.Z,{isModal:!0}),(0,g.jsx)(i.Z,{open:S,className:p.snackBarModal,onClose:function(){N(!1),k("")},message:B,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:j?"":p.content,children:m})]}))})))},29823:function(e,s,a){var n=a(95318);s.Z=void 0;var t=n(a(45649)),o=a(80184),l=(0,t.default)((0,o.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");s.Z=l}}]); -//# sourceMappingURL=8455.f9b61de1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8455.f9b61de1.chunk.js.map b/portal-ui/build/static/js/8455.f9b61de1.chunk.js.map deleted file mode 100644 index 2f59d83a7..000000000 --- a/portal-ui/build/static/js/8455.f9b61de1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8455.f9b61de1.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EditAccessRule.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalStyleUtils,\n spacingUtils,\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 IEditAccessRule {\n classes: any;\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toEdit: string;\n initial: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst EditAccessRule = ({\n modalOpen,\n onClose,\n classes,\n bucket,\n toEdit,\n initial,\n}: IEditAccessRule) => {\n const [selectedAccess, setSelectedAccess] = useState(initial);\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 setSelectedAccess(initial);\n };\n\n const createProcess = () => {\n api\n .invoke(\"PUT\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: toEdit,\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 {\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};\n\nexport default withStyles(styles)(connector(EditAccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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","buttonContainer","textAlign","modalStyleUtils","spacingUtils","modalOpen","onClose","classes","bucket","toEdit","initial","useState","selectedAccess","setSelectedAccess","title","titleIcon","container","item","xs","className","spacerTop","id","name","onChange","e","target","value","label","options","disabled","modalButtonBar","type","color","variant","onClick","api","prefix","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/8760.e06a6adc.chunk.js b/portal-ui/build/static/js/8760.e06a6adc.chunk.js deleted file mode 100644 index 057f23fee..000000000 --- a/portal-ui/build/static/js/8760.e06a6adc.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8760,9362,2879],{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},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},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});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"),m=(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=n(14036),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],y=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.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,h.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),j=(0,u.jsx)(v,{}),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?j:l,p=s.color,v=void 0===p?"primary":p,m=s.icon,Z=void 0===m?w:m,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,S=void 0===g?P:g,E=s.inputProps,C=s.size,I=void 0===C?"medium":C,M=(0,r.Z)(s,k),H=z?S:Z,L=z?S:d,O=(0,i.Z)({},s,{color:v,indeterminate:z,size:I}),R=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(O);return(0,u.jsx)(y,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},E),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:I}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:I}),ownerState:O,ref:t},M,{classes:R}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});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),m=n(95159);function h(e){return(0,m.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),y=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,m=n.component,Z=void 0===m?"div":m,y=n.disablePointerEvents,j=void 0!==y&&y,w=n.disableTypography,P=void 0!==w&&w,g=n.position,S=n.variant,E=(0,r.Z)(n,z),C=(0,p.Z)()||{},I=S;S&&C.variant,C&&!I&&(I=C.variant);var M=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:j,position:g,variant:I}),H=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,h,t)}(M);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,i.Z)({as:Z,ownerState:M,className:(0,c.Z)(H.root,v),ref:t},E,{children:"string"!==typeof o||P?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(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=8760.e06a6adc.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8760.e06a6adc.chunk.js.map b/portal-ui/build/static/js/8760.e06a6adc.chunk.js.map deleted file mode 100644 index 40d596298..000000000 --- a/portal-ui/build/static/js/8760.e06a6adc.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8760.e06a6adc.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/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":["\"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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_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/8771.475684ba.chunk.js b/portal-ui/build/static/js/8771.475684ba.chunk.js new file mode 100644 index 000000000..fec0f190d --- /dev/null +++ b/portal-ui/build/static/js/8771.475684ba.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8771],{64163:function(e,n,t){var i=t(1413),s=t(72791),l=t(61889),c=t(11135),r=t(25787),a=t(23814),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,c.Z)((0,i.Z)({},a.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,c=e.content,r=e.multiLine,a=void 0!==r&&r;return(0,o.jsx)(s.Fragment,{children:(0,o.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,o.jsx)(l.ZP,{item:!0,xs:12,className:a?n.innerContentMultiline:n.innerContent,children:c})})]})})}))},39134:function(e,n,t){t.r(n);var i=t(29439),s=t(1413),l=t(72791),c=t(60364),r=t(26181),a=t.n(r),o=t(11135),u=t(25787),d=t(36151),Z=t(40986),x=t(61889),p=t(23814),m=t(42649),f=t(56028),h=t(81207),j=t(58400),v=t(64163),b=t(80184),y={setModalErrorSnackMessage:m.zb},P=(0,c.$j)(null,y);n.default=(0,u.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},p.oO),p.bK),{},{tableBlock:(0,s.Z)((0,s.Z)({},p.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(P((function(e){var n=e.classes,t=e.closeModalAndRefresh,s=e.selectedUser,c=e.selectedGroup,r=e.setModalErrorSnackMessage,o=e.open,u=(0,l.useState)(!1),p=(0,i.Z)(u,2),m=p[0],y=p[1],P=(0,l.useState)([]),k=(0,i.Z)(P,2),C=k[0],g=k[1],S=(0,l.useState)([]),N=(0,i.Z)(S,2),M=N[0],T=N[1];(0,l.useEffect)((function(){if(o){if(null!==c)return void(c&&h.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(c))).then((function(e){var n=a()(e,"policy","");g(n.split(",")),T(n.split(","))})).catch((function(e){r(e),y(!1)})));var e=a()(s,"policy",[]);g(e),T(e)}}),[o,c,s]);var E=a()(s,"accessKey","");return(0,b.jsxs)(f.Z,{onClose:function(){t()},modalOpen:o,title:"Set Policies",children:[(0,b.jsxs)(x.ZP,{container:!0,children:[(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Selected ".concat(null!==c?"Group":"User"),content:null!==c?c:E})}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Current Policy",content:C.join(", ")})}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)("div",{className:n.tableBlock,children:(0,b.jsx)(j.Z,{selectedPolicy:M,setSelectedPolicy:T})})})]}),(0,b.jsxs)(x.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,b.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){T(C)},children:"Reset"}),(0,b.jsx)(d.Z,{type:"button",variant:"contained",color:"primary",disabled:m,onClick:function(){var e="user",n=null;null!==c?(e="group",n=c):null!==s&&(n=s.accessKey),y(!0),h.Z.invoke("PUT","/api/v1/set-policy",{name:M,entityName:n,entityType:e}).then((function(){y(!1),t()})).catch((function(e){y(!1),r(e)}))},children:"Save"})]}),m&&(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(Z.Z,{})})]})})))}}]); +//# sourceMappingURL=8771.475684ba.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8771.475684ba.chunk.js.map b/portal-ui/build/static/js/8771.475684ba.chunk.js.map new file mode 100644 index 000000000..575d3a952 --- /dev/null +++ b/portal-ui/build/static/js/8771.475684ba.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8771.475684ba.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Policies/SetPolicy.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, { 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
    \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"],"names":["withStyles","theme","createStyles","predefinedList","classes","label","content","multiLine","Fragment","className","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","mapDispatchToProps","setModalErrorSnackMessage","connector","connect","modalBasic","spacingUtils","tableBlock","tableStyles","marginTop","buttonContainer","textAlign","closeModalAndRefresh","selectedUser","selectedGroup","open","useState","loading","setLoading","actualPolicy","setActualPolicy","selectedPolicy","setSelectedPolicy","useEffect","api","encodeURI","then","res","groupPolicy","get","split","catch","err","userPolicy","userName","onClose","modalOpen","title","container","join","type","variant","color","spacerRight","onClick","disabled","entity","value","accessKey","name","entityName","entityType"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8771.b2727bdd.chunk.js b/portal-ui/build/static/js/8771.b2727bdd.chunk.js deleted file mode 100644 index da5b0cd82..000000000 --- a/portal-ui/build/static/js/8771.b2727bdd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8771],{64163:function(e,n,t){var i=t(1413),l=t(72791),s=t(61889),c=t(11135),a=t(25787),r=t(23814),o=t(80184);n.Z=(0,a.Z)((function(e){return(0,c.Z)((0,i.Z)({},r.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,c=e.content,a=e.multiLine,r=void 0!==a&&a;return(0,o.jsx)(l.Fragment,{children:(0,o.jsxs)(s.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,o.jsx)(s.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,o.jsx)(s.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,o.jsx)(s.ZP,{item:!0,xs:12,className:r?n.innerContentMultiline:n.innerContent,children:c})})]})})}))},39134:function(e,n,t){t.r(n);var i=t(29439),l=t(1413),s=t(72791),c=t(60364),a=t(26181),r=t.n(a),o=t(11135),u=t(25787),d=t(36151),Z=t(40986),p=t(61889),x=t(23814),f=t(42649),m=t(56028),h=t(81207),j=t(58400),v=t(64163),b=t(80184),y={setModalErrorSnackMessage:f.zb},k=(0,c.$j)(null,y);n.default=(0,u.Z)((function(e){return(0,o.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},x.oO),x.bK),{},{tableBlock:(0,l.Z)((0,l.Z)({},x.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(k((function(e){var n=e.classes,t=e.closeModalAndRefresh,l=e.selectedUser,c=e.selectedGroup,a=e.setModalErrorSnackMessage,o=e.open,u=(0,s.useState)(!1),x=(0,i.Z)(u,2),f=x[0],y=x[1],k=(0,s.useState)([]),P=(0,i.Z)(k,2),C=P[0],g=P[1],S=(0,s.useState)([]),N=(0,i.Z)(S,2),M=N[0],T=N[1];(0,s.useEffect)((function(){if(o){if(null!==c)return void(c&&h.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(c))).then((function(e){var n=r()(e,"policy","");g(n.split(",")),T(n.split(","))})).catch((function(e){a(e),y(!1)})));var e=r()(l,"policy",[]);g(e),T(e)}}),[o,c,l]);var E=r()(l,"accessKey","");return(0,b.jsxs)(m.Z,{onClose:function(){t()},modalOpen:o,title:"Set Policies",children:[(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Selected ".concat(null!==c?"Group":"User"),content:null!==c?c:E})}),(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Current Policy",content:C.join(", ")})}),(0,b.jsx)("div",{className:n.tableBlock,children:(0,b.jsx)(j.Z,{selectedPolicy:M,setSelectedPolicy:T})}),(0,b.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,b.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){T(C)},children:"Reset"}),(0,b.jsx)(d.Z,{type:"button",variant:"contained",color:"primary",disabled:f,onClick:function(){var e="user",n=null;null!==c?(e="group",n=c):null!==l&&(n=l.accessKey),y(!0),h.Z.invoke("PUT","/api/v1/set-policy",{name:M,entityName:n,entityType:e}).then((function(){y(!1),t()})).catch((function(e){y(!1),a(e)}))},children:"Save"})]}),f&&(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(Z.Z,{})})]})})))}}]); -//# sourceMappingURL=8771.b2727bdd.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8771.b2727bdd.chunk.js.map b/portal-ui/build/static/js/8771.b2727bdd.chunk.js.map deleted file mode 100644 index d59c10bb6..000000000 --- a/portal-ui/build/static/js/8771.b2727bdd.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8771.b2727bdd.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Policies/SetPolicy.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, { 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"],"names":["withStyles","theme","createStyles","predefinedList","classes","label","content","multiLine","Fragment","className","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","mapDispatchToProps","setModalErrorSnackMessage","connector","connect","modalBasic","spacingUtils","tableBlock","tableStyles","marginTop","buttonContainer","textAlign","closeModalAndRefresh","selectedUser","selectedGroup","open","useState","loading","setLoading","actualPolicy","setActualPolicy","selectedPolicy","setSelectedPolicy","useEffect","api","encodeURI","then","res","groupPolicy","get","split","catch","err","userPolicy","userName","onClose","modalOpen","title","join","type","variant","color","spacerRight","onClick","disabled","entity","value","accessKey","name","entityName","entityType"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8822.6030f20d.chunk.js b/portal-ui/build/static/js/8822.6030f20d.chunk.js deleted file mode 100644 index e6bf8facb..000000000 --- a/portal-ui/build/static/js/8822.6030f20d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8822],{40603:function(e,n,t){var a=t(1413),s=t(45987),l=(t(72791),t(85531)),o=t(72455),i=t(80184),r=["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,a=n.color,s=e.palette.primary.main;return"primary"===a&&"contained"===t?s=e.palette.primary.contrastText:"primary"===a&&"outlined"===t?s=e.palette.primary.main:"secondary"===a&&(s=e.palette.secondary.main),s}(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,x=e.tooltip,Z=e.icon,p=void 0===Z?null:Z,f=e.className,v=void 0===f?"":f,h=(0,s.Z)(e,r);return(0,i.jsxs)(l.Z,(0,a.Z)((0,a.Z)({className:v,classes:n,tooltip:x||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,i.jsx)("span",{children:d})," ",p]}))}},45902:function(e,n,t){var a=t(1413),s=(t(72791),t(53767)),l=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,o=e.value,i=void 0===o?"-":o,r=e.orientation,c=void 0===r?"column":r,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,x=void 0===m?{}:m,Z=e.valProps,p=void 0===Z?{}:Z;return(0,l.jsxs)(s.Z,(0,a.Z)((0,a.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,l.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:600}},x),{},{children:t})),(0,l.jsx)("label",(0,a.Z)((0,a.Z)({style:{marginRight:5,fontWeight:500}},p),{},{children:i}))]}))}},18822:function(e,n,t){t.r(n),t.d(n,{default:function(){return V}});var a=t(29439),s=t(1413),l=t(72791),o=t(60364),i=t(11135),r=t(25787),c=t(23814),d=t(61889),u=t(42649),m=t(75460),x=t(27391),Z=t(63466),p=t(74900),f=t(40603),v=t(93656),h=t(92983),j=t(80184),g=(0,o.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:u.Ih,setSelectedPool:m.Lm}),P=(0,r.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},c.oZ),c.OR),c.VX),(0,c.Bz)(e.spacing(4))))}))(g((function(e){var n=e.classes,t=e.tenant,s=e.loadingTenant,o=e.setSelectedPool,i=e.history,r=e.setPoolDetailsView,c=(0,l.useState)([]),u=(0,a.Z)(c,2),m=u[0],g=u[1],P=(0,l.useState)(""),y=(0,a.Z)(P,2),b=y[0],T=y[1];(0,l.useEffect)((function(){if(t){var e=t.pools?t.pools:[];g(e)}}),[t]);var D=m.filter((function(e){return!!e.name.toLowerCase().includes(b.toLowerCase())})),C=[{type:"view",onClick:function(e){o(e.name),r()}}];return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,j.jsx)(x.Z,{placeholder:"Filter",className:n.searchField,id:"search-resource",label:"",onChange:function(e){T(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,j.jsx)(Z.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})},variant:"standard"}),(0,j.jsx)(f.Z,{tooltip:"Expand Tenant",text:"Expand Tenant",onClick:function(){i.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,j.jsx)(v.dt,{}),color:"primary",variant:"contained"})]}),(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)("br",{})}),(0,j.jsx)(d.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,j.jsx)(h.Z,{itemActions:C,columns:[{label:"Name",elementKey:"name"},{label:"Capacity",elementKey:"capacity"},{label:"# of Instances",elementKey:"servers"},{label:"# of Drives",elementKey:"volumes"}],isLoading:s,records:D,entityName:"Servers",idField:"name",customEmptyMessage:"No Pools found"})})]})}))),y=t(64554),b=t(45902),T=t(45248),D={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2},C=(0,o.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,selectedPool:e.tenants.tenantDetails.selectedPool}}),{setErrorSnackMessage:u.Ih,setTenantDetailsLoad:m.V2}),k=(0,r.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},c.bK),c.VI),c.oZ),c.VX),(0,c.Bz)(e.spacing(4))))}))(C((function(e){e.closeDetailsView;var n=e.tenant,t=e.selectedPool,a=(null===n||void 0===n?void 0:n.pools.find((function(e){return e.name===t})))||null;return null===a?null:(0,j.jsx)(l.Fragment,{children:(0,j.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsx)(d.ZP,{item:!0,xs:8,children:(0,j.jsx)("h4",{children:"Pool Configuration"})}),(0,j.jsx)(d.ZP,{item:!0,xs:4})]}),(0,j.jsxs)(y.Z,{sx:(0,s.Z)({},D),children:[(0,j.jsx)(b.Z,{label:"Pool Name",value:a.label}),(0,j.jsx)(b.Z,{label:"Total Volumes",value:a.volumes}),(0,j.jsx)(b.Z,{label:"Volumes per server",value:a.volumes_per_server}),(0,j.jsx)(b.Z,{label:"Capacity",value:a.capacity})]}),(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsx)(d.ZP,{item:!0,xs:8,children:(0,j.jsx)("h4",{children:"Resources"})}),(0,j.jsx)(d.ZP,{item:!0,xs:4})]}),(0,j.jsxs)(y.Z,{sx:(0,s.Z)({},D),children:[a.resources&&(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(b.Z,{label:"CPU",value:a.resources.requests.cpu}),(0,j.jsx)(b.Z,{label:"Memory",value:(0,T.l5)(a.resources.requests.memory)})]}),(0,j.jsx)(b.Z,{label:"Volume Size",value:(0,T.l5)(a.volume_configuration.size)}),(0,j.jsx)(b.Z,{label:"Storage Class Name",value:a.volume_configuration.storage_class_name})]})]})})}))),w=t(84669),S=(0,o.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,selectedPool:e.tenants.tenantDetails.selectedPool,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:u.Ih,setTenantDetailsLoad:m.V2,setSelectedPool:m.Lm}),V=(0,r.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},c.oZ),c.OR),c.VX),(0,c.Bz)(e.spacing(4))))}))(S((function(e){var n=e.classes,t=e.history,s=e.selectedPool,o=e.match,i=(0,l.useState)(!1),r=(0,a.Z)(i,2),c=r[0],u=r[1];return(0,j.jsxs)(l.Fragment,{children:[c&&(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)(w.Z,{executeOnClick:function(){u(!1)},label:"Back to Pools list",to:o.url})}),(0,j.jsx)("h1",{className:n.sectionTitle,children:c?"Pool Details - ".concat(s||""):"Pools"}),(0,j.jsx)(d.ZP,{container:!0,children:c?(0,j.jsx)(k,{closeDetailsView:function(){u(!1)}}):(0,j.jsx)(P,{setPoolDetailsView:function(){u(!0)},history:t})})]})})))}}]); -//# sourceMappingURL=8822.6030f20d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8822.6030f20d.chunk.js.map b/portal-ui/build/static/js/8822.6030f20d.chunk.js.map deleted file mode 100644 index d8d8b4563..000000000 --- a/portal-ui/build/static/js/8822.6030f20d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8822.6030f20d.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Tenants/TenantDetails/Pools/Details/PoolsListing.tsx","screens/Console/Tenants/TenantDetails/Pools/Details/PoolDetails.tsx","screens/Console/Tenants/TenantDetails/PoolsSummary.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport 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 { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../../store\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { setSelectedPool } from \"../../../actions\";\nimport { IPool, ITenant } from \"../../../ListTenants/types\";\nimport Grid from \"@mui/material/Grid\";\nimport { TextField } from \"@mui/material\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../../../../icons/SearchIcon\";\nimport RBIconButton from \"../../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { AddIcon } from \"../../../../../../icons\";\nimport TableWrapper from \"../../../../Common/TableWrapper/TableWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\ninterface IPoolsSummary {\n classes: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n history: any;\n setPoolDetailsView: () => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSelectedPool: typeof setSelectedPool;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsListing = ({\n classes,\n tenant,\n loadingTenant,\n setSelectedPool,\n history,\n setPoolDetailsView,\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 const listActions = [\n {\n type: \"view\",\n onClick: (selectedValue: IPool) => {\n setSelectedPool(selectedValue.name);\n setPoolDetailsView();\n },\n },\n ];\n\n return (\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\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 setSelectedPool,\n});\n\nexport default withStyles(styles)(connector(PoolsListing));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n spacingUtils,\n tableStyles,\n tenantDetailsStyles,\n textStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { setTenantDetailsLoad } from \"../../../actions\";\nimport { Box } from \"@mui/material\";\nimport { ITenant } from \"../../../ListTenants/types\";\nimport Grid from \"@mui/material/Grid\";\nimport LabelValuePair from \"../../../../Common/UsageBarWrapper/LabelValuePair\";\nimport { niceBytesInt } from \"../../../../../../common/utils\";\n\ninterface IPoolDetails {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n selectedPool: string | null;\n closeDetailsView: () => void;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...spacingUtils,\n ...textStyleUtils,\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst twoColCssGridLayoutConfig = {\n display: \"grid\",\n gridTemplateColumns: { xs: \"1fr\", sm: \"2fr 1fr\" },\n gridAutoFlow: { xs: \"dense\", sm: \"row\" },\n gap: 2,\n};\n\nconst PoolDetails = ({\n closeDetailsView,\n tenant,\n selectedPool,\n}: IPoolDetails) => {\n const poolInformation =\n tenant?.pools.find((pool) => pool.name === selectedPool) || null;\n\n if (poolInformation === null) {\n return null;\n }\n\n return (\n \n \n \n \n

    Pool Configuration

    \n
    \n \n \n \n \n \n \n \n \n \n \n

    Resources

    \n
    \n \n \n \n {poolInformation.resources && (\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 selectedPool: state.tenants.tenantDetails.selectedPool,\n});\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(PoolDetails));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { 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 Grid from \"@mui/material/Grid\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { setSelectedPool, setTenantDetailsLoad } from \"../actions\";\nimport PoolsListing from \"./Pools/Details/PoolsListing\";\nimport PoolDetails from \"./Pools/Details/PoolDetails\";\nimport BackLink from \"../../../../common/BackLink\";\n\ninterface IPoolsSummary {\n classes: any;\n loadingTenant: boolean;\n history: any;\n match: any;\n selectedPool: string | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n setSelectedPool: typeof setSelectedPool;\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 history,\n selectedPool,\n match,\n}: IPoolsSummary) => {\n const [poolDetailsOpen, setPoolDetailsOpen] = useState(false);\n return (\n \n {poolDetailsOpen && (\n \n {\n setPoolDetailsOpen(false);\n }}\n label={\"Back to Pools list\"}\n to={match.url}\n />\n \n )}\n

    \n {poolDetailsOpen ? `Pool Details - ${selectedPool || \"\"}` : \"Pools\"}\n

    \n \n {poolDetailsOpen ? (\n {\n setPoolDetailsOpen(false);\n }}\n />\n ) : (\n {\n setPoolDetailsOpen(true);\n }}\n history={history}\n />\n )}\n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n selectedPool: state.tenants.tenantDetails.selectedPool,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n setSelectedPool,\n});\n\nexport default withStyles(styles)(connector(PoolsSummary));\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","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","setErrorSnackMessage","setSelectedPool","withStyles","createStyles","tenantDetailsStyles","actionsTray","tableStyles","containerForHeader","spacing","history","setPoolDetailsView","useState","pools","setPools","filter","setFilter","useEffect","resPools","filteredPools","pool","name","toLowerCase","includes","listActions","type","selectedValue","Fragment","Grid","item","TextField","placeholder","searchField","id","onChange","event","target","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","RBIconButton","push","namespace","tableBlock","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","customEmptyMessage","twoColCssGridLayoutConfig","gridTemplateColumns","gridAutoFlow","gap","selectedPool","setTenantDetailsLoad","spacingUtils","textStyleUtils","closeDetailsView","poolInformation","find","container","Box","LabelValuePair","volumes","volumes_per_server","capacity","resources","requests","cpu","niceBytesInt","memory","volume_configuration","storage_class_name","match","poolDetailsOpen","setPoolDetailsOpen","BackLink","executeOnClick","to","url","sectionTitle"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8833.5d3a1948.chunk.js b/portal-ui/build/static/js/8833.5d3a1948.chunk.js new file mode 100644 index 000000000..10ad29458 --- /dev/null +++ b/portal-ui/build/static/js/8833.5d3a1948.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8833],{47986:function(e,t,n){n(72791);var s=n(61889),i=n(64554),r=n(23804),a=n(80184);t.Z=function(e){var t=e.iconComponent,n=e.entity;return(0,a.jsx)(s.ZP,{container:!0,alignItems:"center",children:(0,a.jsx)(s.ZP,{item:!0,xs:12,children:(0,a.jsx)(r.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,a.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,a.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,a.jsxs)("div",{children:["Please deploy a server in"," ",(0,a.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."]})]})})})})}},56028:function(e,t,n){var s=n(29439),i=n(1413),r=n(72791),a=n(60364),o=n(13400),l=n(55646),c=n(5574),d=n(65661),p=n(39157),x=n(11135),u=n(25787),f=n(23814),h=n(42649),m=n(29823),g=n(28057),j=n(80184),Z=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});t.Z=(0,u.Z)((function(e){return(0,x.Z)((0,i.Z)((0,i.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(Z((function(e){var t=e.onClose,n=e.modalOpen,a=e.title,x=e.children,u=e.classes,f=e.wideLimit,h=void 0===f||f,Z=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,y=e.titleIcon,w=void 0===y?null:y,k=(0,r.useState)(!1),S=(0,s.Z)(k,2),C=S[0],T=S[1];(0,r.useEffect)((function(){b("")}),[b]),(0,r.useEffect)((function(){if(Z){if(""===Z.message)return void T(!1);"error"!==Z.type&&T(!0)}}),[Z]);var I=h?{classes:{paper:u.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return Z&&(N=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(N=Z.message)),(0,j.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:n,classes:u},I),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:u.root,children:[(0,j.jsxs)(d.Z,{className:u.title,children:[(0,j.jsxs)("div",{className:u.titleText,children:[w," ",a]}),(0,j.jsx)("div",{className:u.closeContainer,children:(0,j.jsx)(o.Z,{"aria-label":"close",id:"close",className:u.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,j.jsx)(m.Z,{})})})]}),(0,j.jsx)(g.Z,{isModal:!0}),(0,j.jsx)(l.Z,{open:C,className:u.snackBarModal,onClose:function(){T(!1),b("")},message:N,ContentProps:{className:"".concat(u.snackBar," ").concat(Z&&"error"===Z.type?u.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,j.jsx)(p.Z,{className:v?"":u.content,children:x})]}))})))},58833:function(e,t,n){n.r(t);var s=n(15861),i=n(29439),r=n(1413),a=n(87757),o=n.n(a),l=n(72791),c=n(64554),d=n(36151),p=n(51691),x=n(32291),u=n(74794),f=n(21435),h=n(37516),m=n(93656),g=n(56028),j=n(11135),Z=n(23814),v=n(25787),b=n(42649),y=n(60364),w=n(23804),k=n(45248),S=n(47986),C=n(25183),T=n(73669),I=n(80184),N={setErrorSnackMessage:b.Ih},M=(0,y.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),N),z=function(e){var t=e.volumeVal,n=e.pathVal;return(0,I.jsx)(c.Z,{className:"code-block-container",children:(0,I.jsxs)(c.Z,{className:"example-code-block",children:[(0,I.jsxs)(c.Z,{sx:{display:"flex",marginBottom:"5px",flexFlow:{sm:"row",xs:"column"}},children:[(0,I.jsx)("label",{children:"Volume/bucket Name :"})," ",(0,I.jsx)("code",{children:t})]}),(0,I.jsxs)(c.Z,{sx:{display:"flex",flexFlow:{sm:"row",xs:"column"}},children:[(0,I.jsx)("label",{children:"Path : "}),(0,I.jsx)("code",{children:n})]})]})})};t.default=(0,v.Z)((function(e){return(0,j.Z)((0,r.Z)((0,r.Z)({switchLabel:{fontWeight:"normal"}},Z.Qw),Z.ID))}))(M((function(e){var t=e.classes,n=e.setErrorSnackMessage,r=e.distributedSetup,a=(0,l.useState)(""),j=(0,i.Z)(a,2),Z=j[0],v=j[1],b=(0,l.useState)(""),y=(0,i.Z)(b,2),N=y[0],M=y[1],E=(0,l.useState)(!0),P=(0,i.Z)(E,2),B=P[0],V=P[1],_=(0,l.useState)(""),D=(0,i.Z)(_,2),W=D[0],F=D[1],R=(0,l.useState)(""),L=(0,i.Z)(R,2),q=L[0],O=L[1],G=(0,l.useState)(!1),U=(0,i.Z)(G,2),A=U[0],H=U[1],K=(0,l.useState)(""),Q=(0,i.Z)(K,2),$=Q[0],Y=Q[1],J=(0,l.useState)(""),X=(0,i.Z)(J,2),ee=X[0],te=X[1];(0,l.useEffect)((function(){var e,t;(e=Z.trim().length>0)?"/"===Z.slice(0,1)&&(e=!1,Y("Volume/Bucket name cannot start with /")):Y("This field is required"),t=N.trim().length>0,N?"/"===N.slice(0,1)&&(t=!1,te("Path cannot start with /")):te("This field is required");var n=e&&t;e&&Y(""),t&&te(""),H(n)}),[Z,N]);var ne=function(){var e=(0,s.Z)(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),se=function(){var e=(0,s.Z)(o().mark((function e(){var t,i,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=encodeURIComponent(N),i=encodeURIComponent(Z),r="/api/v1/admin/inspect?volume=".concat(i,"&file=").concat(t,"&encrypt=").concat(B),ne(r).then(function(){var e=(0,s.Z)(o().mark((function e(t){var s,i,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.ok){e.next=5;break}return e.next=3,t.json();case 3:s=e.sent,n({errorMessage:s.message,detailedError:s.code});case 5:return e.next=7,t.blob();case 7:i=e.sent,r=t.headers.get("content-disposition").split('"')[1],a=(0,k.Do)(r)||"",(0,k.zZ)(i,r),O(r),F(a);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){n(e)}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ie=function(){v(""),M(""),V(!0)};return(0,I.jsxs)(l.Fragment,{children:[(0,I.jsx)(x.Z,{label:"Inspect"}),(0,I.jsxs)(u.Z,{children:[r?(0,I.jsxs)(c.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"flex-start",border:"1px solid #eaeaea",padding:{lg:"40px",xs:"15px"},flexWrap:"wrap",gap:{lg:"55px",xs:"20px"},height:{md:"calc(100vh - 120px)",xs:"100%"},flexFlow:{lg:"row",xs:"column"}},children:[(0,I.jsx)(c.Z,{sx:{flex:{md:2,xs:1},width:{lg:"auto",xs:"100%"},padding:"25px"},children:(0,I.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),se()},children:[(0,I.jsx)(c.Z,{children:(0,I.jsx)(f.Z,{id:"inspect_volume",name:"inspect_volume",extraInputProps:{"data-test-id":"inspect_volume"},onChange:function(e){v(e.target.value)},label:"Volume or Bucket Name",value:Z,error:$,required:!0,placeholder:"test-bucket"})}),(0,I.jsx)(c.Z,{sx:{marginTop:"15px"},children:(0,I.jsx)(f.Z,{id:"inspect_path",name:"inspect_path",extraInputProps:{"data-test-id":"inspect_path"},error:ee,onChange:function(e){M(e.target.value)},label:"File or Path to inspect",value:N,required:!0,placeholder:"test*/xl.meta"})}),(0,I.jsx)(c.Z,{sx:{marginTop:"25px"},children:(0,I.jsx)(h.Z,{classes:{inputLabel:t.switchLabel},extraInputProps:{"data-test-id":"inspect_encrypt"},label:"Encrypt",indicatorLabels:["True","False"],checked:B,value:"true",id:"inspect_encrypt",name:"inspect_encrypt",onChange:function(e){V(!B)}})}),(0,I.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"55px"},children:[(0,I.jsx)(d.Z,{sx:{marginRight:"15px"},type:"button",color:"primary",variant:"outlined","data-test-id":"inspect-clear-button",onClick:ie,children:"Clear"}),(0,I.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary","data-test-id":"inspect-submit-button",disabled:!A,children:"Inspect"})]})]})}),(0,I.jsx)(c.Z,{sx:{flex:1,minWidth:{md:"365px",xs:"100%"},width:"100%"},children:(0,I.jsx)(w.Z,{title:"",iconComponent:null,help:(0,I.jsxs)(l.Fragment,{children:[(0,I.jsxs)(c.Z,{sx:{marginTop:"-25px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"2px"},children:[(0,I.jsx)(c.Z,{sx:{backgroundColor:"#07193E",height:"15px",width:"15px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",marginRight:"18px",padding:"3px","& .min-icon":{height:"11px",width:"11px",fill:"#ffffff"}},children:(0,I.jsx)(C.Gp,{})}),"Learn more about the Inspect feature"]}),(0,I.jsx)(c.Z,{sx:{marginTop:"16px",fontWeight:600,fontStyle:"italic",fontSize:"14px"},children:"Examples:"}),(0,I.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",fontSize:"14px",flex:"2","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& .step-row":{fontSize:"14px",display:"flex",marginTop:"15px",marginBottom:"15px","&.step-text":{fontWeight:400},"&:before":{content:"' '",height:"7px",width:"7px",backgroundColor:"#2781B0",marginRight:"10px",marginTop:"12px",flexShrink:0}},"& .code-block-container":{flex:"1",marginTop:"15px",marginLeft:"35px","& input":{color:"#737373"}},"& .example-code-block label":{display:"inline-block",width:{sm:"160px",xs:"100%"},fontWeight:600,fontSize:"14px"},"& code":{width:{sm:"100px",xs:"100%"},paddingLeft:"10px",fontFamily:"monospace",paddingRight:"10px",paddingTop:"3px",paddingBottom:"3px",borderRadius:"2px",border:"1px solid #eaeaea",fontSize:"10px",color:"#082146",fontWeight:500},"& .spacer":{marginBottom:"5px"}},children:[(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsx)("div",{className:"step-text",children:"To Download 'xl.meta' for a specific object from all the drives in a zip file:"})}),(0,I.jsx)(z,{pathVal:"test*/xl.meta",volumeVal:"test-bucket"})]}),(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsx)("div",{className:"step-text",children:"To Download all constituent parts for a specific object, and optionally encrypt the downloaded zip:"})}),(0,I.jsx)(z,{pathVal:"test*/xl.meta",volumeVal:"test*/*/part.*"})]}),(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsxs)("div",{className:"step-text",children:["To Download recursively all objects at a prefix.",(0,I.jsx)("br",{}),"NOTE: This can be an expensive operation use it with caution."]})}),(0,I.jsx)(z,{pathVal:"test*/xl.meta",volumeVal:"test/**"})]})]}),(0,I.jsxs)(c.Z,{sx:{marginTop:"30px",marginLeft:"15px",fontSize:"14px"},children:["You can learn more at our"," ",(0,I.jsx)("a",{href:"https://github.com/minio/minio/tree/master/docs/debugging?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})]})})})]}):(0,I.jsx)(S.Z,{iconComponent:(0,I.jsx)(C.Gp,{}),entity:"Inspect"}),W?(0,I.jsx)(g.Z,{modalOpen:!0,title:"Inspect Decryption Key",onClose:function(){(0,k.kT)(q),F(""),ie()},titleIcon:(0,I.jsx)(m.tv,{}),children:(0,I.jsxs)(p.Z,{component:"div",children:[(0,I.jsxs)(c.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,I.jsx)("br",{}),"Use secure medium to share this key."]}),(0,I.jsx)("form",{noValidate:!0,onSubmit:function(){return!1},children:(0,I.jsx)(T.Z,{value:W})})]})}):null]})]})})))},73669:function(e,t,n){var s=n(29439),i=n(64554),r=n(36151),a=n(21435),o=n(93656),l=n(72791),c=n(80184);t.Z=function(e){var t=e.value,n=(0,l.useState)(!1),d=(0,s.Z)(n,2),p=d[0],x=d[1];return(0,c.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,c.jsx)(a.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:p?"text":"password",onChange:function(){},value:t,overlayIcon:(0,c.jsx)(o.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(t)}}),(0,c.jsx)(r.Z,{sx:{marginLeft:"10px"},variant:"contained",onClick:function(){return x(!p)},children:"Show/Hide"})]})}},15861:function(e,t,n){function s(e,t,n,s,i,r,a){try{var o=e[r](a),l=o.value}catch(c){return void n(c)}o.done?t(l):Promise.resolve(l).then(s,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,r){var a=e.apply(t,n);function o(e){s(a,i,r,o,l,"next",e)}function l(e){s(a,i,r,o,l,"throw",e)}o(void 0)}))}}n.d(t,{Z:function(){return i}})}}]); +//# sourceMappingURL=8833.5d3a1948.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8833.5d3a1948.chunk.js.map b/portal-ui/build/static/js/8833.5d3a1948.chunk.js.map new file mode 100644 index 000000000..6a59e0783 --- /dev/null +++ b/portal-ui/build/static/js/8833.5d3a1948.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8833.5d3a1948.chunk.js","mappings":"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","sources":["screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tools/Inspect.tsx","screens/Console/Tools/KeyRevealer.tsx","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.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 { 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, { 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, useEffect, useState } from \"react\";\nimport { Box, Button, DialogContentText } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { PasswordKeyIcon } from \"../../../icons\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport {\n deleteCookie,\n getCookieValue,\n performDownload,\n} from \"../../../common/utils\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport { AppState } from \"../../../store\";\nimport { InspectMenuIcon } from \"../../../icons/SidebarMenus\";\nimport KeyRevealer from \"./KeyRevealer\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n switchLabel: {\n fontWeight: \"normal\",\n },\n ...deleteDialogStyles,\n ...modalStyleUtils,\n });\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\nconst connector = connect(mapState, mapDispatchToProps);\n\nconst ExampleBlock = ({\n volumeVal,\n pathVal,\n}: {\n volumeVal: string;\n pathVal: string;\n}) => {\n return (\n \n \n \n {volumeVal}\n \n \n \n {pathVal}\n \n \n \n );\n};\n\nconst Inspect = ({\n classes,\n setErrorSnackMessage,\n distributedSetup,\n}: {\n classes: any;\n setErrorSnackMessage: any;\n distributedSetup: boolean;\n}) => {\n const [volumeName, setVolumeName] = useState(\"\");\n const [inspectPath, setInspectPath] = useState(\"\");\n const [isEncrypt, setIsEncrypt] = useState(true);\n\n const [decryptionKey, setDecryptionKey] = useState(\"\");\n\n const [insFileName, setInsFileName] = useState(\"\");\n\n const [isFormValid, setIsFormValid] = useState(false);\n const [volumeError, setVolumeError] = useState(\"\");\n const [pathError, setPathError] = useState(\"\");\n\n /**\n * Validation Effect\n */\n useEffect(() => {\n let isVolValid;\n let isPathValid;\n\n isVolValid = volumeName.trim().length > 0;\n if (!isVolValid) {\n setVolumeError(\"This field is required\");\n } else if (volumeName.slice(0, 1) === \"/\") {\n isVolValid = false;\n setVolumeError(\"Volume/Bucket name cannot start with /\");\n }\n isPathValid = inspectPath.trim().length > 0;\n if (!inspectPath) {\n setPathError(\"This field is required\");\n } else if (inspectPath.slice(0, 1) === \"/\") {\n isPathValid = false;\n setPathError(\"Path cannot start with /\");\n }\n const isValid = isVolValid && isPathValid;\n\n if (isVolValid) {\n setVolumeError(\"\");\n }\n if (isPathValid) {\n setPathError(\"\");\n }\n\n setIsFormValid(isValid);\n }, [volumeName, inspectPath]);\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);\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 setDecryptionKey(decryptKey);\n })\n .catch((err) => {\n setErrorSnackMessage(err);\n });\n };\n\n const resetForm = () => {\n setVolumeName(\"\");\n setInspectPath(\"\");\n setIsEncrypt(true);\n };\n\n const onCloseDecKeyModal = () => {\n deleteCookie(insFileName);\n setDecryptionKey(\"\");\n resetForm();\n };\n\n return (\n \n \n \n {!distributedSetup ? (\n }\n entity={\"Inspect\"}\n />\n ) : (\n \n \n ) => {\n e.preventDefault();\n performInspect();\n }}\n >\n \n ) => {\n setVolumeName(e.target.value);\n }}\n label=\"Volume or Bucket Name\"\n value={volumeName}\n error={volumeError}\n required\n placeholder={\"test-bucket\"}\n />\n \n \n ) => {\n setInspectPath(e.target.value);\n }}\n label=\"File or Path to inspect\"\n value={inspectPath}\n required\n placeholder={\"test*/xl.meta\"}\n />\n \n \n {\n setIsEncrypt(!isEncrypt);\n }}\n />\n \n \n \n Clear\n \n \n Inspect\n \n \n \n \n \n \n \n \n \n \n Learn more about the Inspect feature\n \n\n \n Examples:\n \n\n \n \n \n
    \n To Download 'xl.meta' for a specific object from all\n the drives in a zip file:\n
    \n
    \n\n \n
    \n\n \n \n
    \n To Download all constituent parts for a specific\n object, and optionally encrypt the downloaded zip:\n
    \n
    \n\n \n
    \n \n \n
    \n To Download recursively all objects at a prefix.\n
    \n NOTE: This can be an expensive operation use it with\n caution.\n
    \n
    \n \n
    \n \n\n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n
    \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 return false;\n }}\n >\n \n \n
    \n \n ) : null}\n \n
    \n );\n};\n\nexport default withStyles(styles)(connector(Inspect));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}"],"names":["iconComponent","entity","container","alignItems","item","xs","title","help","sx","fontSize","display","border","flexFlow","md","color","theme","colors","link","textDecoration","href","target","rel","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","withStyles","createStyles","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","children","classes","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","className","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setErrorSnackMessage","distributedSetup","ExampleBlock","volumeVal","pathVal","marginBottom","sm","switchLabel","fontWeight","modalStyleUtils","volumeName","setVolumeName","inspectPath","setInspectPath","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","isFormValid","setIsFormValid","volumeError","setVolumeError","pathError","setPathError","isVolValid","isPathValid","trim","slice","isValid","makeRequest","url","fetch","method","performInspect","file","encodeURIComponent","volume","urlOfInspectApi","then","res","ok","json","resErr","errorMessage","detailedError","code","blob","filename","headers","get","split","decryptKey","getCookieValue","performDownload","catch","err","resetForm","Fragment","label","justifyContent","lg","flexWrap","gap","height","flex","noValidate","autoComplete","onSubmit","e","preventDefault","name","extraInputProps","onChange","value","error","required","placeholder","marginTop","inputLabel","indicatorLabels","checked","marginRight","variant","disabled","minWidth","backgroundColor","borderRadius","fill","fontStyle","background","textAlign","flexShrink","marginLeft","paddingLeft","fontFamily","paddingRight","paddingTop","deleteCookie","component","shown","setShown","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","done","Promise","_asyncToGenerator","fn","self","this","args","arguments","apply","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8833.d4d792a2.chunk.js b/portal-ui/build/static/js/8833.d4d792a2.chunk.js deleted file mode 100644 index 55e953a01..000000000 --- a/portal-ui/build/static/js/8833.d4d792a2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8833],{47986:function(e,t,n){n(72791);var r=n(61889),s=n(64554),i=n(23804),o=n(80184);t.Z=function(e){var t=e.iconComponent,n=e.entity;return(0,o.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,o.jsx)(r.ZP,{item:!0,xs:12,children:(0,o.jsx)(i.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,o.jsxs)(s.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,o.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,o.jsxs)("div",{children:["Please deploy a server in"," ",(0,o.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."]})]})})})})}},56028:function(e,t,n){var r=n(29439),s=n(1413),i=n(72791),o=n(60364),a=n(13400),l=n(55646),c=n(5574),d=n(65661),p=n(39157),u=n(11135),x=n(25787),f=n(23814),h=n(42649),m=n(29823),g=n(28057),Z=n(80184),j=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK});t.Z=(0,x.Z)((function(e){return(0,u.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 t=e.onClose,n=e.modalOpen,o=e.title,u=e.children,x=e.classes,f=e.wideLimit,h=void 0===f||f,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,y=e.titleIcon,w=void 0===y?null:y,k=(0,i.useState)(!1),C=(0,r.Z)(k,2),S=C[0],T=C[1];(0,i.useEffect)((function(){b("")}),[b]),(0,i.useEffect)((function(){if(j){if(""===j.message)return void T(!1);"error"!==j.type&&T(!0)}}),[j]);var I=h?{classes:{paper:x.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},M="";return j&&(M=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(M=j.message)),(0,Z.jsxs)(c.Z,(0,s.Z)((0,s.Z)({open:n,classes:x},I),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:x.root,children:[(0,Z.jsxs)(d.Z,{className:x.title,children:[(0,Z.jsxs)("div",{className:x.titleText,children:[w," ",o]}),(0,Z.jsx)("div",{className:x.closeContainer,children:(0,Z.jsx)(a.Z,{"aria-label":"close",id:"close",className:x.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(m.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(l.Z,{open:S,className:x.snackBarModal,onClose:function(){T(!1),b("")},message:M,ContentProps:{className:"".concat(x.snackBar," ").concat(j&&"error"===j.type?x.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(p.Z,{className:v?"":x.content,children:u})]}))})))},58833:function(e,t,n){n.r(t);var r=n(15861),s=n(29439),i=n(1413),o=n(87757),a=n.n(o),l=n(72791),c=n(64554),d=n(36151),p=n(51691),u=n(32291),x=n(74794),f=n(21435),h=n(37516),m=n(93656),g=n(56028),Z=n(11135),j=n(23814),v=n(25787),b=n(42649),y=n(60364),w=n(23804),k=n(45248),C=n(47986),S=n(25183),T=n(73669),I=n(80184),M={setErrorSnackMessage:b.Ih},N=(0,y.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),M),D=function(e){var t=e.volumeVal,n=e.pathVal;return(0,I.jsx)(c.Z,{className:"code-block-container",children:(0,I.jsxs)(c.Z,{className:"example-code-block",children:[(0,I.jsxs)(c.Z,{sx:{display:"flex",marginBottom:"5px",flexFlow:{sm:"row",xs:"column"}},children:[(0,I.jsx)("label",{children:"Volume/bucket Name :"})," ",(0,I.jsx)("code",{children:t})]}),(0,I.jsxs)(c.Z,{sx:{display:"flex",flexFlow:{sm:"row",xs:"column"}},children:[(0,I.jsx)("label",{children:"Path : "}),(0,I.jsx)("code",{children:n})]})]})})};t.default=(0,v.Z)((function(e){return(0,Z.Z)((0,i.Z)((0,i.Z)({switchLabel:{fontWeight:"normal"}},j.Qw),j.ID))}))(N((function(e){var t=e.classes,n=e.setErrorSnackMessage,i=e.distributedSetup,o=(0,l.useState)(""),Z=(0,s.Z)(o,2),j=Z[0],v=Z[1],b=(0,l.useState)(""),y=(0,s.Z)(b,2),M=y[0],N=y[1],P=(0,l.useState)(!0),z=(0,s.Z)(P,2),E=z[0],R=z[1],B=(0,l.useState)(""),F=(0,s.Z)(B,2),V=F[0],_=F[1],W=(0,l.useState)(""),L=(0,s.Z)(W,2),O=L[0],q=L[1],G=(0,l.useState)(!1),U=(0,s.Z)(G,2),A=U[0],H=U[1],K=(0,l.useState)(""),Q=(0,s.Z)(K,2),$=Q[0],Y=Q[1],J=(0,l.useState)(""),X=(0,s.Z)(J,2),ee=X[0],te=X[1];(0,l.useEffect)((function(){var e,t;(e=j.trim().length>0)?"/"===j.slice(0,1)&&(e=!1,Y("Volume/Bucket name cannot start with /")):Y("This field is required"),t=M.trim().length>0,M?"/"===M.slice(0,1)&&(t=!1,te("Path cannot start with /")):te("This field is required");var n=e&&t;e&&Y(""),t&&te(""),H(n)}),[j,M]);var ne=function(){var e=(0,r.Z)(a().mark((function e(t){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),re=function(){var e=(0,r.Z)(a().mark((function e(){var t,s,i;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=encodeURIComponent(M),s=encodeURIComponent(j),i="/api/v1/admin/inspect?volume=".concat(s,"&file=").concat(t,"&encrypt=").concat(E),ne(i).then(function(){var e=(0,r.Z)(a().mark((function e(t){var r,s,i,o;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.ok){e.next=5;break}return e.next=3,t.json();case 3:r=e.sent,n({errorMessage:r.message,detailedError:r.code});case 5:return e.next=7,t.blob();case 7:s=e.sent,i=t.headers.get("content-disposition").split('"')[1],o=(0,k.Do)(i)||"",(0,k.zZ)(s,i),q(i),_(o);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){n(e)}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),se=function(){v(""),N(""),R(!0)};return(0,I.jsxs)(l.Fragment,{children:[(0,I.jsx)(u.Z,{label:"Inspect"}),(0,I.jsxs)(x.Z,{children:[i?(0,I.jsxs)(c.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"flex-start",border:"1px solid #eaeaea",padding:{lg:"40px",xs:"15px"},flexWrap:"wrap",gap:{lg:"55px",xs:"20px"},height:{md:"calc(100vh - 120px)",xs:"100%"},flexFlow:{lg:"row",xs:"column"}},children:[(0,I.jsx)(c.Z,{sx:{flex:{md:2,xs:1},width:{lg:"auto",xs:"100%"},padding:"25px"},children:(0,I.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),re()},children:[(0,I.jsx)(c.Z,{children:(0,I.jsx)(f.Z,{id:"inspect_volume",name:"inspect_volume",extraInputProps:{"data-test-id":"inspect_volume"},onChange:function(e){v(e.target.value)},label:"Volume or Bucket Name",value:j,error:$,required:!0,placeholder:"test-bucket"})}),(0,I.jsx)(c.Z,{sx:{marginTop:"15px"},children:(0,I.jsx)(f.Z,{id:"inspect_path",name:"inspect_path",extraInputProps:{"data-test-id":"inspect_path"},error:ee,onChange:function(e){N(e.target.value)},label:"File or Path to inspect",value:M,required:!0,placeholder:"test*/xl.meta"})}),(0,I.jsx)(c.Z,{sx:{marginTop:"25px"},children:(0,I.jsx)(h.Z,{classes:{inputLabel:t.switchLabel},extraInputProps:{"data-test-id":"inspect_encrypt"},label:"Encrypt",indicatorLabels:["True","False"],checked:E,value:"true",id:"inspect_encrypt",name:"inspect_encrypt",onChange:function(e){R(!E)}})}),(0,I.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"55px"},children:[(0,I.jsx)(d.Z,{sx:{marginRight:"15px"},type:"button",color:"primary",variant:"outlined","data-test-id":"inspect-clear-button",onClick:se,children:"Clear"}),(0,I.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary","data-test-id":"inspect-submit-button",disabled:!A,children:"Inspect"})]})]})}),(0,I.jsx)(c.Z,{sx:{flex:1,minWidth:{md:"365px",xs:"100%"},width:"100%"},children:(0,I.jsx)(w.Z,{title:"",iconComponent:null,help:(0,I.jsxs)(l.Fragment,{children:[(0,I.jsxs)(c.Z,{sx:{marginTop:"-25px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"2px"},children:[(0,I.jsx)(c.Z,{sx:{backgroundColor:"#07193E",height:"15px",width:"15px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",marginRight:"18px",padding:"3px","& .min-icon":{height:"11px",width:"11px",fill:"#ffffff"}},children:(0,I.jsx)(S.Gp,{})}),"Learn more about the Inspect feature"]}),(0,I.jsx)(c.Z,{sx:{marginTop:"16px",fontWeight:600,fontStyle:"italic",fontSize:"14px"},children:"Examples:"}),(0,I.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",fontSize:"14px",flex:"2","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& .step-row":{fontSize:"14px",display:"flex",marginTop:"15px",marginBottom:"15px","&.step-text":{fontWeight:400},"&:before":{content:"' '",height:"7px",width:"7px",backgroundColor:"#2781B0",marginRight:"10px",marginTop:"12px",flexShrink:0}},"& .code-block-container":{flex:"1",marginTop:"15px",marginLeft:"35px","& input":{color:"#737373"}},"& .example-code-block label":{display:"inline-block",width:{sm:"160px",xs:"100%"},fontWeight:600,fontSize:"14px"},"& code":{width:{sm:"100px",xs:"100%"},paddingLeft:"10px",fontFamily:"monospace",paddingRight:"10px",paddingTop:"3px",paddingBottom:"3px",borderRadius:"2px",border:"1px solid #eaeaea",fontSize:"10px",color:"#082146",fontWeight:500},"& .spacer":{marginBottom:"5px"}},children:[(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsx)("div",{className:"step-text",children:"To Download 'xl.meta' for a specific object from all the drives in a zip file:"})}),(0,I.jsx)(D,{pathVal:"test*/xl.meta",volumeVal:"test-bucket"})]}),(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsx)("div",{className:"step-text",children:"To Download all constituent parts for a specific object, and optionally encrypt the downloaded zip:"})}),(0,I.jsx)(D,{pathVal:"test*/xl.meta",volumeVal:"test*/*/part.*"})]}),(0,I.jsxs)(c.Z,{children:[(0,I.jsx)(c.Z,{className:"step-row",children:(0,I.jsxs)("div",{className:"step-text",children:["To Download recursively all objects at a prefix.",(0,I.jsx)("br",{}),"NOTE: This can be an expensive operation use it with caution."]})}),(0,I.jsx)(D,{pathVal:"test*/xl.meta",volumeVal:"test/**"})]})]}),(0,I.jsxs)(c.Z,{sx:{marginTop:"30px",marginLeft:"15px",fontSize:"14px"},children:["You can learn more at our"," ",(0,I.jsx)("a",{href:"https://github.com/minio/minio/tree/master/docs/debugging?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})]})})})]}):(0,I.jsx)(C.Z,{iconComponent:(0,I.jsx)(S.Gp,{}),entity:"Inspect"}),V?(0,I.jsx)(g.Z,{modalOpen:!0,title:"Inspect Decryption Key",onClose:function(){(0,k.kT)(O),_(""),se()},titleIcon:(0,I.jsx)(m.tv,{}),children:(0,I.jsxs)(p.Z,{component:"div",children:[(0,I.jsxs)(c.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,I.jsx)("br",{}),"Use secure medium to share this key."]}),(0,I.jsx)("form",{noValidate:!0,onSubmit:function(){return!1},children:(0,I.jsx)(T.Z,{value:V})})]})}):null]})]})})))},73669:function(e,t,n){var r=n(29439),s=n(64554),i=n(36151),o=n(21435),a=n(93656),l=n(72791),c=n(80184);t.Z=function(e){var t=e.value,n=(0,l.useState)(!1),d=(0,r.Z)(n,2),p=d[0],u=d[1];return(0,c.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,c.jsx)(o.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:p?"text":"password",onChange:function(){},value:t,overlayIcon:(0,c.jsx)(a.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(t)}}),(0,c.jsx)(i.Z,{sx:{marginLeft:"10px"},variant:"contained",onClick:function(){return u(!p)},children:"Show/Hide"})]})}},29823:function(e,t,n){var r=n(95318);t.Z=void 0;var s=r(n(45649)),i=n(80184),o=(0,s.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=o},51691:function(e,t,n){n.d(t,{Z:function(){return h}});var r=n(63366),s=n(87462),i=n(72791),o=n(90767),a=n(47630),l=n(93736),c=n(20890),d=n(95159);function p(e){return(0,d.Z)("MuiDialogContentText",e)}(0,n(30208).Z)("MuiDialogContentText",["root"]);var u=n(80184),x=["children"],f=(0,a.ZP)(c.Z,{shouldForwardProp:function(e){return(0,a.FO)(e)||"classes"===e},name:"MuiDialogContentText",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),h=i.forwardRef((function(e,t){var n=(0,l.Z)({props:e,name:"MuiDialogContentText"}),i=(0,r.Z)(n,x),a=function(e){var t=e.classes,n=(0,o.Z)({root:["root"]},p,t);return(0,s.Z)({},t,n)}(i);return(0,u.jsx)(f,(0,s.Z)({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:i},n,{classes:a}))}))},15861:function(e,t,n){function r(e,t,n,r,s,i,o){try{var a=e[i](o),l=a.value}catch(c){return void n(c)}a.done?t(l):Promise.resolve(l).then(r,s)}function s(e){return function(){var t=this,n=arguments;return new Promise((function(s,i){var o=e.apply(t,n);function a(e){r(o,s,i,a,l,"next",e)}function l(e){r(o,s,i,a,l,"throw",e)}a(void 0)}))}}n.d(t,{Z:function(){return s}})}}]); -//# sourceMappingURL=8833.d4d792a2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8833.d4d792a2.chunk.js.map b/portal-ui/build/static/js/8833.d4d792a2.chunk.js.map deleted file mode 100644 index 992cfe340..000000000 --- a/portal-ui/build/static/js/8833.d4d792a2.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8833.d4d792a2.chunk.js","mappings":"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","sources":["screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tools/Inspect.tsx","screens/Console/Tools/KeyRevealer.tsx","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.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 { 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, { 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, useEffect, useState } from \"react\";\nimport { Box, Button, DialogContentText } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { PasswordKeyIcon } from \"../../../icons\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport {\n deleteCookie,\n getCookieValue,\n performDownload,\n} from \"../../../common/utils\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport { AppState } from \"../../../store\";\nimport { InspectMenuIcon } from \"../../../icons/SidebarMenus\";\nimport KeyRevealer from \"./KeyRevealer\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n switchLabel: {\n fontWeight: \"normal\",\n },\n ...deleteDialogStyles,\n ...modalStyleUtils,\n });\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\nconst connector = connect(mapState, mapDispatchToProps);\n\nconst ExampleBlock = ({\n volumeVal,\n pathVal,\n}: {\n volumeVal: string;\n pathVal: string;\n}) => {\n return (\n \n \n \n {volumeVal}\n \n \n \n {pathVal}\n \n \n \n );\n};\n\nconst Inspect = ({\n classes,\n setErrorSnackMessage,\n distributedSetup,\n}: {\n classes: any;\n setErrorSnackMessage: any;\n distributedSetup: boolean;\n}) => {\n const [volumeName, setVolumeName] = useState(\"\");\n const [inspectPath, setInspectPath] = useState(\"\");\n const [isEncrypt, setIsEncrypt] = useState(true);\n\n const [decryptionKey, setDecryptionKey] = useState(\"\");\n\n const [insFileName, setInsFileName] = useState(\"\");\n\n const [isFormValid, setIsFormValid] = useState(false);\n const [volumeError, setVolumeError] = useState(\"\");\n const [pathError, setPathError] = useState(\"\");\n\n /**\n * Validation Effect\n */\n useEffect(() => {\n let isVolValid;\n let isPathValid;\n\n isVolValid = volumeName.trim().length > 0;\n if (!isVolValid) {\n setVolumeError(\"This field is required\");\n } else if (volumeName.slice(0, 1) === \"/\") {\n isVolValid = false;\n setVolumeError(\"Volume/Bucket name cannot start with /\");\n }\n isPathValid = inspectPath.trim().length > 0;\n if (!inspectPath) {\n setPathError(\"This field is required\");\n } else if (inspectPath.slice(0, 1) === \"/\") {\n isPathValid = false;\n setPathError(\"Path cannot start with /\");\n }\n const isValid = isVolValid && isPathValid;\n\n if (isVolValid) {\n setVolumeError(\"\");\n }\n if (isPathValid) {\n setPathError(\"\");\n }\n\n setIsFormValid(isValid);\n }, [volumeName, inspectPath]);\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);\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 setDecryptionKey(decryptKey);\n })\n .catch((err) => {\n setErrorSnackMessage(err);\n });\n };\n\n const resetForm = () => {\n setVolumeName(\"\");\n setInspectPath(\"\");\n setIsEncrypt(true);\n };\n\n const onCloseDecKeyModal = () => {\n deleteCookie(insFileName);\n setDecryptionKey(\"\");\n resetForm();\n };\n\n return (\n \n \n \n {!distributedSetup ? (\n }\n entity={\"Inspect\"}\n />\n ) : (\n \n \n ) => {\n e.preventDefault();\n performInspect();\n }}\n >\n \n ) => {\n setVolumeName(e.target.value);\n }}\n label=\"Volume or Bucket Name\"\n value={volumeName}\n error={volumeError}\n required\n placeholder={\"test-bucket\"}\n />\n \n \n ) => {\n setInspectPath(e.target.value);\n }}\n label=\"File or Path to inspect\"\n value={inspectPath}\n required\n placeholder={\"test*/xl.meta\"}\n />\n \n \n {\n setIsEncrypt(!isEncrypt);\n }}\n />\n \n \n \n Clear\n \n \n Inspect\n \n \n \n \n \n \n \n \n \n \n Learn more about the Inspect feature\n \n\n \n Examples:\n \n\n \n \n \n
    \n To Download 'xl.meta' for a specific object from all\n the drives in a zip file:\n
    \n
    \n\n \n
    \n\n \n \n
    \n To Download all constituent parts for a specific\n object, and optionally encrypt the downloaded zip:\n
    \n
    \n\n \n
    \n \n \n
    \n To Download recursively all objects at a prefix.\n
    \n NOTE: This can be an expensive operation use it with\n caution.\n
    \n
    \n \n
    \n \n\n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n
    \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 return false;\n }}\n >\n \n \n
    \n \n ) : null}\n \n \n );\n};\n\nexport default withStyles(styles)(connector(Inspect));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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","\"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 { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogContentTextUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContentText', slot);\n}\nconst dialogContentTextClasses = generateUtilityClasses('MuiDialogContentText', ['root']);\nexport default dialogContentTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport { getDialogContentTextUtilityClass } from './dialogContentTextClasses';\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 const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst DialogContentTextRoot = styled(Typography, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiDialogContentText',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst DialogContentText = /*#__PURE__*/React.forwardRef(function DialogContentText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContentText'\n });\n\n const ownerState = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentTextRoot, _extends({\n component: \"p\",\n variant: \"body1\",\n color: \"text.secondary\",\n ref: ref,\n ownerState: ownerState\n }, props, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContentText.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 * 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 DialogContentText;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}"],"names":["iconComponent","entity","container","alignItems","item","xs","title","help","sx","fontSize","display","border","flexFlow","md","color","theme","colors","link","textDecoration","href","target","rel","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","withStyles","createStyles","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","children","classes","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","className","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setErrorSnackMessage","distributedSetup","ExampleBlock","volumeVal","pathVal","marginBottom","sm","switchLabel","fontWeight","modalStyleUtils","volumeName","setVolumeName","inspectPath","setInspectPath","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","isFormValid","setIsFormValid","volumeError","setVolumeError","pathError","setPathError","isVolValid","isPathValid","trim","slice","isValid","makeRequest","url","fetch","method","performInspect","file","encodeURIComponent","volume","urlOfInspectApi","then","res","ok","json","resErr","errorMessage","detailedError","code","blob","filename","headers","get","split","decryptKey","getCookieValue","performDownload","catch","err","resetForm","Fragment","label","justifyContent","lg","flexWrap","gap","height","flex","noValidate","autoComplete","onSubmit","e","preventDefault","name","extraInputProps","onChange","value","error","required","placeholder","marginTop","inputLabel","indicatorLabels","checked","marginRight","variant","disabled","minWidth","backgroundColor","borderRadius","fill","fontStyle","background","textAlign","flexShrink","marginLeft","paddingLeft","fontFamily","paddingRight","paddingTop","deleteCookie","component","shown","setShown","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getDialogContentTextUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","DialogContentTextRoot","styled","Typography","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","props","styles","React","inProps","ref","useThemeProps","ownerState","_objectWithoutPropertiesLoose","composedClasses","composeClasses","_extends","useUtilityClasses","_jsx","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","done","Promise","_asyncToGenerator","fn","self","this","args","arguments","apply","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8896.984a3f17.chunk.js b/portal-ui/build/static/js/8896.984a3f17.chunk.js new file mode 100644 index 000000000..3d3d4798a --- /dev/null +++ b/portal-ui/build/static/js/8896.984a3f17.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8896],{9505:function(e,n,t){var r=t(29439),o=t(72791),u=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),c=(0,r.Z)(t,2),i=c[0],s=c[1];return[i,function(t,r,o){s(!0),u.Z.invoke(t,r,o).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},88896:function(e,n,t){t.r(n);var r=t(29439),o=(t(72791),t(60364)),u=t(51691),c=t(42649),i=t(2148),s=t(9505),a=t(93656),l=t(80184),f={setErrorSnackMessage:c.Ih},p=(0,o.$j)(null,f);n.default=p((function(e){var n=e.selectedGroup,t=e.deleteOpen,o=e.closeDeleteModalAndRefresh,c=e.setErrorSnackMessage,f=(0,s.Z)((function(){return o(!0)}),(function(e){return c(e)})),p=(0,r.Z)(f,2),d=p[0],h=p[1];if(!n)return null;return(0,l.jsx)(i.Z,{title:"Delete Group",confirmText:"Delete",isOpen:t,titleIcon:(0,l.jsx)(a.Nv,{}),isLoading:d,onConfirm:function(){h("DELETE","/api/v1/group?name=".concat(encodeURI(n)))},onClose:function(){return o(!1)},confirmationContent:(0,l.jsxs)(u.Z,{children:["Are you sure you want to delete group",(0,l.jsx)("br",{}),(0,l.jsx)("b",{children:n}),"?"]})})}))}}]); +//# sourceMappingURL=8896.984a3f17.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8896.984a3f17.chunk.js.map b/portal-ui/build/static/js/8896.984a3f17.chunk.js.map new file mode 100644 index 000000000..dc12dc15d --- /dev/null +++ b/portal-ui/build/static/js/8896.984a3f17.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8896.984a3f17.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,kIC+CVC,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GA7CK,SAAC,GAKA,IAJnBE,EAIkB,EAJlBA,cACAC,EAGkB,EAHlBA,WACAC,EAEkB,EAFlBA,2BACAL,EACkB,EADlBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMD,GAA2B,MACnC,SAACP,GAAD,OAA+BE,EAAqBF,MAGvE,eAAOS,EAAP,KAAsBC,EAAtB,KAEA,IAAKL,EACH,OAAO,KAMT,OACE,SAAC,IAAD,CACEM,MAAK,eACLC,YAAa,SACbC,OAAQP,EACRQ,WAAW,SAAC,KAAD,IACXvB,UAAWkB,EACXM,UAXkB,WACpBL,EAAgB,SAAD,6BAAiCM,UAAUX,MAWxDY,QAnBY,kBAAMV,GAA2B,IAoB7CW,qBACE,UAAC,IAAD,oDAEE,mBACA,uBAAIb,IAHN","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Groups/DeleteGroup.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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","mapDispatchToProps","setErrorSnackMessage","connector","connect","selectedGroup","deleteOpen","closeDeleteModalAndRefresh","useApi","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","encodeURI","onClose","confirmationContent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8896.e9be20fb.chunk.js b/portal-ui/build/static/js/8896.e9be20fb.chunk.js deleted file mode 100644 index 04879eea9..000000000 --- a/portal-ui/build/static/js/8896.e9be20fb.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8896],{9505:function(n,e,o){var t=o(29439),i=o(72791),r=o(81207);e.Z=function(n,e){var o=(0,i.useState)(!1),c=(0,t.Z)(o,2),s=c[0],a=c[1];return[s,function(o,t,i){a(!0),r.Z.invoke(o,t,i).then((function(e){a(!1),n(e)})).catch((function(n){a(!1),e(n)}))}]}},23508:function(n,e,o){var t=o(1413),i=o(72791),r=o(5574),c=o(65661),s=o(39157),a=o(97123),l=o(36151),u=o(59860),d=o(13400),f=o(29823),m=o(11135),p=o(25787),Z=o(23814),v=o(80184);e.Z=(0,p.Z)((function(n){return(0,m.Z)((0,t.Z)({},Z.Qw))}))((function(n){var e=n.isOpen,o=void 0!==e&&e,m=n.onClose,p=n.onCancel,Z=n.onConfirm,x=n.classes,h=void 0===x?{}:x,j=n.title,C=void 0===j?"":j,k=n.isLoading,b=n.confirmationContent,g=n.cancelText,N=void 0===g?"Cancel":g,y=n.confirmText,B=void 0===y?"Confirm":y,E=n.confirmButtonProps,I=void 0===E?{}:E,M=n.cancelButtonProps,T=void 0===M?{}:M,w=n.titleIcon,D=void 0===w?null:w;return(0,v.jsxs)(r.Z,{open:o,onClose:function(n,e){"backdropClick"!==e&&m()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,v.jsxs)(c.Z,{className:h.title,children:[(0,v.jsxs)("div",{className:h.titleText,children:[D," ",C]}),(0,v.jsx)("div",{className:h.closeContainer,children:(0,v.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,v.jsx)(f.Z,{})})})]}),(0,v.jsx)(s.Z,{className:h.content,children:b}),(0,v.jsxs)(a.Z,{className:h.actions,children:[(0,v.jsx)(l.Z,(0,t.Z)((0,t.Z)({className:h.cancelButton,onClick:p||m,disabled:k,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,v.jsx)(u.Z,(0,t.Z)((0,t.Z)({className:h.confirmButton,type:"button",onClick:Z,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,v.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},I),{},{children:B}))]})]})}))},88896:function(n,e,o){o.r(e);var t=o(29439),i=(o(72791),o(60364)),r=o(51691),c=o(42649),s=o(23508),a=o(9505),l=o(93656),u=o(80184),d={setErrorSnackMessage:c.Ih},f=(0,i.$j)(null,d);e.default=f((function(n){var e=n.selectedGroup,o=n.deleteOpen,i=n.closeDeleteModalAndRefresh,c=n.setErrorSnackMessage,d=(0,a.Z)((function(){return i(!0)}),(function(n){return c(n)})),f=(0,t.Z)(d,2),m=f[0],p=f[1];if(!e)return null;return(0,u.jsx)(s.Z,{title:"Delete Group",confirmText:"Delete",isOpen:o,titleIcon:(0,u.jsx)(l.Nv,{}),isLoading:m,onConfirm:function(){p("DELETE","/api/v1/group?name=".concat(encodeURI(e)))},onClose:function(){return i(!1)},confirmationContent:(0,u.jsxs)(r.Z,{children:["Are you sure you want to delete group",(0,u.jsx)("br",{}),(0,u.jsx)("b",{children:e}),"?"]})})}))},29823:function(n,e,o){var t=o(95318);e.Z=void 0;var i=t(o(45649)),r=o(80184),c=(0,i.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");e.Z=c}}]); -//# sourceMappingURL=8896.e9be20fb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8896.e9be20fb.chunk.js.map b/portal-ui/build/static/js/8896.e9be20fb.chunk.js.map deleted file mode 100644 index 3f84aa440..000000000 --- a/portal-ui/build/static/js/8896.e9be20fb.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8896.e9be20fb.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Groups/DeleteGroup.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","\"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","mapDispatchToProps","setErrorSnackMessage","connector","connect","selectedGroup","deleteOpen","closeDeleteModalAndRefresh","useApi","deleteLoading","invokeDeleteApi","encodeURI","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8915.be25a5c1.chunk.js b/portal-ui/build/static/js/8915.be25a5c1.chunk.js deleted file mode 100644 index 7c0419ea8..000000000 --- a/portal-ui/build/static/js/8915.be25a5c1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8915],{26759:function(e,t,r){"use strict";var o=r(95318);t.Z=void 0;var n=o(r(45649)),a=r(80184),i=(0,n.default)((0,a.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=i},70366:function(e,t,r){"use strict";var o=r(95318);t.Z=void 0;var n=o(r(45649)),a=r(80184),i=(0,n.default)((0,a.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=i},97911:function(e,t,r){"use strict";var o=r(95318);t.Z=void 0;var n=o(r(45649)),a=r(80184),i=(0,n.default)((0,a.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=i},97581:function(e,t,r){"use strict";r.d(t,{Z:function(){return M}});var o=r(83878),n=r(59199),a=r(40181),i=r(25267);var s=r(29439),d=r(4942),c=r(63366),u=r(87462),l=r(72791),p=(r(57441),r(28182)),f=r(90767),m=r(47630),b=r(93736),Z=r(56125),v=r(10703),x=r(27318),h=r(98278),g=r(95159);function R(e){return(0,g.Z)("MuiAccordion",e)}var y=(0,r(30208).Z)("MuiAccordion",["root","rounded","expanded","disabled","gutters","region"]),C=r(80184),w=["children","className","defaultExpanded","disabled","disableGutters","expanded","onChange","square","TransitionComponent","TransitionProps"],A=(0,m.ZP)(v.Z,{name:"MuiAccordion",slot:"Root",overridesResolver:function(e,t){var r=e.ownerState;return[(0,d.Z)({},"& .".concat(y.region),t.region),t.root,!r.square&&t.rounded,!r.disableGutters&&t.gutters]}})((function(e){var t,r=e.theme,o={duration:r.transitions.duration.shortest};return t={position:"relative",transition:r.transitions.create(["margin"],o),overflowAnchor:"none","&:before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:r.palette.divider,transition:r.transitions.create(["opacity","background-color"],o)},"&:first-of-type":{"&:before":{display:"none"}}},(0,d.Z)(t,"&.".concat(y.expanded),{"&:before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&:before":{display:"none"}}}),(0,d.Z)(t,"&.".concat(y.disabled),{backgroundColor:r.palette.action.disabledBackground}),t}),(function(e){var t=e.theme,r=e.ownerState;return(0,u.Z)({},!r.square&&{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:t.shape.borderRadius,borderTopRightRadius:t.shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:t.shape.borderRadius,borderBottomRightRadius:t.shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}},!r.disableGutters&&(0,d.Z)({},"&.".concat(y.expanded),{margin:"16px 0"}))})),M=l.forwardRef((function(e,t){var r,d=(0,b.Z)({props:e,name:"MuiAccordion"}),m=d.children,v=d.className,g=d.defaultExpanded,y=void 0!==g&&g,M=d.disabled,S=void 0!==M&&M,G=d.disableGutters,N=void 0!==G&&G,k=d.expanded,j=d.onChange,V=d.square,I=void 0!==V&&V,P=d.TransitionComponent,q=void 0===P?Z.Z:P,D=d.TransitionProps,T=(0,c.Z)(d,w),B=(0,h.Z)({controlled:k,default:y,name:"Accordion",state:"expanded"}),W=(0,s.Z)(B,2),z=W[0],H=W[1],E=l.useCallback((function(e){H(!z),j&&j(e,!z)}),[z,j,H]),L=l.Children.toArray(m),_=(r=L,(0,o.Z)(r)||(0,n.Z)(r)||(0,a.Z)(r)||(0,i.Z)()),O=_[0],U=_.slice(1),F=l.useMemo((function(){return{expanded:z,disabled:S,disableGutters:N,toggle:E}}),[z,S,N,E]),J=(0,u.Z)({},d,{square:I,disabled:S,disableGutters:N,expanded:z}),K=function(e){var t=e.classes,r={root:["root",!e.square&&"rounded",e.expanded&&"expanded",e.disabled&&"disabled",!e.disableGutters&&"gutters"],region:["region"]};return(0,f.Z)(r,R,t)}(J);return(0,C.jsxs)(A,(0,u.Z)({className:(0,p.Z)(K.root,v),ref:t,ownerState:J,square:I},T,{children:[(0,C.jsx)(x.Z.Provider,{value:F,children:O}),(0,C.jsx)(q,(0,u.Z)({in:z,timeout:"auto"},D,{children:(0,C.jsx)("div",{"aria-labelledby":O.props.id,id:O.props["aria-controls"],role:"region",className:K.region,children:U})}))]}))}))},27318:function(e,t,r){"use strict";var o=r(72791).createContext({});t.Z=o},3721:function(e,t,r){"use strict";r.d(t,{Z:function(){return b}});var o=r(87462),n=r(63366),a=r(72791),i=r(28182),s=r(90767),d=r(47630),c=r(93736),u=r(95159);function l(e){return(0,u.Z)("MuiAccordionDetails",e)}(0,r(30208).Z)("MuiAccordionDetails",["root"]);var p=r(80184),f=["className"],m=(0,d.ZP)("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(1,2,2)}})),b=a.forwardRef((function(e,t){var r=(0,c.Z)({props:e,name:"MuiAccordionDetails"}),a=r.className,d=(0,n.Z)(r,f),u=r,b=function(e){var t=e.classes;return(0,s.Z)({root:["root"]},l,t)}(u);return(0,p.jsx)(m,(0,o.Z)({className:(0,i.Z)(b.root,a),ref:t,ownerState:u},d))}))},55818:function(e,t,r){"use strict";r.d(t,{Z:function(){return R}});var o=r(4942),n=r(63366),a=r(87462),i=r(72791),s=r(28182),d=r(90767),c=r(47630),u=r(93736),l=r(95080),p=r(27318),f=r(95159);function m(e){return(0,f.Z)("MuiAccordionSummary",e)}var b=(0,r(30208).Z)("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),Z=r(80184),v=["children","className","expandIcon","focusVisibleClassName","onClick"],x=(0,c.ZP)(l.Z,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t,r=e.theme,n=e.ownerState,i={duration:r.transitions.duration.shortest};return(0,a.Z)((t={display:"flex",minHeight:48,padding:r.spacing(0,2),transition:r.transitions.create(["min-height","background-color"],i)},(0,o.Z)(t,"&.".concat(b.focusVisible),{backgroundColor:r.palette.action.focus}),(0,o.Z)(t,"&.".concat(b.disabled),{opacity:r.palette.action.disabledOpacity}),(0,o.Z)(t,"&:hover:not(.".concat(b.disabled,")"),{cursor:"pointer"}),t),!n.disableGutters&&(0,o.Z)({},"&.".concat(b.expanded),{minHeight:64}))})),h=(0,c.ZP)("div",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:function(e,t){return t.content}})((function(e){var t=e.theme,r=e.ownerState;return(0,a.Z)({display:"flex",flexGrow:1,margin:"12px 0"},!r.disableGutters&&(0,o.Z)({transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest})},"&.".concat(b.expanded),{margin:"20px 0"}))})),g=(0,c.ZP)("div",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:function(e,t){return t.expandIconWrapper}})((function(e){var t=e.theme;return(0,o.Z)({display:"flex",color:t.palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest})},"&.".concat(b.expanded),{transform:"rotate(180deg)"})})),R=i.forwardRef((function(e,t){var r=(0,u.Z)({props:e,name:"MuiAccordionSummary"}),o=r.children,c=r.className,l=r.expandIcon,f=r.focusVisibleClassName,b=r.onClick,R=(0,n.Z)(r,v),y=i.useContext(p.Z),C=y.disabled,w=void 0!==C&&C,A=y.disableGutters,M=y.expanded,S=y.toggle,G=(0,a.Z)({},r,{expanded:M,disabled:w,disableGutters:A}),N=function(e){var t=e.classes,r=e.expanded,o=e.disabled,n=e.disableGutters,a={root:["root",r&&"expanded",o&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",r&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",r&&"expanded"]};return(0,d.Z)(a,m,t)}(G);return(0,Z.jsxs)(x,(0,a.Z)({focusRipple:!1,disableRipple:!0,disabled:w,component:"div","aria-expanded":M,className:(0,s.Z)(N.root,c),focusVisibleClassName:(0,s.Z)(N.focusVisible,f),onClick:function(e){S&&S(e),b&&b(e)},ref:t,ownerState:G},R,{children:[(0,Z.jsx)(h,{className:N.content,ownerState:G,children:o}),l&&(0,Z.jsx)(g,{className:N.expandIconWrapper,ownerState:G,children:l})]}))}))},26769:function(e,t,r){var o=r(39066),n=r(93629),a=r(43141);e.exports=function(e){return"string"==typeof e||!n(e)&&a(e)&&"[object String]"==o(e)}}}]); -//# sourceMappingURL=8915.be25a5c1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8915.be25a5c1.chunk.js.map b/portal-ui/build/static/js/8915.be25a5c1.chunk.js.map deleted file mode 100644 index b745360b9..000000000 --- a/portal-ui/build/static/js/8915.be25a5c1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8915.be25a5c1.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/ViewColumn.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/lodash/isString.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: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"defaultExpanded\", \"disabled\", \"disableGutters\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Collapse from '../Collapse';\nimport Paper from '../Paper';\nimport AccordionContext from './AccordionContext';\nimport useControlled from '../utils/useControlled';\nimport accordionClasses, { getAccordionUtilityClass } from './accordionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\n\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&:before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: theme.palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&:before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&:before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&:before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: theme.palette.action.disabledBackground\n }\n };\n}, ({\n theme,\n ownerState\n}) => _extends({}, !ownerState.square && {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: theme.shape.borderRadius,\n borderBottomRightRadius: theme.shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n}, !ownerState.disableGutters && {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n}));\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n TransitionComponent = Collapse,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n\n const ownerState = _extends({}, props, {\n square,\n disabled,\n disableGutters,\n expanded\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n }), /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: expanded,\n timeout: \"auto\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.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: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n\n return null;\n }),\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`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: 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\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Collapse\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\n\nconst AccordionContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\n\nexport default AccordionContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\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 styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getAccordionDetailsUtilityClass } from './accordionDetailsClasses';\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, getAccordionDetailsUtilityClass, classes);\n};\n\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n}));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.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} : void 0;\nexport default AccordionDetails;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"expandIcon\", \"focusVisibleClassName\", \"onClick\"];\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 ButtonBase from '../ButtonBase';\nimport AccordionContext from '../Accordion/AccordionContext';\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from './accordionSummaryClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\n\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return _extends({\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n }\n }, !ownerState.disableGutters && {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n });\n});\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0'\n}, !ownerState.disableGutters && {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n}));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(({\n theme\n}) => ({\n display: 'flex',\n color: theme.palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n}));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n expanded,\n disabled,\n disableGutters\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, _extends({\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.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 icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n onClick: 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} : void 0;\nexport default AccordionSummary;","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":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getAccordionUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","AccordionRoot","styled","Paper","name","overridesResolver","props","styles","ownerState","accordionClasses","region","root","square","rounded","disableGutters","gutters","theme","transition","duration","transitions","shortest","position","create","overflowAnchor","left","top","right","height","content","opacity","backgroundColor","palette","divider","display","marginTop","marginBottom","action","disabledBackground","_extends","borderRadius","borderTopLeftRadius","shape","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","margin","React","inProps","ref","arr","useThemeProps","childrenProp","children","className","defaultExpanded","disabled","expandedProp","expanded","onChange","TransitionComponent","Collapse","TransitionProps","other","_objectWithoutPropertiesLoose","useControlled","controlled","state","setExpandedState","handleChange","event","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","summary","contextValue","toggle","classes","slots","composeClasses","useUtilityClasses","_jsxs","clsx","_jsx","AccordionContext","value","in","timeout","id","role","getAccordionDetailsUtilityClass","AccordionDetailsRoot","padding","spacing","getAccordionSummaryUtilityClass","AccordionSummaryRoot","ButtonBase","minHeight","accordionSummaryClasses","focus","disabledOpacity","cursor","AccordionSummaryContent","flexGrow","AccordionSummaryExpandIconWrapper","expandIconWrapper","color","active","transform","expandIcon","focusVisibleClassName","onClick","focusVisible","focusRipple","disableRipple","component","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js b/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js deleted file mode 100644 index 0399d6b3c..000000000 --- a/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8990],{8990:function(n,e,o){o.r(e);var t=o(29439),i=o(1413),s=(o(72791),o(51691)),c=o(11135),r=o(25787),a=o(23814),l=o(60364),u=o(42649),d=o(9505),f=o(23508),m=o(93656),Z=o(80184),v=(0,l.$j)((function(n){return{session:n.console.session}}),{setErrorSnackMessage:u.Ih});e.default=(0,r.Z)((function(n){return(0,c.Z)((0,i.Z)({},a.oO))}))(v((function(n){var e=n.onClose,o=n.modalOpen,i=n.bucket,c=n.toDelete,r=(0,d.Z)((function(){return e()}),(function(n){return(0,u.Ih)(n)})),a=(0,t.Z)(r,2),l=a[0],v=a[1];return(0,Z.jsx)(f.Z,{title:"Delete Access Rule",confirmText:"Delete",isOpen:o,isLoading:l,onConfirm:function(){v("DELETE","/api/v1/bucket/".concat(i,"/access-rules"),{prefix:c})},titleIcon:(0,Z.jsx)(m.Nv,{}),onClose:e,confirmationContent:(0,Z.jsx)(s.Z,{children:"Are you sure you want to delete this access rule?"})})})))},9505:function(n,e,o){var t=o(29439),i=o(72791),s=o(81207);e.Z=function(n,e){var o=(0,i.useState)(!1),c=(0,t.Z)(o,2),r=c[0],a=c[1];return[r,function(o,t,i){a(!0),s.Z.invoke(o,t,i).then((function(e){a(!1),n(e)})).catch((function(n){a(!1),e(n)}))}]}},23508:function(n,e,o){var t=o(1413),i=o(72791),s=o(5574),c=o(65661),r=o(39157),a=o(97123),l=o(36151),u=o(59860),d=o(13400),f=o(29823),m=o(11135),Z=o(25787),v=o(23814),p=o(80184);e.Z=(0,Z.Z)((function(n){return(0,m.Z)((0,t.Z)({},v.Qw))}))((function(n){var e=n.isOpen,o=void 0!==e&&e,m=n.onClose,Z=n.onCancel,v=n.onConfirm,x=n.classes,h=void 0===x?{}:x,C=n.title,j=void 0===C?"":C,k=n.isLoading,b=n.confirmationContent,N=n.cancelText,g=void 0===N?"Cancel":N,y=n.confirmText,B=void 0===y?"Confirm":y,I=n.confirmButtonProps,T=void 0===I?{}:I,w=n.cancelButtonProps,D=void 0===w?{}:w,E=n.titleIcon,O=void 0===E?null:E;return(0,p.jsxs)(s.Z,{open:o,onClose:function(n,e){"backdropClick"!==e&&m()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,p.jsxs)(c.Z,{className:h.title,children:[(0,p.jsxs)("div",{className:h.titleText,children:[O," ",j]}),(0,p.jsx)("div",{className:h.closeContainer,children:(0,p.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,p.jsx)(f.Z,{})})})]}),(0,p.jsx)(r.Z,{className:h.content,children:b}),(0,p.jsxs)(a.Z,{className:h.actions,children:[(0,p.jsx)(l.Z,(0,t.Z)((0,t.Z)({className:h.cancelButton,onClick:Z||m,disabled:k,type:"button"},D),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:g})),(0,p.jsx)(u.Z,(0,t.Z)((0,t.Z)({className:h.confirmButton,type:"button",onClick:v,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,p.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},T),{},{children:B}))]})]})}))},29823:function(n,e,o){var t=o(95318);e.Z=void 0;var i=t(o(45649)),s=o(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=8990.4fcc1b0f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js.map b/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js.map deleted file mode 100644 index 2528353e7..000000000 --- a/portal-ui/build/static/js/8990.4fcc1b0f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/8990.4fcc1b0f.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/DeleteAccessRule.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 { 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 { connect } from \"react-redux\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, { setErrorSnackMessage });\n\ninterface IDeleteAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toDelete: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteAccessRule = ({\n onClose,\n modalOpen,\n bucket,\n toDelete,\n}: IDeleteAccessRule) => {\n const onDelSuccess = () => onClose();\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: toDelete,\n });\n };\n\n return (\n }\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete this access rule?\n \n }\n />\n );\n};\n\nexport default withStyles(styles)(connector(DeleteAccessRule));\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","state","session","console","setErrorSnackMessage","withStyles","theme","createStyles","modalBasic","onClose","modalOpen","bucket","toDelete","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","isLoading","onConfirm","prefix","titleIcon","confirmationContent","onSuccess","onError","useState","setIsLoading","method","url","data","api","then","res","catch","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/8990.57055bc2.chunk.js b/portal-ui/build/static/js/8990.57055bc2.chunk.js new file mode 100644 index 000000000..fa223682b --- /dev/null +++ b/portal-ui/build/static/js/8990.57055bc2.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[8990],{8990:function(e,n,t){t.r(n);var o=t(29439),u=t(1413),c=(t(72791),t(51691)),r=t(11135),s=t(25787),i=t(23814),a=t(60364),f=t(42649),l=t(9505),Z=t(2148),h=t(93656),p=t(80184),k=(0,a.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:f.Ih});n.default=(0,s.Z)((function(e){return(0,r.Z)((0,u.Z)({},i.oO))}))(k((function(e){var n=e.onClose,t=e.modalOpen,u=e.bucket,r=e.toDelete,s=(0,l.Z)((function(){return n()}),(function(e){return(0,f.Ih)(e)})),i=(0,o.Z)(s,2),a=i[0],k=i[1];return(0,p.jsx)(Z.Z,{title:"Delete Access Rule",confirmText:"Delete",isOpen:t,isLoading:a,onConfirm:function(){k("DELETE","/api/v1/bucket/".concat(u,"/access-rules"),{prefix:r})},titleIcon:(0,p.jsx)(h.Nv,{}),onClose:n,confirmationContent:(0,p.jsx)(c.Z,{children:"Are you sure you want to delete this access rule?"})})})))},9505:function(e,n,t){var o=t(29439),u=t(72791),c=t(81207);n.Z=function(e,n){var t=(0,u.useState)(!1),r=(0,o.Z)(t,2),s=r[0],i=r[1];return[s,function(t,o,u){i(!0),c.Z.invoke(t,o,u).then((function(n){i(!1),e(n)})).catch((function(e){i(!1),n(e)}))}]}}}]); +//# sourceMappingURL=8990.57055bc2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/8990.57055bc2.chunk.js.map b/portal-ui/build/static/js/8990.57055bc2.chunk.js.map new file mode 100644 index 000000000..e4f5d91fa --- /dev/null +++ b/portal-ui/build/static/js/8990.57055bc2.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8990.57055bc2.chunk.js","mappings":"mQAkCMA,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,QAASD,EAAME,QAAQD,WAGW,CAAEE,qBAAAA,EAAAA,KAiDtC,WAAeC,EAAAA,EAAAA,IAxCA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAsCP,CAAkCT,GAnCT,SAAC,GAKA,IAJxBU,EAIuB,EAJvBA,QACAC,EAGuB,EAHvBA,UACAC,EAEuB,EAFvBA,OACAC,EACuB,EADvBA,SAKA,GAAyCC,EAAAA,EAAAA,IAHpB,kBAAMJ,OACR,SAACK,GAAD,OAA+BV,EAAAA,EAAAA,IAAqBU,MAEvE,eAAOC,EAAP,KAAsBC,EAAtB,KAQA,OACE,SAAC,IAAD,CACEC,MAAK,qBACLC,YAAa,SACbC,OAAQT,EACRU,UAAWL,EACXM,UAZoB,WACtBL,EAAgB,SAAD,yBAA6BL,EAA7B,iBAAoD,CACjEW,OAAQV,KAWRW,WAAW,SAAC,KAAD,IACXd,QAASA,EACTe,qBACE,SAAC,IAAD,uE,0DC5CR,IAvBe,SACbC,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAApD,eAAOP,EAAP,KAAkBQ,EAAlB,KAgBA,MAAO,CAACR,EAdQ,SAACS,EAAgBC,EAAaC,GAC5CH,GAAa,GACbI,EAAAA,EAAAA,OACUH,EAAQC,EAAKC,GACpBE,MAAK,SAACC,GACLN,GAAa,GACbH,EAAUS,MAEXC,OAAM,SAACrB,GACNc,GAAa,GACbF,EAAQZ","sources":["screens/Console/Buckets/BucketDetails/DeleteAccessRule.tsx","screens/Console/Common/Hooks/useApi.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 { 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 { connect } from \"react-redux\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, { setErrorSnackMessage });\n\ninterface IDeleteAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toDelete: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteAccessRule = ({\n onClose,\n modalOpen,\n bucket,\n toDelete,\n}: IDeleteAccessRule) => {\n const onDelSuccess = () => onClose();\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: toDelete,\n });\n };\n\n return (\n }\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete this access rule?\n \n }\n />\n );\n};\n\nexport default withStyles(styles)(connector(DeleteAccessRule));\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"],"names":["connector","connect","state","session","console","setErrorSnackMessage","withStyles","theme","createStyles","modalBasic","onClose","modalOpen","bucket","toDelete","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","isLoading","onConfirm","prefix","titleIcon","confirmationContent","onSuccess","onError","useState","setIsLoading","method","url","data","api","then","res","catch"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9002.8057e34f.chunk.js b/portal-ui/build/static/js/9002.8057e34f.chunk.js deleted file mode 100644 index 06f612de0..000000000 --- a/portal-ui/build/static/js/9002.8057e34f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9002],{23804:function(e,t,n){"use strict";n(72791);var i=n(11135),a=n(25787),s=n(61889),r=n(80184);t.Z=(0,a.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 t=e.classes,n=e.iconComponent,i=e.title,a=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(s.ZP,{container:!0,children:[(0,r.jsxs)(s.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,i]}),(0,r.jsx)(s.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},32512:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return A}});var i=n(93433),a=n(29439),s=n(1413),r=n(72791),l=n(60364),o=n(11135),c=n(25787),d=n(61889),u=n(42649),m=n(23814),h=n(38442),f=n(56087),p=n(93656),x=n(81207),g=n(92983),Z=n(23804),j=n(60680),v=n(75578),b=n(40603),S=n(36151),k=n(56028),N=n(21435),C=n(17420),R=n(64163),P=n(37516),y=n(80184),E=(0,l.$j)(null,{setModalErrorSnackMessage:u.zb}),I=(0,c.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"},multiContainer:{display:"flex",alignItems:"center"},sizeFactorContainer:{"& label":{display:"none"},"& div:first-child":{marginBottom:0}}},m.bK),m.QV),m.DF),m.ID),{},{modalFormScrollable:(0,s.Z)((0,s.Z)({},m.ID.modalFormScrollable),{},{paddingRight:10})}))}))(E((function(e){var t=e.closeModalAndRefresh,n=e.open,i=e.classes,s=e.bucketName,l=e.ruleID,o=e.setModalErrorSnackMessage,c=(0,r.useState)(!0),u=(0,a.Z)(c,2),m=u[0],h=u[1],f=(0,r.useState)(!1),g=(0,a.Z)(f,2),Z=g[0],j=g[1],v=(0,r.useState)("1"),b=(0,a.Z)(v,2),E=b[0],I=b[1],F=(0,r.useState)(""),T=(0,a.Z)(F,2),w=T[0],A=T[1],D=(0,r.useState)(""),M=(0,a.Z)(D,2),B=M[0],O=M[1],_=(0,r.useState)(!1),z=(0,a.Z)(_,2),L=z[0],U=z[1],G=(0,r.useState)(!1),H=(0,a.Z)(G,2),K=H[0],V=H[1],W=(0,r.useState)(""),Y=(0,a.Z)(W,2),q=Y[0],$=Y[1],Q=(0,r.useState)(""),X=(0,a.Z)(Q,2),J=X[0],ee=X[1],te=(0,r.useState)(""),ne=(0,a.Z)(te,2),ie=ne[0],ae=ne[1],se=(0,r.useState)(!1),re=(0,a.Z)(se,2),le=re[0],oe=re[1],ce=(0,r.useState)(!1),de=(0,a.Z)(ce,2),ue=de[0],me=de[1],he=(0,r.useState)(!1),fe=(0,a.Z)(he,2),pe=fe[0],xe=fe[1];return(0,r.useEffect)((function(){m&&x.Z.invoke("GET","/api/v1/buckets/".concat(s,"/replication/").concat(l)).then((function(e){I(e.priority.toString());var t=e.prefix||"",n=e.tags||"";O(t),$(n),ee(n),A(e.destination.bucket),U(e.delete_marker_replication),ae(e.storageClass||""),oe(!!e.existingObjects),me(!!e.deletes_replication),xe("Enabled"===e.status),V(!!e.metadata_replication),h(!1)})).catch((function(e){o(e),h(!1)}))}),[m,o,s,l]),(0,r.useEffect)((function(){if(Z){var e={arn:w,ruleState:pe,prefix:B,tags:J,replicateDeleteMarkers:L,replicateDeletes:ue,replicateExistingObjects:le,replicateMetadata:K,priority:parseInt(E),storageClass:ie};x.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/replication/").concat(l),e).then((function(){j(!1),t(!0)})).catch((function(e){o(e),j(!1)}))}}),[Z,s,l,w,B,J,L,E,ue,le,pe,K,ie,t,o]),(0,y.jsx)(k.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Edit Bucket Replication",titleIcon:(0,y.jsx)(p.xR,{}),children:(0,y.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),j(!0)},children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalFormScrollable,children:[(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:pe,id:"ruleState",name:"ruleState",label:"Rule State",onChange:function(e){xe(e.target.checked)},value:pe})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(R.Z,{label:"Destination",content:w})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(N.Z,{id:"priority",name:"priority",onChange:function(e){e.target.validity.valid&&I(e.target.value)},label:"Priority",value:E,pattern:"[0-9]*"})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(i.spacerTop," ").concat(i.formFieldRow),children:(0,y.jsx)(N.Z,{id:"storageClass",name:"storageClass",onChange:function(e){ae(e.target.value)},placeholder:"STANDARD_IA,REDUCED_REDUNDANCY etc",label:"Storage Class",value:ie})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsxs)("fieldset",{className:i.fieldGroup,children:[(0,y.jsx)("legend",{className:i.descriptionText,children:"Object Filters"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(N.Z,{id:"prefix",name:"prefix",onChange:function(e){O(e.target.value)},placeholder:"prefix",label:"Prefix",value:B})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(C.Z,{name:"tags",label:"Tags",elements:q,onChange:function(e){ee(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsxs)("fieldset",{className:i.fieldGroup,children:[(0,y.jsx)("legend",{className:i.descriptionText,children:"Replication Options"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:le,id:"repExisting",name:"repExisting",label:"Existing Objects",onChange:function(e){oe(e.target.checked)},value:le,description:"Replicate existing objects"})}),(0,y.jsx)(P.Z,{checked:K,id:"metadatataSync",name:"metadatataSync",label:"Metadata Sync",onChange:function(e){V(e.target.checked)},value:K,description:"Metadata Sync"}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:L,id:"deleteMarker",name:"deleteMarker",label:"Delete Marker",onChange:function(e){U(e.target.checked)},value:L,description:"Replicate soft deletes"})}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,y.jsx)(P.Z,{checked:ue,id:"repDelete",name:"repDelete",label:"Deletes",onChange:function(e){me(e.target.checked)},value:ue,description:"Replicate versioned deletes"})})]})})]}),(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalButtonBar,children:[(0,y.jsx)(S.Z,{type:"button",variant:"outlined",color:"primary",disabled:m||Z,onClick:function(){t(!1)},children:"Cancel"}),(0,y.jsx)(S.Z,{type:"submit",variant:"contained",color:"primary",disabled:m||Z,children:"Save"})]})]})})})}))),F=(0,v.Z)(r.lazy((function(){return n.e(889).then(n.bind(n,20889))}))),T=(0,v.Z)(r.lazy((function(){return Promise.all([n.e(2442),n.e(9088)]).then(n.bind(n,69088))}))),w=(0,l.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:u.Ih}),A=(0,c.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},m.qg),m.OR),{},{twHeight:{minHeight:400}}))}))(w((function(e){var t=e.classes,n=e.match,s=e.setErrorSnackMessage,l=e.loadingBucket,o=(0,r.useState)(!0),c=(0,a.Z)(o,2),u=c[0],m=c[1],v=(0,r.useState)([]),S=(0,a.Z)(v,2),k=S[0],N=S[1],C=(0,r.useState)(!1),R=(0,a.Z)(C,2),P=R[0],E=R[1],w=(0,r.useState)(!1),A=(0,a.Z)(w,2),D=A[0],M=A[1],B=(0,r.useState)(!1),O=(0,a.Z)(B,2),_=O[0],z=O[1],L=(0,r.useState)(""),U=(0,a.Z)(L,2),G=U[0],H=U[1],K=(0,r.useState)([]),V=(0,a.Z)(K,2),W=V[0],Y=V[1],q=(0,r.useState)(!1),$=(0,a.Z)(q,2),Q=$[0],X=$[1],J=n.params.bucketName,ee=(0,h.F)(J,[f.Ft.S3_GET_REPLICATION_CONFIGURATION]);(0,r.useEffect)((function(){l&&m(!0)}),[l,m]),(0,r.useEffect)((function(){u&&(ee?x.Z.invoke("GET","/api/v1/buckets/".concat(J,"/replication")).then((function(e){var t=e.rules?e.rules:[];t.sort((function(e,t){return e.priority-t.priority})),N(t),m(!1)})).catch((function(e){s(e),m(!1)})):m(!1))}),[u,s,J,ee]);var te=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];M(e)},ne=[{type:"delete",onClick:function(e){H(e.id),X(!1),E(!0)}},{type:"view",onClick:function(e){H(e.id),z(!0)},disableButtonFunction:!(0,h.F)(J,[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],!0)}];return(0,y.jsxs)(r.Fragment,{children:[D&&(0,y.jsx)(F,{closeModalAndRefresh:function(){te(!1),m(!0)},open:D,bucketName:J,setReplicationRules:k}),P&&(0,y.jsx)(T,{deleteOpen:P,selectedBucket:J,closeDeleteModalAndRefresh:function(e){E(!1),e&&m(!0)},ruleToDelete:G,rulesToDelete:W,remainingRules:k.length,allSelected:W.length===k.length,deleteSelectedRules:Q}),_&&(0,y.jsx)(I,{closeModalAndRefresh:function(e){z(!1),e&&m(!0)},open:_,bucketName:J,ruleID:G}),(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,y.jsx)(j.Z,{children:"Replication"}),(0,y.jsxs)("div",{children:[(0,y.jsx)(h.s,{scopes:[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],resource:J,matchAll:!0,errorProps:{disabled:!0},children:(0,y.jsx)(b.Z,{tooltip:"Remove Selected Replication Rules",onClick:function(){H("selectedRules"),X(!0),E(!0)},text:"Remove Selected Rules",icon:(0,y.jsx)(p.XH,{}),color:"secondary",variant:"outlined",disabled:0===W.length})}),(0,y.jsx)(h.s,{scopes:[f.Ft.S3_PUT_REPLICATION_CONFIGURATION],resource:J,matchAll:!0,errorProps:{disabled:!0},children:(0,y.jsx)(b.Z,{tooltip:"Add Replication Rule",onClick:function(){te(!0)},text:"Add Replication Rule",icon:(0,y.jsx)(p.dt,{}),color:"primary",variant:"contained"})})]})]}),(0,y.jsx)(d.ZP,{item:!0,xs:12,children:(0,y.jsx)(h.s,{scopes:[f.Ft.S3_GET_REPLICATION_CONFIGURATION],resource:J,errorProps:{disabled:!0},children:(0,y.jsx)(g.Z,{itemActions:ne,columns:[{label:"Priority",elementKey:"priority",width:55,contentTextAlign:"center"},{label:"Destination",elementKey:"destination",renderFunction:function(e){return(0,y.jsx)(r.Fragment,{children:e.bucket.replace("arn:aws:s3:::","")})}},{label:"Prefix",elementKey:"prefix",width:200},{label:"Tags",elementKey:"tags",renderFunction:function(e){return(0,y.jsx)(r.Fragment,{children:e&&""!==e.tags?"Yes":"No"})},width:60},{label:"Status",elementKey:"status",width:100}],isLoading:u,records:k,entityName:"Replication Rules",idField:"id",customPaperHeight:t.twHeight,textSelectable:!0,selectedItems:W,onSelect:function(e){return function(e){var t=e.target,n=t.value,a=t.checked,s=(0,i.Z)(W);return a?s.push(n):s=s.filter((function(e){return e!==n})),Y(s),s}(e)},onSelectAll:function(){W.length!==k.length?Y(k.map((function(e){return e.id}))):Y([])}})})}),(0,y.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,y.jsx)("br",{}),(0,y.jsx)(Z.Z,{title:"Replication",iconComponent:(0,y.jsx)(p.wN,{}),help:(0,y.jsxs)(r.Fragment,{children:["MinIO supports server-side and client-side replication of objects between source and destination buckets.",(0,y.jsx)("br",{}),(0,y.jsx)("br",{}),"You can learn more at our"," ",(0,y.jsx)("a",{href:"https://docs.min.io/minio/baremetal/replication/replication-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})]})]})]})})))},64163:function(e,t,n){"use strict";var i=n(1413),a=n(72791),s=n(61889),r=n(11135),l=n(25787),o=n(23814),c=n(80184);t.Z=(0,l.Z)((function(e){return(0,r.Z)((0,i.Z)({},o.xx))}))((function(e){var t=e.classes,n=e.label,i=void 0===n?"":n,r=e.content,l=e.multiLine,o=void 0!==l&&l;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(s.ZP,{className:t.prefinedContainer,children:[""!==i&&(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedTitle,children:i}),(0,c.jsx)(s.ZP,{item:!0,xs:12,className:t.predefinedList,children:(0,c.jsx)(s.ZP,{item:!0,xs:12,className:o?t.innerContentMultiline:t.innerContent,children:r})})]})})}))},17420:function(e,t,n){"use strict";var i=n(93433),a=n(29439),s=n(1413),r=n(72791),l=n(26181),o=n.n(l),c=n(48573),d=n.n(c),u=n(11135),m=n(25787),h=n(61889),f=n(77961),p=n(30829),x=n(20068),g=n(23814),Z=n(21435),j=n(47919),v=n(80184);t.Z=(0,m.Z)((function(e){return(0,u.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},g.YI),g.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 t=e.elements,n=e.name,s=e.label,l=e.tooltip,c=void 0===l?"":l,u=e.keyPlaceholder,m=void 0===u?"":u,g=e.valuePlaceholder,b=void 0===g?"":g,S=e.onChange,k=e.withBorder,N=void 0!==k&&k,C=e.classes,R=(0,r.useState)([""]),P=(0,a.Z)(R,2),y=P[0],E=P[1],I=(0,r.useState)([""]),F=(0,a.Z)(I,2),T=F[0],w=F[1],A=(0,r.createRef)();(0,r.useEffect)((function(){if(1===y.length&&""===y[0]&&1===T.length&&""===T[0]&&t&&""!==t){var e=t.split("&"),n=[],i=[];e.forEach((function(e){var t=e.split("=");2===t.length&&(n.push(t[0]),i.push(t[1]))})),n.push(""),i.push(""),E(n),w(i)}}),[y,T,t]),(0,r.useEffect)((function(){var e=A.current;e&&y.length>1&&e.scrollIntoView(!1)}),[y]);var D=(0,r.useRef)(!0);(0,r.useLayoutEffect)((function(){D.current?D.current=!1:O()}),[y,T]);var M=function(e){e.persist();var t=(0,i.Z)(y);t[o()(e.target,"dataset.index",0)]=e.target.value,E(t)},B=function(e){e.persist();var t=(0,i.Z)(T);t[o()(e.target,"dataset.index",0)]=e.target.value,w(t)},O=d()((function(){var e="";y.forEach((function(t,n){if(y[n]&&T[n]){var i="".concat(t,"=").concat(T[n]);0!==n&&(i="&".concat(i)),e="".concat(e).concat(i)}})),S(e)}),500),_=T.map((function(e,t){return(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:C.lineInputBoxes,children:[(0,v.jsx)(Z.Z,{id:"".concat(n,"-key-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:y[t],onChange:M,index:t,placeholder:m}),(0,v.jsx)("span",{className:C.queryDiv,children:":"}),(0,v.jsx)(Z.Z,{id:"".concat(n,"-value-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:T[t],onChange:B,index:t,placeholder:b,overlayIcon:t===T.length-1?(0,v.jsx)(j.Z,{}):null,overlayAction:function(){!function(){if(""!==y[y.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,i.Z)(y),t=(0,i.Z)(T);e.push(""),t.push(""),E(e),w(t)}}()}})]},"query-pair-".concat(n,"-").concat(t.toString()))}));return(0,v.jsx)(r.Fragment,{children:(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:C.fieldContainer,children:[(0,v.jsxs)(p.Z,{className:C.inputLabel,children:[(0,v.jsx)("span",{children:s}),""!==c&&(0,v.jsx)("div",{className:C.tooltipContainer,children:(0,v.jsx)(x.Z,{title:c,placement:"top-start",children:(0,v.jsx)(f.Z,{className:C.tooltip})})})]}),(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(N?C.inputWithBorder:""),children:[_,(0,v.jsx)("div",{ref:A})]})]})})}))},56028:function(e,t,n){"use strict";var i=n(29439),a=n(1413),s=n(72791),r=n(60364),l=n(13400),o=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),h=n(25787),f=n(23814),p=n(42649),x=n(29823),g=n(28057),Z=n(80184),j=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});t.Z=(0,h.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))}))(j((function(e){var t=e.onClose,n=e.modalOpen,r=e.title,m=e.children,h=e.classes,f=e.wideLimit,p=void 0===f||f,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,N=(0,s.useState)(!1),C=(0,i.Z)(N,2),R=C[0],P=C[1];(0,s.useEffect)((function(){b("")}),[b]),(0,s.useEffect)((function(){if(j){if(""===j.message)return void P(!1);"error"!==j.type&&P(!0)}}),[j]);var y=p?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return j&&(E=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(E=j.message)),(0,Z.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:n,classes:h},y),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,Z.jsxs)(d.Z,{className:h.title,children:[(0,Z.jsxs)("div",{className:h.titleText,children:[k," ",r]}),(0,Z.jsx)("div",{className:h.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(x.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(o.Z,{open:R,className:h.snackBarModal,onClose:function(){P(!1),b("")},message:E,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},60680:function(e,t,n){"use strict";n(72791);var i=n(11135),a=n(25787),s=n(80184);t.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,s.jsx)("h1",{className:t.root,children:n})}))},26759:function(e,t,n){"use strict";var i=n(95318);t.Z=void 0;var a=i(n(45649)),s=n(80184),r=(0,a.default)((0,s.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=r},70366:function(e,t,n){"use strict";var i=n(95318);t.Z=void 0;var a=i(n(45649)),s=n(80184),r=(0,a.default)((0,s.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},97911:function(e,t,n){"use strict";var i=n(95318);t.Z=void 0;var a=i(n(45649)),s=n(80184),r=(0,a.default)((0,s.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=r},26769:function(e,t,n){var i=n(39066),a=n(93629),s=n(43141);e.exports=function(e){return"string"==typeof e||!a(e)&&s(e)&&"[object String]"==i(e)}}}]); -//# sourceMappingURL=9002.8057e34f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9002.8057e34f.chunk.js.map b/portal-ui/build/static/js/9002.8057e34f.chunk.js.map deleted file mode 100644 index f538d1f4d..000000000 --- a/portal-ui/build/static/js/9002.8057e34f.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9002.8057e34f.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/EditReplicationModal.tsx","screens/Console/Buckets/BucketDetails/BucketReplicationPanel.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.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 } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport { BucketReplicationIcon } from \"../../../../icons\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { BucketReplicationRule } from \"../types\";\nimport { connect } from \"react-redux\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IEditReplicationModal {\n closeModalAndRefresh: (refresh: boolean) => void;\n open: boolean;\n classes: any;\n bucketName: string;\n ruleID: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n multiContainer: {\n display: \"flex\",\n alignItems: \"center\",\n },\n sizeFactorContainer: {\n \"& label\": {\n display: \"none\",\n },\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n ...spacingUtils,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalStyleUtils,\n modalFormScrollable: {\n ...modalStyleUtils.modalFormScrollable,\n paddingRight: 10,\n },\n });\n\nconst EditReplicationModal = ({\n closeModalAndRefresh,\n open,\n classes,\n bucketName,\n ruleID,\n setModalErrorSnackMessage,\n}: IEditReplicationModal) => {\n const [editLoading, setEditLoading] = useState(true);\n const [saveEdit, setSaveEdit] = useState(false);\n const [priority, setPriority] = useState(\"1\");\n const [destination, setDestination] = useState(\"\");\n const [prefix, setPrefix] = useState(\"\");\n const [repDeleteMarker, setRepDeleteMarker] = useState(false);\n const [metadataSync, setMetadataSync] = useState(false);\n const [initialTags, setInitialTags] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [targetStorageClass, setTargetStorageClass] = useState(\"\");\n const [repExisting, setRepExisting] = useState(false);\n const [repDelete, setRepDelete] = useState(false);\n const [ruleState, setRuleState] = useState(false);\n\n useEffect(() => {\n if (editLoading) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication/${ruleID}`)\n .then((res: BucketReplicationRule) => {\n setPriority(res.priority.toString());\n const pref = res.prefix || \"\";\n const tag = res.tags || \"\";\n setPrefix(pref);\n setInitialTags(tag);\n setTags(tag);\n setDestination(res.destination.bucket);\n setRepDeleteMarker(res.delete_marker_replication);\n setTargetStorageClass(res.storageClass || \"\");\n setRepExisting(!!res.existingObjects);\n setRepDelete(!!res.deletes_replication);\n setRuleState(res.status === \"Enabled\");\n setMetadataSync(!!res.metadata_replication);\n\n setEditLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setEditLoading(false);\n });\n }\n }, [editLoading, setModalErrorSnackMessage, bucketName, ruleID]);\n\n useEffect(() => {\n if (saveEdit) {\n const remoteBucketsInfo = {\n arn: destination,\n ruleState: ruleState,\n prefix: prefix,\n tags: tags,\n replicateDeleteMarkers: repDeleteMarker,\n replicateDeletes: repDelete,\n replicateExistingObjects: repExisting,\n replicateMetadata: metadataSync,\n priority: parseInt(priority),\n storageClass: targetStorageClass,\n };\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/replication/${ruleID}`,\n remoteBucketsInfo\n )\n .then(() => {\n setSaveEdit(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setSaveEdit(false);\n });\n }\n }, [\n saveEdit,\n bucketName,\n ruleID,\n destination,\n prefix,\n tags,\n repDeleteMarker,\n priority,\n repDelete,\n repExisting,\n ruleState,\n metadataSync,\n targetStorageClass,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n ]);\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Edit Bucket Replication\"\n titleIcon={}\n >\n ) => {\n e.preventDefault();\n setSaveEdit(true);\n }}\n >\n \n \n \n {\n setRuleState(e.target.checked);\n }}\n value={ruleState}\n />\n \n \n \n \n \n ) => {\n if (e.target.validity.valid) {\n setPriority(e.target.value);\n }\n }}\n label=\"Priority\"\n value={priority}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n setTargetStorageClass(e.target.value);\n }}\n placeholder=\"STANDARD_IA,REDUCED_REDUNDANCY etc\"\n label=\"Storage Class\"\n value={targetStorageClass}\n />\n \n \n
    \n \n Object Filters\n \n \n ) => {\n setPrefix(e.target.value);\n }}\n placeholder=\"prefix\"\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 Replication Options\n \n \n {\n setRepExisting(e.target.checked);\n }}\n value={repExisting}\n description={\"Replicate existing objects\"}\n />\n \n {\n setMetadataSync(e.target.checked);\n }}\n value={metadataSync}\n description={\"Metadata Sync\"}\n />\n \n {\n setRepDeleteMarker(e.target.checked);\n }}\n value={repDeleteMarker}\n description={\"Replicate soft deletes\"}\n />\n \n \n {\n setRepDelete(e.target.checked);\n }}\n value={repDelete}\n description={\"Replicate versioned deletes\"}\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n \n \n \n );\n};\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(EditReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n BucketInfo,\n BucketReplication,\n BucketReplicationDestination,\n BucketReplicationRule,\n} from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { AppState } from \"../../../../store\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { AddIcon, BucketsIcon, TrashIcon } from \"../../../../icons\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport EditReplicationModal from \"./EditReplicationModal\";\n\nconst AddReplicationModal = withSuspense(\n React.lazy(() => import(\"./AddReplicationModal\"))\n);\nconst DeleteReplicationRule = withSuspense(\n React.lazy(() => import(\"./DeleteReplicationRule\"))\n);\n\ninterface IBucketReplicationProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\nconst BucketReplicationPanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n}: IBucketReplicationProps) => {\n const [loadingReplication, setLoadingReplication] = useState(true);\n const [replicationRules, setReplicationRules] = useState<\n BucketReplicationRule[]\n >([]);\n const [deleteReplicationModal, setDeleteReplicationModal] =\n useState(false);\n const [openSetReplication, setOpenSetReplication] = useState(false);\n const [editReplicationModal, setEditReplicationModal] =\n useState(false);\n const [selectedRRule, setSelectedRRule] = useState(\"\");\n const [selectedRepRules, setSelectedRepRules] = useState([]);\n const [deleteSelectedRules, setDeleteSelectedRules] =\n useState(false);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayReplicationRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingReplication(true);\n }\n }, [loadingBucket, setLoadingReplication]);\n\n useEffect(() => {\n if (loadingReplication) {\n if (displayReplicationRules) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/replication`)\n .then((res: BucketReplication) => {\n const r = res.rules ? res.rules : [];\n\n r.sort((a, b) => a.priority - b.priority);\n\n setReplicationRules(r);\n setLoadingReplication(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingReplication(false);\n });\n } else {\n setLoadingReplication(false);\n }\n }\n }, [\n loadingReplication,\n setErrorSnackMessage,\n bucketName,\n displayReplicationRules,\n ]);\n\n const closeAddReplication = () => {\n setOpenReplicationOpen(false);\n setLoadingReplication(true);\n };\n\n const setOpenReplicationOpen = (open = false) => {\n setOpenSetReplication(open);\n };\n\n const closeReplicationModalDelete = (refresh: boolean) => {\n setDeleteReplicationModal(false);\n\n if (refresh) {\n setLoadingReplication(true);\n }\n };\n\n const closeEditReplication = (refresh: boolean) => {\n setEditReplicationModal(false);\n\n if (refresh) {\n setLoadingReplication(true);\n }\n };\n\n const confirmDeleteReplication = (replication: BucketReplicationRule) => {\n setSelectedRRule(replication.id);\n setDeleteSelectedRules(false);\n setDeleteReplicationModal(true);\n };\n\n const confirmDeleteSelectedReplicationRules = () => {\n setSelectedRRule(\"selectedRules\");\n setDeleteSelectedRules(true);\n setDeleteReplicationModal(true);\n };\n\n const editReplicationRule = (replication: BucketReplicationRule) => {\n setSelectedRRule(replication.id);\n setEditReplicationModal(true);\n };\n\n const ruleDestDisplay = (events: BucketReplicationDestination) => {\n return {events.bucket.replace(\"arn:aws:s3:::\", \"\")};\n };\n\n const tagDisplay = (events: BucketReplicationRule) => {\n return {events && events.tags !== \"\" ? \"Yes\" : \"No\"};\n };\n\n const selectAllItems = () => {\n if (selectedRepRules.length === replicationRules.length) {\n setSelectedRepRules([]);\n return;\n }\n setSelectedRepRules(replicationRules.map((x) => x.id));\n };\n\n const selectRules = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedRepRules]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedRepRules(elements);\n return elements;\n };\n\n const replicationTableActions: any = [\n {\n type: \"delete\",\n onClick: confirmDeleteReplication,\n },\n {\n type: \"view\",\n onClick: editReplicationRule,\n disableButtonFunction: !hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION],\n true\n ),\n },\n ];\n\n return (\n \n {openSetReplication && (\n \n )}\n\n {deleteReplicationModal && (\n \n )}\n\n {editReplicationModal && (\n \n )}\n \n \n Replication\n
    \n \n {\n confirmDeleteSelectedReplicationRules();\n }}\n text={\"Remove Selected Rules\"}\n icon={}\n color={\"secondary\"}\n variant={\"outlined\"}\n disabled={selectedRepRules.length === 0}\n />\n \n \n {\n setOpenReplicationOpen(true);\n }}\n text={\"Add Replication Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n
    \n
    \n \n \n selectRules(e)}\n onSelectAll={selectAllItems}\n />\n \n \n \n
    \n }\n help={\n \n MinIO supports server-side and client-side replication of\n objects between source and destination buckets.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\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(BucketReplicationPanel));\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, {\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, { 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","connector","connect","setModalErrorSnackMessage","buttonContainer","textAlign","multiContainer","sizeFactorContainer","spacingUtils","createTenantCommon","formFieldStyles","modalStyleUtils","modalFormScrollable","closeModalAndRefresh","open","bucketName","ruleID","useState","editLoading","setEditLoading","saveEdit","setSaveEdit","priority","setPriority","destination","setDestination","prefix","setPrefix","repDeleteMarker","setRepDeleteMarker","metadataSync","setMetadataSync","initialTags","setInitialTags","tags","setTags","targetStorageClass","setTargetStorageClass","repExisting","setRepExisting","repDelete","setRepDelete","ruleState","setRuleState","useEffect","api","then","res","toString","pref","tag","bucket","delete_marker_replication","storageClass","existingObjects","deletes_replication","status","metadata_replication","catch","err","remoteBucketsInfo","arn","replicateDeleteMarkers","replicateDeletes","replicateExistingObjects","replicateMetadata","parseInt","ModalWrapper","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","Grid","formFieldRow","FormSwitchWrapper","checked","id","name","label","onChange","target","value","PredefinedList","content","InputBoxWrapper","validity","valid","pattern","spacerTop","placeholder","fieldGroup","descriptionText","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","description","modalButtonBar","Button","type","variant","color","disabled","onClick","AddReplicationModal","withSuspense","React","DeleteReplicationRule","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","setErrorSnackMessage","searchField","actionsTray","twHeight","minHeight","match","loadingReplication","setLoadingReplication","replicationRules","setReplicationRules","deleteReplicationModal","setDeleteReplicationModal","openSetReplication","setOpenSetReplication","editReplicationModal","setEditReplicationModal","selectedRRule","setSelectedRRule","selectedRepRules","setSelectedRepRules","deleteSelectedRules","setDeleteSelectedRules","params","displayReplicationRules","hasPermission","IAM_SCOPES","r","rules","sort","a","b","setOpenReplicationOpen","replicationTableActions","replication","disableButtonFunction","Fragment","deleteOpen","selectedBucket","closeDeleteModalAndRefresh","refresh","ruleToDelete","rulesToDelete","remainingRules","length","allSelected","PanelTitle","SecureComponent","scopes","resource","matchAll","errorProps","RBIconButton","tooltip","text","icon","TableWrapper","itemActions","columns","elementKey","contentTextAlign","renderFunction","events","replace","isLoading","records","entityName","idField","customPaperHeight","textSelectable","selectedItems","onSelect","targetD","push","filter","element","selectRules","onSelectAll","map","x","HelpBox","href","rel","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","fieldBasic","tooltipHelper","inputWithBorder","padding","overflowY","position","marginTop","lineInputBoxes","queryDiv","alignSelf","margin","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","split","keys","values","forEach","splittedVals","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","get","onChangeValue","debounce","queryString","keyVal","index","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","fieldContainer","inputLabel","tooltipContainer","placement","ref","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","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/9076.4450f2f8.chunk.js b/portal-ui/build/static/js/9076.4450f2f8.chunk.js new file mode 100644 index 000000000..3653b9474 --- /dev/null +++ b/portal-ui/build/static/js/9076.4450f2f8.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9076],{49076:function(e,n,r){r.r(n);var t=r(29439),s=(r(72791),r(60364)),o=r(51691),c=r(42649),u=r(9505),i=r(2148),l=r(93656),a=r(80184),f={setErrorSnackMessage:c.Ih},d=(0,s.$j)(null,f);n.default=d((function(e){var n=e.closeDeleteModalAndRefresh,r=e.deleteOpen,s=e.selectedUser,c=e.setErrorSnackMessage,f=(0,u.Z)((function(){return n(!0)}),(function(e){return c(e)})),d=(0,t.Z)(f,2),p=d[0],h=d[1];if(!s)return null;return(0,a.jsx)(i.Z,{title:"Delete User",confirmText:"Delete",isOpen:r,titleIcon:(0,a.jsx)(l.Nv,{}),isLoading:p,onConfirm:function(){h("DELETE","/api/v1/user?name=".concat(encodeURI(s.accessKey)),{id:s.id})},onClose:function(){return n(!1)},confirmationContent:(0,a.jsxs)(o.Z,{children:["Are you sure you want to delete user ",(0,a.jsx)("br",{}),(0,a.jsx)("b",{children:s.accessKey}),"?"]})})}))}}]); +//# sourceMappingURL=9076.4450f2f8.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9076.bfebbb14.chunk.js.map b/portal-ui/build/static/js/9076.4450f2f8.chunk.js.map similarity index 96% rename from portal-ui/build/static/js/9076.bfebbb14.chunk.js.map rename to portal-ui/build/static/js/9076.4450f2f8.chunk.js.map index 20abe2729..4109a29c5 100644 --- a/portal-ui/build/static/js/9076.bfebbb14.chunk.js.map +++ b/portal-ui/build/static/js/9076.4450f2f8.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/9076.bfebbb14.chunk.js","mappings":"0NA8EMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GAnDI,SAAC,GAKK,IAJvBE,EAIsB,EAJtBA,2BACAC,EAGsB,EAHtBA,WACAC,EAEsB,EAFtBA,aACAL,EACsB,EADtBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACI,GAAD,OAA+BP,EAAqBO,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKJ,EACH,OAAO,KAaT,OACE,SAAC,IAAD,CACEK,MAAK,cACLC,YAAa,SACbC,OAAQR,EACRS,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAjBoB,WACtBN,EACE,SADa,4BAEQO,UAAUX,EAAaY,YAC5C,CACEC,GAAIb,EAAaa,MAanBC,QA1BY,kBAAMhB,GAA2B,IA2B7CiB,qBACE,UAAC,IAAD,oDACuC,mBACrC,uBAAIf,EAAaY,YAFnB","sources":["screens/Console/Users/DeleteUser.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 { DialogContentText } from \"@mui/material\";\nimport { User } from \"./types\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeleteUserProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedUser: User | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteUser = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedUser,\n setErrorSnackMessage,\n}: IDeleteUserProps) => {\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 (!selectedUser) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/user?name=${encodeURI(selectedUser.accessKey)}`,\n {\n id: selectedUser.id,\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 user
    \n {selectedUser.accessKey}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteUser);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedUser","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","encodeURI","accessKey","id","onClose","confirmationContent"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9076.4450f2f8.chunk.js","mappings":"yNA8EMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GAnDI,SAAC,GAKK,IAJvBE,EAIsB,EAJtBA,2BACAC,EAGsB,EAHtBA,WACAC,EAEsB,EAFtBA,aACAL,EACsB,EADtBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACI,GAAD,OAA+BP,EAAqBO,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKJ,EACH,OAAO,KAaT,OACE,SAAC,IAAD,CACEK,MAAK,cACLC,YAAa,SACbC,OAAQR,EACRS,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAjBoB,WACtBN,EACE,SADa,4BAEQO,UAAUX,EAAaY,YAC5C,CACEC,GAAIb,EAAaa,MAanBC,QA1BY,kBAAMhB,GAA2B,IA2B7CiB,qBACE,UAAC,IAAD,oDACuC,mBACrC,uBAAIf,EAAaY,YAFnB","sources":["screens/Console/Users/DeleteUser.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 { DialogContentText } from \"@mui/material\";\nimport { User } from \"./types\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeleteUserProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedUser: User | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteUser = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedUser,\n setErrorSnackMessage,\n}: IDeleteUserProps) => {\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 (!selectedUser) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/user?name=${encodeURI(selectedUser.accessKey)}`,\n {\n id: selectedUser.id,\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 user
    \n {selectedUser.accessKey}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteUser);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedUser","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","encodeURI","accessKey","id","onClose","confirmationContent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9076.bfebbb14.chunk.js b/portal-ui/build/static/js/9076.bfebbb14.chunk.js deleted file mode 100644 index 87331fbca..000000000 --- a/portal-ui/build/static/js/9076.bfebbb14.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9076],{49076:function(e,n,r){r.r(n);var t=r(29439),s=(r(72791),r(60364)),o=r(51691),c=r(42649),u=r(9505),i=r(23508),l=r(93656),a=r(80184),f={setErrorSnackMessage:c.Ih},d=(0,s.$j)(null,f);n.default=d((function(e){var n=e.closeDeleteModalAndRefresh,r=e.deleteOpen,s=e.selectedUser,c=e.setErrorSnackMessage,f=(0,u.Z)((function(){return n(!0)}),(function(e){return c(e)})),d=(0,t.Z)(f,2),p=d[0],h=d[1];if(!s)return null;return(0,a.jsx)(i.Z,{title:"Delete User",confirmText:"Delete",isOpen:r,titleIcon:(0,a.jsx)(l.Nv,{}),isLoading:p,onConfirm:function(){h("DELETE","/api/v1/user?name=".concat(encodeURI(s.accessKey)),{id:s.id})},onClose:function(){return n(!1)},confirmationContent:(0,a.jsxs)(o.Z,{children:["Are you sure you want to delete user ",(0,a.jsx)("br",{}),(0,a.jsx)("b",{children:s.accessKey}),"?"]})})}))}}]); -//# sourceMappingURL=9076.bfebbb14.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9088.2ed52eb5.chunk.js b/portal-ui/build/static/js/9088.2ed52eb5.chunk.js deleted file mode 100644 index b113c8949..000000000 --- a/portal-ui/build/static/js/9088.2ed52eb5.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9088],{69088:function(e,n,t){t.r(n);var l=t(29439),i=t(72791),o=t(60364),r=t(51691),a=t(42649),s=t(9505),c=t(23508),u=t(93656),d=t(61889),m=t(21435),f=t(16502),p=t(80184),x={setErrorSnackMessage:a.Ih},b=(0,o.$j)(null,x);n.default=b((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,o=e.selectedBucket,a=e.ruleToDelete,x=e.rulesToDelete,b=e.remainingRules,h=e.allSelected,v=e.setErrorSnackMessage,Z=e.deleteSelectedRules,j=void 0!==Z&&Z,g=(0,i.useState)(""),k=(0,l.Z)(g,2),C=k[0],N=k[1],T=(0,s.Z)((function(){return n(!0)}),(function(e){return v(e)})),y=(0,l.Z)(T,2),R=y[0],B=y[1];if(!o)return null;return(0,p.jsx)(c.Z,{title:j?"Delete Selected Replication Rules":"Delete Replication Rule",confirmText:"Delete",isOpen:t,titleIcon:(0,p.jsx)(u.Nv,{}),isLoading:R,onConfirm:function(){var e="/api/v1/buckets/".concat(o,"/replication/").concat(a);if(j){if(!h)return e="/api/v1/buckets/".concat(o,"/delete-selected-replication-rules"),void B("DELETE",e,{rules:x});e="/api/v1/buckets/".concat(o,"/delete-all-replication-rules")}else 1===b&&(e="/api/v1/buckets/".concat(o,"/delete-all-replication-rules"));B("DELETE",e)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:j&&"Yes, I am sure"!==C},confirmationContent:(0,p.jsx)(r.Z,{children:j?(0,p.jsxs)(i.Fragment,{children:[(0,p.jsx)(f.Z,{title:"Warning",label:"The corresponding remote buckets will also be deleted."}),"Are you sure you want to remove the selected replication rules for bucket ",(0,p.jsx)("b",{children:o}),"?",(0,p.jsx)("br",{}),(0,p.jsx)("br",{}),"To continue please type ",(0,p.jsx)("b",{children:"Yes, I am sure"})," in the box.",(0,p.jsx)(d.ZP,{item:!0,xs:12,children:(0,p.jsx)(m.Z,{id:"retype-tenant",name:"retype-tenant",onChange:function(e){N(e.target.value)},label:"",value:C})})]}):(0,p.jsxs)(i.Fragment,{children:[(0,p.jsx)(f.Z,{title:"Warning",label:"The corresponding remote bucket will also be deleted."}),"Are you sure you want to delete replication rule"," ",(0,p.jsx)("b",{children:a}),"?"]})})})}))},9505:function(e,n,t){var l=t(29439),i=t(72791),o=t(81207);n.Z=function(e,n){var t=(0,i.useState)(!1),r=(0,l.Z)(t,2),a=r[0],s=r[1];return[a,function(t,l,i){s(!0),o.Z.invoke(t,l,i).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},23508:function(e,n,t){var l=t(1413),i=t(72791),o=t(5574),r=t(65661),a=t(39157),s=t(97123),c=t(36151),u=t(59860),d=t(13400),m=t(29823),f=t(11135),p=t(25787),x=t(23814),b=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,l.Z)({},x.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,p=e.onCancel,x=e.onConfirm,h=e.classes,v=void 0===h?{}:h,Z=e.title,j=void 0===Z?"":Z,g=e.isLoading,k=e.confirmationContent,C=e.cancelText,N=void 0===C?"Cancel":C,T=e.confirmText,y=void 0===T?"Confirm":T,R=e.confirmButtonProps,B=void 0===R?{}:R,S=e.cancelButtonProps,D=void 0===S?{}:S,E=e.titleIcon,w=void 0===E?null:E;return(0,b.jsxs)(o.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,b.jsxs)(r.Z,{className:v.title,children:[(0,b.jsxs)("div",{className:v.titleText,children:[w," ",j]}),(0,b.jsx)("div",{className:v.closeContainer,children:(0,b.jsx)(d.Z,{"aria-label":"close",className:v.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,b.jsx)(m.Z,{})})})]}),(0,b.jsx)(a.Z,{className:v.content,children:k}),(0,b.jsxs)(s.Z,{className:v.actions,children:[(0,b.jsx)(c.Z,(0,l.Z)((0,l.Z)({className:v.cancelButton,onClick:p||f,disabled:g,type:"button"},D),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,b.jsx)(u.Z,(0,l.Z)((0,l.Z)({className:v.confirmButton,type:"button",onClick:x,loading:g,disabled:g,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,b.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},B),{},{children:y}))]})]})}))},16502:function(e,n,t){t(72791);var l=t(11135),i=t(25787),o=t(80184);n.Z=(0,i.Z)((function(e){return(0,l.Z)({headerContainer:{backgroundColor:"#e78794",borderRadius:3,marginBottom:20,padding:1,paddingBottom:15},labelHeadline:{color:"#000000",fontSize:14,marginLeft:20},labelText:{color:"#000000",fontSize:14,marginLeft:20,marginRight:40}})}))((function(e){var n=e.classes,t=e.label,l=e.title;return(0,o.jsxs)("div",{className:n.headerContainer,children:[(0,o.jsx)("h4",{className:n.labelHeadline,children:l}),(0,o.jsx)("div",{className:n.labelText,children:t})]})}))}}]); -//# sourceMappingURL=9088.2ed52eb5.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9088.2ed52eb5.chunk.js.map b/portal-ui/build/static/js/9088.2ed52eb5.chunk.js.map deleted file mode 100644 index 4622c4e3e..000000000 --- a/portal-ui/build/static/js/9088.2ed52eb5.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9088.2ed52eb5.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/DeleteReplicationRule.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/WarningMessage/WarningMessage.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, 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 Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport WarningMessage from \"../../Common/WarningMessage/WarningMessage\";\n\ninterface IDeleteReplicationProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n ruleToDelete?: string;\n rulesToDelete?: string[];\n remainingRules: number;\n allSelected: boolean;\n deleteSelectedRules?: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteReplicationRule = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n ruleToDelete,\n rulesToDelete,\n remainingRules,\n allSelected,\n setErrorSnackMessage,\n deleteSelectedRules = false,\n}: IDeleteReplicationProps) => {\n const [confirmationText, setConfirmationText] = 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 if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n let url = `/api/v1/buckets/${selectedBucket}/replication/${ruleToDelete}`;\n\n if (deleteSelectedRules) {\n if (allSelected) {\n url = `/api/v1/buckets/${selectedBucket}/delete-all-replication-rules`;\n } else {\n url = `/api/v1/buckets/${selectedBucket}/delete-selected-replication-rules`;\n invokeDeleteApi(\"DELETE\", url, { rules: rulesToDelete });\n return;\n }\n } else if (remainingRules === 1) {\n url = `/api/v1/buckets/${selectedBucket}/delete-all-replication-rules`;\n }\n\n invokeDeleteApi(\"DELETE\", url);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: deleteSelectedRules && confirmationText !== \"Yes, I am sure\",\n }}\n confirmationContent={\n \n {deleteSelectedRules ? (\n \n \n Are you sure you want to remove the selected replication rules for\n bucket {selectedBucket}?
    \n
    \n To continue please type Yes, I am sure in the box.\n \n ) => {\n setConfirmationText(event.target.value);\n }}\n label=\"\"\n value={confirmationText}\n />\n \n
    \n ) : (\n \n \n Are you sure you want to delete replication rule{\" \"}\n {ruleToDelete}?\n \n )}\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteReplicationRule);\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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
    \n

    {title}

    \n
    {label}
    \n
    \n );\n};\n\nexport default withStyles(styles)(WarningMessage);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","ruleToDelete","rulesToDelete","remainingRules","allSelected","deleteSelectedRules","useState","confirmationText","setConfirmationText","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","url","rules","onClose","confirmButtonProps","disabled","confirmationContent","Fragment","label","item","xs","id","name","onChange","event","target","value","onSuccess","onError","setIsLoading","method","data","api","then","res","catch","withStyles","theme","createStyles","deleteDialogStyles","onCancel","classes","cancelText","cancelButtonProps","open","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","type","variant","color","confirmButton","loading","loadingPosition","startIcon","autoFocus","headerContainer","backgroundColor","borderRadius","marginBottom","paddingBottom","labelHeadline","fontSize","marginLeft","labelText","marginRight"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9088.d0330189.chunk.js b/portal-ui/build/static/js/9088.d0330189.chunk.js new file mode 100644 index 000000000..a12e05147 --- /dev/null +++ b/portal-ui/build/static/js/9088.d0330189.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9088],{69088:function(e,t,n){n.r(t);var l=n(29439),r=n(72791),i=n(60364),a=n(51691),o=n(42649),s=n(9505),c=n(2148),u=n(93656),d=n(61889),f=n(21435),b=n(16502),p=n(80184),h={setErrorSnackMessage:o.Ih},m=(0,i.$j)(null,h);t.default=m((function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,i=e.selectedBucket,o=e.ruleToDelete,h=e.rulesToDelete,m=e.remainingRules,x=e.allSelected,g=e.setErrorSnackMessage,v=e.deleteSelectedRules,j=void 0!==v&&v,k=(0,r.useState)(""),Z=(0,l.Z)(k,2),T=Z[0],C=Z[1],R=(0,s.Z)((function(){return t(!0)}),(function(e){return g(e)})),S=(0,l.Z)(R,2),D=S[0],E=S[1];if(!i)return null;return(0,p.jsx)(c.Z,{title:j?"Delete Selected Replication Rules":"Delete Replication Rule",confirmText:"Delete",isOpen:n,titleIcon:(0,p.jsx)(u.Nv,{}),isLoading:D,onConfirm:function(){var e="/api/v1/buckets/".concat(i,"/replication/").concat(o);if(j){if(!x)return e="/api/v1/buckets/".concat(i,"/delete-selected-replication-rules"),void E("DELETE",e,{rules:h});e="/api/v1/buckets/".concat(i,"/delete-all-replication-rules")}else 1===m&&(e="/api/v1/buckets/".concat(i,"/delete-all-replication-rules"));E("DELETE",e)},onClose:function(){return t(!1)},confirmButtonProps:{disabled:j&&"Yes, I am sure"!==T},confirmationContent:(0,p.jsx)(a.Z,{children:j?(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(b.Z,{title:"Warning",label:"The corresponding remote buckets will also be deleted."}),"Are you sure you want to remove the selected replication rules for bucket ",(0,p.jsx)("b",{children:i}),"?",(0,p.jsx)("br",{}),(0,p.jsx)("br",{}),"To continue please type ",(0,p.jsx)("b",{children:"Yes, I am sure"})," in the box.",(0,p.jsx)(d.ZP,{item:!0,xs:12,children:(0,p.jsx)(f.Z,{id:"retype-tenant",name:"retype-tenant",onChange:function(e){C(e.target.value)},label:"",value:T})})]}):(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(b.Z,{title:"Warning",label:"The corresponding remote bucket will also be deleted."}),"Are you sure you want to delete replication rule"," ",(0,p.jsx)("b",{children:o}),"?"]})})})}))},9505:function(e,t,n){var l=n(29439),r=n(72791),i=n(81207);t.Z=function(e,t){var n=(0,r.useState)(!1),a=(0,l.Z)(n,2),o=a[0],s=a[1];return[o,function(n,l,r){s(!0),i.Z.invoke(n,l,r).then((function(t){s(!1),e(t)})).catch((function(e){s(!1),t(e)}))}]}},16502:function(e,t,n){n(72791);var l=n(11135),r=n(25787),i=n(80184);t.Z=(0,r.Z)((function(e){return(0,l.Z)({headerContainer:{backgroundColor:"#e78794",borderRadius:3,marginBottom:20,padding:1,paddingBottom:15},labelHeadline:{color:"#000000",fontSize:14,marginLeft:20},labelText:{color:"#000000",fontSize:14,marginLeft:20,marginRight:40}})}))((function(e){var t=e.classes,n=e.label,l=e.title;return(0,i.jsxs)("div",{className:t.headerContainer,children:[(0,i.jsx)("h4",{className:t.labelHeadline,children:l}),(0,i.jsx)("div",{className:t.labelText,children:n})]})}))}}]); +//# sourceMappingURL=9088.d0330189.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9088.d0330189.chunk.js.map b/portal-ui/build/static/js/9088.d0330189.chunk.js.map new file mode 100644 index 000000000..6c61914c5 --- /dev/null +++ b/portal-ui/build/static/js/9088.d0330189.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9088.d0330189.chunk.js","mappings":"0PAyIMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GAvGe,SAAC,GAUC,IAT9BE,EAS6B,EAT7BA,2BACAC,EAQ6B,EAR7BA,WACAC,EAO6B,EAP7BA,eACAC,EAM6B,EAN7BA,aACAC,EAK6B,EAL7BA,cACAC,EAI6B,EAJ7BA,eACAC,EAG6B,EAH7BA,YACAT,EAE6B,EAF7BA,qBAE6B,IAD7BU,oBAAAA,OAC6B,SAC7B,GAAgDC,EAAAA,EAAAA,UAAiB,IAAjE,eAAOC,EAAP,KAAyBC,EAAzB,KAMA,GAAyCC,EAAAA,EAAAA,IAJpB,kBAAMX,GAA2B,MACnC,SAACY,GAAD,OAA+Bf,EAAqBe,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKZ,EACH,OAAO,KAqBT,OACE,SAAC,IAAD,CACEa,MACER,EACI,oCACA,0BAENS,YAAa,SACbC,OAAQhB,EACRiB,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UA7BoB,WACtB,IAAIC,EAAG,0BAAsBnB,EAAtB,wBAAoDC,GAE3D,GAAII,EAAqB,CACvB,IAAID,EAKF,OAFAe,EAAG,0BAAsBnB,EAAtB,2CACHY,EAAgB,SAAUO,EAAK,CAAEC,MAAOlB,IAHxCiB,EAAG,0BAAsBnB,EAAtB,sCAMuB,IAAnBG,IACTgB,EAAG,0BAAsBnB,EAAtB,kCAGLY,EAAgB,SAAUO,IAexBE,QAtCY,kBAAMvB,GAA2B,IAuC7CwB,mBAAoB,CAClBC,SAAUlB,GAA4C,mBAArBE,GAEnCiB,qBACE,SAAC,IAAD,UACGnB,GACC,UAAC,EAAAoB,SAAD,YACE,SAAC,IAAD,CACEZ,MAAO,UACPa,MAAO,2DAHX,8EAMS,uBAAI1B,IANb,KAMiC,mBAC/B,kBAPF,4BAQ0B,0CAR1B,gBASE,SAAC,KAAD,CAAM2B,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEC,GAAG,gBACHC,KAAK,gBACLC,SAAU,SAACC,GACTxB,EAAoBwB,EAAMC,OAAOC,QAEnCR,MAAM,GACNQ,MAAO3B,UAKb,UAAC,EAAAkB,SAAD,YACE,SAAC,IAAD,CACEZ,MAAO,UACPa,MAAO,0DAHX,mDAKmD,KACjD,uBAAIzB,IANN,e,0DC3FZ,IAvBe,SACbkC,EACAC,GAEA,OAAkC9B,EAAAA,EAAAA,WAAkB,GAApD,eAAOW,EAAP,KAAkBoB,EAAlB,KAgBA,MAAO,CAACpB,EAdQ,SAACqB,EAAgBnB,EAAaoB,GAC5CF,GAAa,GACbG,EAAAA,EAAAA,OACUF,EAAQnB,EAAKoB,GACpBE,MAAK,SAACC,GACLL,GAAa,GACbF,EAAUO,MAEXC,OAAM,SAACjC,GACN2B,GAAa,GACbD,EAAQ1B,U,oECkChB,KAAekC,EAAAA,EAAAA,IA/BA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,gBAAiB,CACfC,gBAAiB,UACjBC,aAAc,EACdC,aAAc,GACdC,QAAS,EACTC,cAAe,IAEjBC,cAAe,CACbC,MAAO,UACPC,SAAU,GACVC,WAAY,IAEdC,UAAW,CACTH,MAAO,UACPC,SAAU,GACVC,WAAY,GACZE,YAAa,QAanB,EATuB,SAAC,GAAgD,IAA9CC,EAA6C,EAA7CA,QAASjC,EAAoC,EAApCA,MAAOb,EAA6B,EAA7BA,MACxC,OACE,iBAAK+C,UAAWD,EAAQZ,gBAAxB,WACE,eAAIa,UAAWD,EAAQN,cAAvB,SAAuCxC,KACvC,gBAAK+C,UAAWD,EAAQF,UAAxB,SAAoC/B","sources":["screens/Console/Buckets/BucketDetails/DeleteReplicationRule.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/WarningMessage/WarningMessage.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, 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 Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport WarningMessage from \"../../Common/WarningMessage/WarningMessage\";\n\ninterface IDeleteReplicationProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n ruleToDelete?: string;\n rulesToDelete?: string[];\n remainingRules: number;\n allSelected: boolean;\n deleteSelectedRules?: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteReplicationRule = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n ruleToDelete,\n rulesToDelete,\n remainingRules,\n allSelected,\n setErrorSnackMessage,\n deleteSelectedRules = false,\n}: IDeleteReplicationProps) => {\n const [confirmationText, setConfirmationText] = 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 if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n let url = `/api/v1/buckets/${selectedBucket}/replication/${ruleToDelete}`;\n\n if (deleteSelectedRules) {\n if (allSelected) {\n url = `/api/v1/buckets/${selectedBucket}/delete-all-replication-rules`;\n } else {\n url = `/api/v1/buckets/${selectedBucket}/delete-selected-replication-rules`;\n invokeDeleteApi(\"DELETE\", url, { rules: rulesToDelete });\n return;\n }\n } else if (remainingRules === 1) {\n url = `/api/v1/buckets/${selectedBucket}/delete-all-replication-rules`;\n }\n\n invokeDeleteApi(\"DELETE\", url);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: deleteSelectedRules && confirmationText !== \"Yes, I am sure\",\n }}\n confirmationContent={\n \n {deleteSelectedRules ? (\n \n \n Are you sure you want to remove the selected replication rules for\n bucket {selectedBucket}?
    \n
    \n To continue please type Yes, I am sure in the box.\n \n ) => {\n setConfirmationText(event.target.value);\n }}\n label=\"\"\n value={confirmationText}\n />\n \n
    \n ) : (\n \n \n Are you sure you want to delete replication rule{\" \"}\n {ruleToDelete}?\n \n )}\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteReplicationRule);\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","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
    \n

    {title}

    \n
    {label}
    \n
    \n );\n};\n\nexport default withStyles(styles)(WarningMessage);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","ruleToDelete","rulesToDelete","remainingRules","allSelected","deleteSelectedRules","useState","confirmationText","setConfirmationText","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","url","rules","onClose","confirmButtonProps","disabled","confirmationContent","Fragment","label","item","xs","id","name","onChange","event","target","value","onSuccess","onError","setIsLoading","method","data","api","then","res","catch","withStyles","theme","createStyles","headerContainer","backgroundColor","borderRadius","marginBottom","padding","paddingBottom","labelHeadline","color","fontSize","marginLeft","labelText","marginRight","classes","className"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9134.9336f36c.chunk.js b/portal-ui/build/static/js/9134.0538c268.chunk.js similarity index 65% rename from portal-ui/build/static/js/9134.9336f36c.chunk.js rename to portal-ui/build/static/js/9134.0538c268.chunk.js index 8184ad7c4..9d774a68b 100644 --- a/portal-ui/build/static/js/9134.9336f36c.chunk.js +++ b/portal-ui/build/static/js/9134.0538c268.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9134,8771],{64163:function(e,n,t){var s=t(1413),i=t(72791),l=t(61889),a=t(11135),c=t(25787),o=t(23814),r=t(80184);n.Z=(0,c.Z)((function(e){return(0,a.Z)((0,s.Z)({},o.xx))}))((function(e){var n=e.classes,t=e.label,s=void 0===t?"":t,a=e.content,c=e.multiLine,o=void 0!==c&&c;return(0,r.jsx)(i.Fragment,{children:(0,r.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==s&&(0,r.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:s}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,r.jsx)(l.ZP,{item:!0,xs:12,className:o?n.innerContentMultiline:n.innerContent,children:a})})]})})}))},56028:function(e,n,t){var s=t(29439),i=t(1413),l=t(72791),a=t(60364),c=t(13400),o=t(55646),r=t(5574),d=t(65661),u=t(39157),m=t(11135),f=t(25787),Z=t(23814),x=t(42649),p=t(29823),h=t(28057),g=t(80184),j=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,a=e.title,m=e.children,f=e.classes,Z=e.wideLimit,x=void 0===Z||Z,j=e.modalSnackMessage,v=e.noContentPadding,k=e.setModalSnackMessage,b=e.titleIcon,S=void 0===b?null:b,y=(0,l.useState)(!1),P=(0,s.Z)(y,2),N=P[0],M=P[1];(0,l.useEffect)((function(){k("")}),[k]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var C=x?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return j&&(B=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(B=j.message)),(0,g.jsxs)(r.Z,(0,i.Z)((0,i.Z)({open:t,classes:f},C),{},{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," ",a]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(c.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(p.Z,{})})})]}),(0,g.jsx)(h.Z,{isModal:!0}),(0,g.jsx)(o.Z,{open:N,className:f.snackBarModal,onClose:function(){M(!1),k("")},message:B,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})]}))})))},58400:function(e,n,t){var s=t(93433),i=t(29439),l=t(1413),a=t(72791),c=t(60364),o=t(11135),r=t(25787),d=t(40986),u=t(61889),m=t(21639),f=t(23814),Z=t(42649),x=t(81207),p=t(92983),h=t(59114),g=t(80184),j=(0,c.$j)(null,{setModalErrorSnackMessage:Z.zb});n.Z=(0,r.Z)((function(e){return(0,o.Z)((0,l.Z)((0,l.Z)((0,l.Z)((0,l.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,l.Z)({},f.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},f.qg),f.VX),f.OR),f.jY))}))(j((function(e){var n=e.classes,t=e.selectedPolicy,l=void 0===t?[]:t,c=e.setSelectedPolicy,o=e.setModalErrorSnackMessage,r=(0,a.useState)([]),f=(0,i.Z)(r,2),Z=f[0],j=f[1],v=(0,a.useState)(!1),k=(0,i.Z)(v,2),b=k[0],S=k[1],y=(0,a.useState)(""),P=(0,i.Z)(y,2),N=P[0],M=P[1],C=(0,a.useCallback)((function(){S(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;S(!1),j(n.sort(m.g4))})).catch((function(e){S(!1),o(e)}))}),[o]);(0,a.useEffect)((function(){S(!0)}),[]),(0,a.useEffect)((function(){b&&C()}),[b,C]);var B=Z.filter((function(e){return e.name.includes(N)}));return(0,g.jsx)(a.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,children:[b&&(0,g.jsx)(d.Z,{}),Z.length>0?(0,g.jsxs)(a.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)(h.Z,{placeholder:"Filter Policy",onChange:function(e){M(e)},value:N})})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(p.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,a=(0,s.Z)(l);i?a.push(t):a=a.filter((function(e){return e!==t})),a=a.filter((function(e){return""!==e})),c(a)},selectedItems:l,isLoading:b,records:B,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 s=t(29439),i=t(1413),l=t(72791),a=t(60364),c=t(26181),o=t.n(c),r=t(11135),d=t(25787),u=t(36151),m=t(40986),f=t(61889),Z=t(23814),x=t(42649),p=t(56028),h=t(81207),g=t(58400),j=t(64163),v=t(80184),k={setModalErrorSnackMessage:x.zb},b=(0,a.$j)(null,k);n.default=(0,d.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},Z.oO),Z.bK),{},{tableBlock:(0,i.Z)((0,i.Z)({},Z.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(b((function(e){var n=e.classes,t=e.closeModalAndRefresh,i=e.selectedUser,a=e.selectedGroup,c=e.setModalErrorSnackMessage,r=e.open,d=(0,l.useState)(!1),Z=(0,s.Z)(d,2),x=Z[0],k=Z[1],b=(0,l.useState)([]),S=(0,s.Z)(b,2),y=S[0],P=S[1],N=(0,l.useState)([]),M=(0,s.Z)(N,2),C=M[0],B=M[1];(0,l.useEffect)((function(){if(r){if(null!==a)return void(a&&h.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(a))).then((function(e){var n=o()(e,"policy","");P(n.split(",")),B(n.split(","))})).catch((function(e){c(e),k(!1)})));var e=o()(i,"policy",[]);P(e),B(e)}}),[r,a,i]);var E=o()(i,"accessKey","");return(0,v.jsxs)(p.Z,{onClose:function(){t()},modalOpen:r,title:"Set Policies",children:[(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(j.Z,{label:"Selected ".concat(null!==a?"Group":"User"),content:null!==a?a:E})}),(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(j.Z,{label:"Current Policy",content:y.join(", ")})}),(0,v.jsx)("div",{className:n.tableBlock,children:(0,v.jsx)(g.Z,{selectedPolicy:C,setSelectedPolicy:B})}),(0,v.jsxs)(f.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,v.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){B(y)},children:"Reset"}),(0,v.jsx)(u.Z,{type:"button",variant:"contained",color:"primary",disabled:x,onClick:function(){var e="user",n=null;null!==a?(e="group",n=a):null!==i&&(n=i.accessKey),k(!0),h.Z.invoke("PUT","/api/v1/set-policy",{name:C,entityName:n,entityType:e}).then((function(){k(!1),t()})).catch((function(e){k(!1),c(e)}))},children:"Save"})]}),x&&(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(m.Z,{})})]})})))},29823:function(e,n,t){var s=t(95318);n.Z=void 0;var i=s(t(45649)),l=t(80184),a=(0,i.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=a}}]); -//# sourceMappingURL=9134.9336f36c.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9134,8771],{64163:function(e,n,t){var s=t(1413),i=t(72791),l=t(61889),a=t(11135),c=t(25787),o=t(23814),r=t(80184);n.Z=(0,c.Z)((function(e){return(0,a.Z)((0,s.Z)({},o.xx))}))((function(e){var n=e.classes,t=e.label,s=void 0===t?"":t,a=e.content,c=e.multiLine,o=void 0!==c&&c;return(0,r.jsx)(i.Fragment,{children:(0,r.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==s&&(0,r.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:s}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,r.jsx)(l.ZP,{item:!0,xs:12,className:o?n.innerContentMultiline:n.innerContent,children:a})})]})})}))},56028:function(e,n,t){var s=t(29439),i=t(1413),l=t(72791),a=t(60364),c=t(13400),o=t(55646),r=t(5574),d=t(65661),u=t(39157),m=t(11135),f=t(25787),Z=t(23814),x=t(42649),h=t(29823),p=t(28057),g=t(80184),j=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,a=e.title,m=e.children,f=e.classes,Z=e.wideLimit,x=void 0===Z||Z,j=e.modalSnackMessage,v=e.noContentPadding,k=e.setModalSnackMessage,b=e.titleIcon,P=void 0===b?null:b,S=(0,l.useState)(!1),y=(0,s.Z)(S,2),N=y[0],M=y[1];(0,l.useEffect)((function(){k("")}),[k]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var C=x?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return j&&(B=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(B=j.message)),(0,g.jsxs)(r.Z,(0,i.Z)((0,i.Z)({open:t,classes:f},C),{},{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:[P," ",a]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(c.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)(o.Z,{open:N,className:f.snackBarModal,onClose:function(){M(!1),k("")},message:B,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})]}))})))},58400:function(e,n,t){var s=t(93433),i=t(29439),l=t(1413),a=t(72791),c=t(60364),o=t(11135),r=t(25787),d=t(40986),u=t(61889),m=t(21639),f=t(23814),Z=t(42649),x=t(81207),h=t(92983),p=t(59114),g=t(80184),j=(0,c.$j)(null,{setModalErrorSnackMessage:Z.zb});n.Z=(0,r.Z)((function(e){return(0,o.Z)((0,l.Z)((0,l.Z)((0,l.Z)((0,l.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,l.Z)({},f.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},f.qg),f.VX),f.OR),f.jY))}))(j((function(e){var n=e.classes,t=e.selectedPolicy,l=void 0===t?[]:t,c=e.setSelectedPolicy,o=e.setModalErrorSnackMessage,r=(0,a.useState)([]),f=(0,i.Z)(r,2),Z=f[0],j=f[1],v=(0,a.useState)(!1),k=(0,i.Z)(v,2),b=k[0],P=k[1],S=(0,a.useState)(""),y=(0,i.Z)(S,2),N=y[0],M=y[1],C=(0,a.useCallback)((function(){P(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;P(!1),j(n.sort(m.g4))})).catch((function(e){P(!1),o(e)}))}),[o]);(0,a.useEffect)((function(){P(!0)}),[]),(0,a.useEffect)((function(){b&&C()}),[b,C]);var B=Z.filter((function(e){return e.name.includes(N)}));return(0,g.jsx)(a.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,children:[b&&(0,g.jsx)(d.Z,{}),Z.length>0?(0,g.jsxs)(a.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)(p.Z,{placeholder:"Filter Policy",onChange:function(e){M(e)},value:N})})]}),(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,i=n.checked,a=(0,s.Z)(l);i?a.push(t):a=a.filter((function(e){return e!==t})),a=a.filter((function(e){return""!==e})),c(a)},selectedItems:l,isLoading:b,records:B,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 s=t(29439),i=t(1413),l=t(72791),a=t(60364),c=t(26181),o=t.n(c),r=t(11135),d=t(25787),u=t(36151),m=t(40986),f=t(61889),Z=t(23814),x=t(42649),h=t(56028),p=t(81207),g=t(58400),j=t(64163),v=t(80184),k={setModalErrorSnackMessage:x.zb},b=(0,a.$j)(null,k);n.default=(0,d.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},Z.oO),Z.bK),{},{tableBlock:(0,i.Z)((0,i.Z)({},Z.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(b((function(e){var n=e.classes,t=e.closeModalAndRefresh,i=e.selectedUser,a=e.selectedGroup,c=e.setModalErrorSnackMessage,r=e.open,d=(0,l.useState)(!1),Z=(0,s.Z)(d,2),x=Z[0],k=Z[1],b=(0,l.useState)([]),P=(0,s.Z)(b,2),S=P[0],y=P[1],N=(0,l.useState)([]),M=(0,s.Z)(N,2),C=M[0],B=M[1];(0,l.useEffect)((function(){if(r){if(null!==a)return void(a&&p.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(a))).then((function(e){var n=o()(e,"policy","");y(n.split(",")),B(n.split(","))})).catch((function(e){c(e),k(!1)})));var e=o()(i,"policy",[]);y(e),B(e)}}),[r,a,i]);var E=o()(i,"accessKey","");return(0,v.jsxs)(h.Z,{onClose:function(){t()},modalOpen:r,title:"Set Policies",children:[(0,v.jsxs)(f.ZP,{container:!0,children:[(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(j.Z,{label:"Selected ".concat(null!==a?"Group":"User"),content:null!==a?a:E})}),(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(j.Z,{label:"Current Policy",content:S.join(", ")})}),(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)("div",{className:n.tableBlock,children:(0,v.jsx)(g.Z,{selectedPolicy:C,setSelectedPolicy:B})})})]}),(0,v.jsxs)(f.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,v.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){B(S)},children:"Reset"}),(0,v.jsx)(u.Z,{type:"button",variant:"contained",color:"primary",disabled:x,onClick:function(){var e="user",n=null;null!==a?(e="group",n=a):null!==i&&(n=i.accessKey),k(!0),p.Z.invoke("PUT","/api/v1/set-policy",{name:C,entityName:n,entityType:e}).then((function(){k(!1),t()})).catch((function(e){k(!1),c(e)}))},children:"Save"})]}),x&&(0,v.jsx)(f.ZP,{item:!0,xs:12,children:(0,v.jsx)(m.Z,{})})]})})))}}]); +//# sourceMappingURL=9134.0538c268.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9134.0538c268.chunk.js.map b/portal-ui/build/static/js/9134.0538c268.chunk.js.map new file mode 100644 index 000000000..00dbcd6a3 --- /dev/null +++ b/portal-ui/build/static/js/9134.0538c268.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9134.0538c268.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/PolicySelectors.tsx","screens/Console/Policies/SetPolicy.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 .\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 { 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
    \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"],"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","setModalErrorSnackMessage","noFound","textAlign","searchBox","flex","fieldLabel","fontWeight","marginRight","tableBlock","tableStyles","filterBox","display","marginBottom","alignItems","fontSize","searchField","actionsTray","selectorsCommon","selectedPolicy","setSelectedPolicy","records","setRecords","loading","isLoading","filter","setFilter","fetchPolicies","useCallback","api","then","res","policies","sort","policySort","catch","err","filteredRecords","elementItem","name","includes","placeholder","onChange","value","columns","elementKey","onSelect","e","targetD","target","checked","elements","push","element","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","mapDispatchToProps","modalBasic","spacingUtils","marginTop","buttonContainer","closeModalAndRefresh","selectedUser","selectedGroup","setLoading","actualPolicy","setActualPolicy","encodeURI","groupPolicy","get","split","userPolicy","userName","container","join","variant","color","spacerRight","disabled","entity","accessKey","entityType"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9134.9336f36c.chunk.js.map b/portal-ui/build/static/js/9134.9336f36c.chunk.js.map deleted file mode 100644 index f47c5cd60..000000000 --- a/portal-ui/build/static/js/9134.9336f36c.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9134.9336f36c.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/PolicySelectors.tsx","screens/Console/Policies/SetPolicy.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, { 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","\"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","setModalErrorSnackMessage","noFound","textAlign","searchBox","flex","fieldLabel","fontWeight","marginRight","tableBlock","tableStyles","filterBox","display","marginBottom","alignItems","fontSize","searchField","actionsTray","selectorsCommon","selectedPolicy","setSelectedPolicy","records","setRecords","loading","isLoading","filter","setFilter","fetchPolicies","useCallback","api","then","res","policies","sort","policySort","catch","err","filteredRecords","elementItem","name","includes","placeholder","onChange","value","columns","elementKey","onSelect","e","targetD","target","checked","elements","push","element","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","mapDispatchToProps","modalBasic","spacingUtils","marginTop","buttonContainer","closeModalAndRefresh","selectedUser","selectedGroup","setLoading","actualPolicy","setActualPolicy","encodeURI","groupPolicy","get","split","userPolicy","userName","join","variant","color","spacerRight","disabled","entity","accessKey","entityType","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9145.1af8c238.chunk.js b/portal-ui/build/static/js/9145.1af8c238.chunk.js deleted file mode 100644 index c1d0c58bb..000000000 --- a/portal-ui/build/static/js/9145.1af8c238.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9145],{40603:function(e,n,t){var i=t(1413),a=t(45987),o=(t(72791),t(85531)),s=t(72455),c=t(80184),r=["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,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=l(e),t=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,p=void 0!==u&&u,m=e.tooltip,x=e.icon,f=void 0===x?null:x,h=e.className,v=void 0===h?"":h,g=(0,a.Z)(e,r);return(0,c.jsxs)(o.Z,(0,i.Z)((0,i.Z)({className:v,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"}}}},g),{},{children:[(0,c.jsx)("span",{children:d})," ",f]}))}},59145:function(e,n,t){t.r(n),t.d(n,{default:function(){return I}});var i=t(29439),a=t(1413),o=t(72791),s=t(60364),c=t(11135),r=t(25787),l=t(61889),d=t(23814),u=t(42649),p=t(75460),m=t(20890),x=t(45248),f=t(46431),h=t.n(f),v=t(91523),g=t(10703),b=t(40603),Z=t(80184),j=(0,r.Z)((function(e){return(0,c.Z)((0,a.Z)({paperContainer:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},licenseContainer:{position:"relative",padding:"20px 52px 0px 28px",background:"#032F51",boxShadow:"0px 3px 7px #00000014","& h2":{color:"#FFF",marginBottom:67},"& a":{textDecoration:"none"},"& h3":{color:"#FFFFFF",marginBottom:"30px",fontWeight:"bold"},"& h6":{color:"#FFFFFF !important"}},licenseInfo:{color:"#FFFFFF",position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#BFBFBF",fontSize:11},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},noUnderLine:{textDecoration:"none"}},(0,d.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.tenant,i=e.loadingActivateProduct,a=e.loadingLicenseInfo,s=e.licenseInfo,c=e.activateProduct;return(0,Z.jsx)(g.Z,{className:t&&t.subnet_license?n.licenseContainer:"",children:t&&t.subnet_license?(0,Z.jsx)(o.Fragment,{children:(0,Z.jsxs)(l.ZP,{container:!0,className:n.licenseInfo,children:[(0,Z.jsxs)(l.ZP,{item:!0,xs:6,children:[(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"License"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:"Commercial License"}),(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Organization"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.organization}),(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Registered Capacity"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:(0,x.ae)((1099511627776*t.subnet_license.storage_capacity).toString(10))}),(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Expiry Date"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:(0,Z.jsx)(h(),{format:"YYYY-MM-DD",children:t.subnet_license.expires_at})})]}),(0,Z.jsxs)(l.ZP,{item:!0,xs:6,children:[(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Subscription Plan"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.plan}),(0,Z.jsx)(m.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Requestor"}),(0,Z.jsx)(m.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.email})]}),(0,Z.jsx)("img",{className:n.verifiedIcon,src:"/verified.svg",alt:"verified"})]})}):!a&&(0,Z.jsxs)(l.ZP,{className:n.paperContainer,children:[!s&&(0,Z.jsx)(v.rU,{to:"/license",onClick:function(e){e.stopPropagation()},className:n.noUnderLine,children:(0,Z.jsx)(b.Z,{tooltip:"Activate Product",text:"Activate Product",onClick:function(){return!1},color:"primary",variant:"contained"})}),s&&t&&(0,Z.jsx)(b.Z,{disabled:i,tooltip:"Attach License",text:"Attach License",onClick:function(){return c(t.namespace,t.name)},color:"primary",variant:"contained"})]})})})),y=t(81207),F=t(72401),k=(0,s.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:u.Ih,setTenantDetailsLoad:p.V2}),I=(0,r.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},d.oZ),{},{loaderAlign:{textAlign:"center"}},(0,d.Bz)(e.spacing(4))))}))(k((function(e){var n=e.classes,t=e.tenant,a=e.loadingTenant,s=e.setTenantDetailsLoad,c=(0,o.useState)(),r=(0,i.Z)(c,2),d=r[0],p=r[1],m=(0,o.useState)(!0),x=(0,i.Z)(m,2),f=x[0],h=x[1],v=(0,o.useState)(!1),g=(0,i.Z)(v,2),b=g[0],k=g[1];return(0,o.useEffect)((function(){f&&y.Z.invoke("GET","/api/v1/subscription/info").then((function(e){p(e),h(!1)})).catch((function(e){h(!1)}))}),[f]),(0,Z.jsxs)(o.Fragment,{children:[(0,Z.jsx)("h1",{className:n.sectionTitle,children:"License"}),a?(0,Z.jsx)("div",{className:n.loaderAlign,children:(0,Z.jsx)(F.Z,{})}):(0,Z.jsx)(o.Fragment,{children:t&&(0,Z.jsx)(l.ZP,{container:!0,children:(0,Z.jsx)(l.ZP,{item:!0,xs:12,children:(0,Z.jsx)(j,{tenant:t,loadingLicenseInfo:f,loadingActivateProduct:b,licenseInfo:d,activateProduct:function(e,n){b||(k(!0),y.Z.invoke("POST","/api/v1/subscription/namespaces/".concat(e,"/tenants/").concat(n,"/activate"),{}).then((function(){k(!1),s(!0),h(!0)})).catch((function(e){k(!1),(0,u.Ih)(e)})))}})})})})]})})))}}]); -//# sourceMappingURL=9145.1af8c238.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9145.1af8c238.chunk.js.map b/portal-ui/build/static/js/9145.1af8c238.chunk.js.map deleted file mode 100644 index c9918a82e..000000000 --- a/portal-ui/build/static/js/9145.1af8c238.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9145.1af8c238.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Tenants/TenantDetails/SubnetLicenseTenant.tsx","screens/Console/Tenants/TenantDetails/TenantLicense.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport 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 Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Typography } from \"@mui/material\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Moment from \"react-moment\";\nimport { Link } from \"react-router-dom\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { SubnetInfo } from \"../../License/types\";\n\ninterface ISubnetLicenseTenant {\n classes: any;\n tenant: ITenant | null;\n loadingActivateProduct: any;\n loadingLicenseInfo: boolean;\n licenseInfo: SubnetInfo | undefined;\n activateProduct: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paperContainer: {\n padding: \"15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n licenseContainer: {\n position: \"relative\",\n padding: \"20px 52px 0px 28px\",\n background: \"#032F51\",\n boxShadow: \"0px 3px 7px #00000014\",\n \"& h2\": {\n color: \"#FFF\",\n marginBottom: 67,\n },\n \"& a\": {\n textDecoration: \"none\",\n },\n \"& h3\": {\n color: \"#FFFFFF\",\n marginBottom: \"30px\",\n fontWeight: \"bold\",\n },\n \"& h6\": {\n color: \"#FFFFFF !important\",\n },\n },\n licenseInfo: { color: \"#FFFFFF\", position: \"relative\" },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#BFBFBF\",\n fontSize: 11,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n noUnderLine: {\n textDecoration: \"none\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst SubnetLicenseTenant = ({\n classes,\n tenant,\n loadingActivateProduct,\n loadingLicenseInfo,\n licenseInfo,\n activateProduct,\n}: ISubnetLicenseTenant) => {\n return (\n \n {tenant && tenant.subnet_license ? (\n \n \n \n \n License\n \n \n Commercial License\n \n \n Organization\n \n \n {tenant.subnet_license.organization}\n \n \n Registered Capacity\n \n \n {niceBytes(\n (tenant.subnet_license.storage_capacity * 1099511627776) // 1 Terabyte = 1099511627776 Bytes\n .toString(10)\n )}\n \n \n Expiry Date\n \n \n \n {tenant.subnet_license.expires_at}\n \n \n \n \n \n Subscription Plan\n \n \n {tenant.subnet_license.plan}\n \n \n Requestor\n \n \n {tenant.subnet_license.email}\n \n \n \n \n \n ) : (\n !loadingLicenseInfo && (\n \n {!licenseInfo && (\n {\n e.stopPropagation();\n }}\n className={classes.noUnderLine}\n >\n false}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n )}\n {licenseInfo && tenant && (\n activateProduct(tenant.namespace, tenant.name)}\n color=\"primary\"\n variant={\"contained\"}\n />\n )}\n \n )\n )}\n \n );\n};\n\nexport default withStyles(styles)(SubnetLicenseTenant);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { SubnetInfo } from \"../../License/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport SubnetLicenseTenant from \"./SubnetLicenseTenant\";\nimport api from \"../../../../common/api\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantLicense {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantLicense = ({\n classes,\n tenant,\n loadingTenant,\n setTenantDetailsLoad,\n}: ITenantLicense) => {\n const [licenseInfo, setLicenseInfo] = useState();\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(true);\n const [loadingActivateProduct, setLoadingActivateProduct] =\n useState(false);\n\n const activateProduct = (namespace: string, tenant: string) => {\n if (loadingActivateProduct) {\n return;\n }\n setLoadingActivateProduct(true);\n api\n .invoke(\n \"POST\",\n `/api/v1/subscription/namespaces/${namespace}/tenants/${tenant}/activate`,\n {}\n )\n .then(() => {\n setLoadingActivateProduct(false);\n setTenantDetailsLoad(true);\n setLoadingLicenseInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingActivateProduct(false);\n setErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (loadingLicenseInfo) {\n api\n .invoke(\"GET\", `/api/v1/subscription/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingLicenseInfo(false);\n });\n }\n }, [loadingLicenseInfo]);\n\n return (\n \n

    License

    \n {loadingTenant ? (\n
    \n \n
    \n ) : (\n \n {tenant && (\n \n \n \n \n \n )}\n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(TenantLicense));\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","paperContainer","alignItems","justifyContent","licenseInfoValue","textTransform","fontWeight","licenseContainer","position","background","boxShadow","marginBottom","textDecoration","licenseInfo","licenseInfoTitle","verifiedIcon","right","bottom","noUnderLine","containerForHeader","spacing","tenant","loadingActivateProduct","loadingLicenseInfo","activateProduct","Paper","subnet_license","Grid","container","item","xs","Typography","gutterBottom","organization","niceBytes","storage_capacity","toString","format","expires_at","plan","email","src","alt","to","e","stopPropagation","RBIconButton","namespace","name","connector","connect","state","loadingTenant","tenants","tenantDetails","tenantInfo","setErrorSnackMessage","setTenantDetailsLoad","tenantDetailsStyles","loaderAlign","textAlign","useState","setLicenseInfo","setLoadingLicenseInfo","setLoadingActivateProduct","useEffect","api","then","res","catch","err","Fragment","sectionTitle","Loader"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9145.363b2352.chunk.js b/portal-ui/build/static/js/9145.363b2352.chunk.js new file mode 100644 index 000000000..0a4781c2f --- /dev/null +++ b/portal-ui/build/static/js/9145.363b2352.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9145],{59145:function(e,n,t){t.r(n),t.d(n,{default:function(){return y}});var i=t(29439),a=t(1413),o=t(72791),s=t(60364),c=t(11135),l=t(25787),r=t(61889),u=t(23814),d=t(42649),p=t(75460),f=t(20890),m=t(45248),x=t(46431),h=t.n(x),g=t(91523),v=t(10703),b=t(40603),Z=t(80184),j=(0,l.Z)((function(e){return(0,c.Z)((0,a.Z)({paperContainer:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},licenseContainer:{position:"relative",padding:"20px 52px 0px 28px",background:"#032F51",boxShadow:"0px 3px 7px #00000014","& h2":{color:"#FFF",marginBottom:67},"& a":{textDecoration:"none"},"& h3":{color:"#FFFFFF",marginBottom:"30px",fontWeight:"bold"},"& h6":{color:"#FFFFFF !important"}},licenseInfo:{color:"#FFFFFF",position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#BFBFBF",fontSize:11},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},noUnderLine:{textDecoration:"none"}},(0,u.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.tenant,i=e.loadingActivateProduct,a=e.loadingLicenseInfo,s=e.licenseInfo,c=e.activateProduct;return(0,Z.jsx)(v.Z,{className:t&&t.subnet_license?n.licenseContainer:"",children:t&&t.subnet_license?(0,Z.jsx)(o.Fragment,{children:(0,Z.jsxs)(r.ZP,{container:!0,className:n.licenseInfo,children:[(0,Z.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"License"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:"Commercial License"}),(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Organization"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.organization}),(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Registered Capacity"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:(0,m.ae)((1099511627776*t.subnet_license.storage_capacity).toString(10))}),(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Expiry Date"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:(0,Z.jsx)(h(),{format:"YYYY-MM-DD",children:t.subnet_license.expires_at})})]}),(0,Z.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Subscription Plan"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.plan}),(0,Z.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Requestor"}),(0,Z.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.email})]}),(0,Z.jsx)("img",{className:n.verifiedIcon,src:"/verified.svg",alt:"verified"})]})}):!a&&(0,Z.jsxs)(r.ZP,{className:n.paperContainer,children:[!s&&(0,Z.jsx)(g.rU,{to:"/license",onClick:function(e){e.stopPropagation()},className:n.noUnderLine,children:(0,Z.jsx)(b.Z,{tooltip:"Activate Product",text:"Activate Product",onClick:function(){return!1},color:"primary",variant:"contained"})}),s&&t&&(0,Z.jsx)(b.Z,{disabled:i,tooltip:"Attach License",text:"Attach License",onClick:function(){return c(t.namespace,t.name)},color:"primary",variant:"contained"})]})})})),F=t(81207),I=t(72401),k=(0,s.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:d.Ih,setTenantDetailsLoad:p.V2}),y=(0,l.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},u.oZ),{},{loaderAlign:{textAlign:"center"}},(0,u.Bz)(e.spacing(4))))}))(k((function(e){var n=e.classes,t=e.tenant,a=e.loadingTenant,s=e.setTenantDetailsLoad,c=(0,o.useState)(),l=(0,i.Z)(c,2),u=l[0],p=l[1],f=(0,o.useState)(!0),m=(0,i.Z)(f,2),x=m[0],h=m[1],g=(0,o.useState)(!1),v=(0,i.Z)(g,2),b=v[0],k=v[1];return(0,o.useEffect)((function(){x&&F.Z.invoke("GET","/api/v1/subscription/info").then((function(e){p(e),h(!1)})).catch((function(e){h(!1)}))}),[x]),(0,Z.jsxs)(o.Fragment,{children:[(0,Z.jsx)("h1",{className:n.sectionTitle,children:"License"}),a?(0,Z.jsx)("div",{className:n.loaderAlign,children:(0,Z.jsx)(I.Z,{})}):(0,Z.jsx)(o.Fragment,{children:t&&(0,Z.jsx)(r.ZP,{container:!0,children:(0,Z.jsx)(r.ZP,{item:!0,xs:12,children:(0,Z.jsx)(j,{tenant:t,loadingLicenseInfo:x,loadingActivateProduct:b,licenseInfo:u,activateProduct:function(e,n){b||(k(!0),F.Z.invoke("POST","/api/v1/subscription/namespaces/".concat(e,"/tenants/").concat(n,"/activate"),{}).then((function(){k(!1),s(!0),h(!0)})).catch((function(e){k(!1),(0,d.Ih)(e)})))}})})})})]})})))}}]); +//# sourceMappingURL=9145.363b2352.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9145.363b2352.chunk.js.map b/portal-ui/build/static/js/9145.363b2352.chunk.js.map new file mode 100644 index 000000000..bbba689b0 --- /dev/null +++ b/portal-ui/build/static/js/9145.363b2352.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9145.363b2352.chunk.js","mappings":"iWAkQA,GAAeA,EAAAA,EAAAA,IA1NA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,QACXC,eAAgB,CACdC,QAAS,OACTC,QAAS,OACTC,WAAY,SACZC,eAAgB,UAElBC,iBAAkB,CAChBC,cAAe,OACfC,SAAU,GACVC,WAAY,QAEdC,iBAAkB,CAChBC,SAAU,WACVT,QAAS,qBACTU,WAAY,UACZC,UAAW,wBACX,OAAQ,CACNC,MAAO,OACPC,aAAc,IAEhB,MAAO,CACLC,eAAgB,QAElB,OAAQ,CACNF,MAAO,UACPC,aAAc,OACdN,WAAY,QAEd,OAAQ,CACNK,MAAO,uBAGXG,YAAa,CAAEH,MAAO,UAAWH,SAAU,YAC3CO,iBAAkB,CAChBX,cAAe,OACfO,MAAO,UACPN,SAAU,IAEZW,aAAc,CACZC,MAAO,GACPT,SAAU,WACVU,MAAO,EACPC,OAAQ,IAEVC,YAAa,CACXP,eAAgB,UAEfQ,EAAAA,EAAAA,IAAmBzB,EAAM0B,QAAQ,QAyKxC,EAtK4B,SAAC,GAOA,IAN3BC,EAM0B,EAN1BA,QACAC,EAK0B,EAL1BA,OACAC,EAI0B,EAJ1BA,uBACAC,EAG0B,EAH1BA,mBACAZ,EAE0B,EAF1BA,YACAa,EAC0B,EAD1BA,gBAEA,OACE,SAACC,EAAA,EAAD,CACEC,UACEL,GAAUA,EAAOM,eAAiBP,EAAQhB,iBAAmB,GAFjE,SAKGiB,GAAUA,EAAOM,gBAChB,SAAC,WAAD,WACE,UAACC,EAAA,GAAD,CAAMC,WAAS,EAACH,UAAWN,EAAQT,YAAnC,WACE,UAACiB,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAf,WACE,SAACC,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,sBAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,iCAQA,SAACgC,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,2BAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,SAMGqB,EAAOM,eAAeQ,gBAEzB,SAACH,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,kCAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,UAMGoC,EAAAA,EAAAA,KAC2C,cAAzCf,EAAOM,eAAeU,kBACpBC,SAAS,QAGhB,SAACN,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,0BAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,UAME,SAAC,IAAD,CAAQuC,OAAO,aAAf,SACGlB,EAAOM,eAAea,mBAI7B,UAACZ,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,EAAf,WACE,SAACC,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,gCAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,SAMGqB,EAAOM,eAAec,QAEzB,SAACT,EAAA,EAAD,CACEC,QAAQ,SACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQR,iBAJrB,wBAQA,SAACoB,EAAA,EAAD,CACEC,QAAQ,WACRpC,QAAQ,QACRqC,cAAY,EACZR,UAAWN,EAAQpB,iBAJrB,SAMGqB,EAAOM,eAAee,YAG3B,gBACEhB,UAAWN,EAAQP,aACnB8B,IAAK,gBACLC,IAAI,mBAKTrB,IACC,UAACK,EAAA,GAAD,CAAMF,UAAWN,EAAQzB,eAAzB,WACIgB,IACA,SAAC,KAAD,CACEkC,GAAI,WACJC,QAAS,SAACC,GACRA,EAAEC,mBAEJtB,UAAWN,EAAQH,YALrB,UAOE,SAACgC,EAAA,EAAD,CACEC,QAAS,mBACTC,KAAM,mBACNL,QAAS,kBAAM,GACftC,MAAM,UACNyB,QAAS,gBAIdtB,GAAeU,IACd,SAAC4B,EAAA,EAAD,CACEG,SAAU9B,EACV4B,QAAS,iBACTC,KAAM,iBACNL,QAAS,kBAAMtB,EAAgBH,EAAOgC,UAAWhC,EAAOiC,OACxD9C,MAAM,UACNyB,QAAS,sB,sBCpHnBsB,GAAYC,EAAAA,EAAAA,KALD,SAACC,GAAD,MAAsB,CACrCC,cAAeD,EAAME,QAAQC,cAAcF,cAC3CrC,OAAQoC,EAAME,QAAQC,cAAcC,cAGF,CAClCC,qBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,KAGF,GAAevE,EAAAA,EAAAA,IA9FA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRsE,EAAAA,IADO,IAEVC,YAAa,CACXC,UAAW,YAEVhD,EAAAA,EAAAA,IAAmBzB,EAAM0B,QAAQ,QAwFxC,CAAkCoC,GArFZ,SAAC,GAKA,IAJrBnC,EAIoB,EAJpBA,QACAC,EAGoB,EAHpBA,OACAqC,EAEoB,EAFpBA,cACAK,EACoB,EADpBA,qBAEA,GAAsCI,EAAAA,EAAAA,YAAtC,eAAOxD,EAAP,KAAoByD,EAApB,KACA,GAAoDD,EAAAA,EAAAA,WAAkB,GAAtE,eAAO5C,EAAP,KAA2B8C,EAA3B,KACA,GACEF,EAAAA,EAAAA,WAAkB,GADpB,eAAO7C,EAAP,KAA+BgD,EAA/B,KAuCA,OAdAC,EAAAA,EAAAA,YAAU,WACJhD,GACFiD,EAAAA,EAAAA,OACU,MADV,6BAEGC,MAAK,SAACC,GACLN,EAAeM,GACfL,GAAsB,MAEvBM,OAAM,SAACC,GACNP,GAAsB,QAG3B,CAAC9C,KAGF,UAAC,EAAAsD,SAAD,YACE,eAAInD,UAAWN,EAAQ0D,aAAvB,qBACCpB,GACC,gBAAKhC,UAAWN,EAAQ6C,YAAxB,UACE,SAACc,EAAA,EAAD,OAGF,SAAC,EAAAF,SAAD,UACGxD,IACC,SAACO,EAAA,GAAD,CAAMC,WAAS,EAAf,UACE,SAACD,EAAA,GAAD,CAAME,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,EAAD,CACEV,OAAQA,EACRE,mBAAoBA,EACpBD,uBAAwBA,EACxBX,YAAaA,EACba,gBArDQ,SAAC6B,EAAmBhC,GACtCC,IAGJgD,GAA0B,GAC1BE,EAAAA,EAAAA,OAEI,OAFJ,0CAGuCnB,EAHvC,oBAG4DhC,EAH5D,aAII,IAEDoD,MAAK,WACJH,GAA0B,GAC1BP,GAAqB,GACrBM,GAAsB,MAEvBM,OAAM,SAACC,GACNN,GAA0B,IAC1BR,EAAAA,EAAAA,IAAqBc","sources":["screens/Console/Tenants/TenantDetails/SubnetLicenseTenant.tsx","screens/Console/Tenants/TenantDetails/TenantLicense.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\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Typography } from \"@mui/material\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Moment from \"react-moment\";\nimport { Link } from \"react-router-dom\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { SubnetInfo } from \"../../License/types\";\n\ninterface ISubnetLicenseTenant {\n classes: any;\n tenant: ITenant | null;\n loadingActivateProduct: any;\n loadingLicenseInfo: boolean;\n licenseInfo: SubnetInfo | undefined;\n activateProduct: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paperContainer: {\n padding: \"15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n licenseContainer: {\n position: \"relative\",\n padding: \"20px 52px 0px 28px\",\n background: \"#032F51\",\n boxShadow: \"0px 3px 7px #00000014\",\n \"& h2\": {\n color: \"#FFF\",\n marginBottom: 67,\n },\n \"& a\": {\n textDecoration: \"none\",\n },\n \"& h3\": {\n color: \"#FFFFFF\",\n marginBottom: \"30px\",\n fontWeight: \"bold\",\n },\n \"& h6\": {\n color: \"#FFFFFF !important\",\n },\n },\n licenseInfo: { color: \"#FFFFFF\", position: \"relative\" },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#BFBFBF\",\n fontSize: 11,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n noUnderLine: {\n textDecoration: \"none\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst SubnetLicenseTenant = ({\n classes,\n tenant,\n loadingActivateProduct,\n loadingLicenseInfo,\n licenseInfo,\n activateProduct,\n}: ISubnetLicenseTenant) => {\n return (\n \n {tenant && tenant.subnet_license ? (\n \n \n \n \n License\n \n \n Commercial License\n \n \n Organization\n \n \n {tenant.subnet_license.organization}\n \n \n Registered Capacity\n \n \n {niceBytes(\n (tenant.subnet_license.storage_capacity * 1099511627776) // 1 Terabyte = 1099511627776 Bytes\n .toString(10)\n )}\n \n \n Expiry Date\n \n \n \n {tenant.subnet_license.expires_at}\n \n \n \n \n \n Subscription Plan\n \n \n {tenant.subnet_license.plan}\n \n \n Requestor\n \n \n {tenant.subnet_license.email}\n \n \n \n \n \n ) : (\n !loadingLicenseInfo && (\n \n {!licenseInfo && (\n {\n e.stopPropagation();\n }}\n className={classes.noUnderLine}\n >\n false}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n )}\n {licenseInfo && tenant && (\n activateProduct(tenant.namespace, tenant.name)}\n color=\"primary\"\n variant={\"contained\"}\n />\n )}\n \n )\n )}\n \n );\n};\n\nexport default withStyles(styles)(SubnetLicenseTenant);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { SubnetInfo } from \"../../License/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport SubnetLicenseTenant from \"./SubnetLicenseTenant\";\nimport api from \"../../../../common/api\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantLicense {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantLicense = ({\n classes,\n tenant,\n loadingTenant,\n setTenantDetailsLoad,\n}: ITenantLicense) => {\n const [licenseInfo, setLicenseInfo] = useState();\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(true);\n const [loadingActivateProduct, setLoadingActivateProduct] =\n useState(false);\n\n const activateProduct = (namespace: string, tenant: string) => {\n if (loadingActivateProduct) {\n return;\n }\n setLoadingActivateProduct(true);\n api\n .invoke(\n \"POST\",\n `/api/v1/subscription/namespaces/${namespace}/tenants/${tenant}/activate`,\n {}\n )\n .then(() => {\n setLoadingActivateProduct(false);\n setTenantDetailsLoad(true);\n setLoadingLicenseInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingActivateProduct(false);\n setErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (loadingLicenseInfo) {\n api\n .invoke(\"GET\", `/api/v1/subscription/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingLicenseInfo(false);\n });\n }\n }, [loadingLicenseInfo]);\n\n return (\n \n

    License

    \n {loadingTenant ? (\n
    \n \n
    \n ) : (\n \n {tenant && (\n \n \n \n \n \n )}\n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(TenantLicense));\n"],"names":["withStyles","theme","createStyles","paperContainer","padding","display","alignItems","justifyContent","licenseInfoValue","textTransform","fontSize","fontWeight","licenseContainer","position","background","boxShadow","color","marginBottom","textDecoration","licenseInfo","licenseInfoTitle","verifiedIcon","width","right","bottom","noUnderLine","containerForHeader","spacing","classes","tenant","loadingActivateProduct","loadingLicenseInfo","activateProduct","Paper","className","subnet_license","Grid","container","item","xs","Typography","variant","gutterBottom","organization","niceBytes","storage_capacity","toString","format","expires_at","plan","email","src","alt","to","onClick","e","stopPropagation","RBIconButton","tooltip","text","disabled","namespace","name","connector","connect","state","loadingTenant","tenants","tenantDetails","tenantInfo","setErrorSnackMessage","setTenantDetailsLoad","tenantDetailsStyles","loaderAlign","textAlign","useState","setLicenseInfo","setLoadingLicenseInfo","setLoadingActivateProduct","useEffect","api","then","res","catch","err","Fragment","sectionTitle","Loader"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9251.fe6d731c.chunk.js b/portal-ui/build/static/js/9251.fe6d731c.chunk.js new file mode 100644 index 000000000..078371f12 --- /dev/null +++ b/portal-ui/build/static/js/9251.fe6d731c.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9251],{23804:function(e,n,t){"use strict";t(72791);var r=t(11135),i=t(25787),o=t(61889),a=t(80184);n.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 n=e.classes,t=e.iconComponent,r=e.title,i=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(o.ZP,{container:!0,children:[(0,a.jsxs)(o.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,a.jsx)(o.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},81806:function(e,n,t){"use strict";var r=t(1413),i=t(45987),o=(t(72791),t(11135)),a=t(25787),s=t(80184),c=["classes","children"];n.Z=(0,a.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,i.Z)(e,c);return(0,s.jsx)("button",(0,r.Z)((0,r.Z)({},o),{},{className:n.root,children:t}))}))},75578:function(e,n,t){"use strict";var r=t(1413),i=t(72791),o=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,o.jsx)(i.Suspense,{fallback:n,children:(0,o.jsx)(e,(0,r.Z)({},t))})}return t}},47986:function(e,n,t){"use strict";t(72791);var r=t(61889),i=t(64554),o=t(23804),a=t(80184);n.Z=function(e){var n=e.iconComponent,t=e.entity;return(0,a.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,a.jsx)(r.ZP,{item:!0,xs:12,children:(0,a.jsx)(o.Z,{title:"".concat(t," not available"),iconComponent:n,help:(0,a.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,a.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,a.jsxs)("div",{children:["Please deploy a server in"," ",(0,a.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."]})]})})})})}},59114:function(e,n,t){"use strict";var r=t(4942),i=t(1413),o=(t(72791),t(63466)),a=t(74900),s=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,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,m=e.overrideClass,p=e.value,h=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:i.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){c(e.target.value)},variant:"standard",value:p})}))},89635:function(e,n,t){"use strict";t.r(n);var r=t(29439),i=t(1413),o=t(72791),a=t(26181),s=t.n(a),c=t(60364),l=t(11135),d=t(25787),u=t(64554),m=t(40986),p=t(61889),h=t(23814),f=t(93656),v=t(42649),x=t(81207),Z=t(92983),g=t(28789),j=t(32291),b=t(23804),y=t(81806),F=t(74794),S=t(59114),k=t(75578),C=t(47986),P=t(56087),T=t(38442),z=t(34345),I=t(40603),w=t(80184),E=(0,k.Z)(o.lazy((function(){return t.e(4414).then(t.bind(t,34414))}))),M={setErrorSnackMessage:v.Ih},O=(0,c.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),M);n.default=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.OR),h.qg),h.Je),h.fc),(0,h.Bz)(e.spacing(4))),{},{customConfigurationPage:{minHeight:400},actionsTray:(0,i.Z)({},h.OR.actionsTray),searchField:(0,i.Z)((0,i.Z)({},h.qg.searchField),{},{marginRight:"auto",maxWidth:380}),rightActionButtons:{display:"flex","& button":{whiteSpace:"nowrap"}}},h.VX))}))(O((function(e){var n=e.classes,t=e.history,i=e.setErrorSnackMessage,a=e.distributedSetup,c=(0,o.useState)([]),l=(0,r.Z)(c,2),d=l[0],h=l[1],v=(0,o.useState)(""),k=(0,r.Z)(v,2),M=k[0],O=k[1],A=(0,o.useState)(!0),N=(0,r.Z)(A,2),R=N[0],L=N[1],B=(0,o.useState)(!1),D=(0,r.Z)(B,2),H=D[0],V=D[1],_=(0,o.useState)({type:"unsupported"}),K=(0,r.Z)(_,2),X=K[0],q=K[1];(0,o.useEffect)((function(){if(R)if(a){x.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){h(e.items||[]),L(!1)})).catch((function(e){i(e),L(!1)}))}else L(!1)}),[R,i,a]);var U=d.filter((function(e){if(""===M)return!0;var n=s()(e,"".concat(e.type,".name"),""),t=s()(e,"type","");return n.indexOf(M)>=0||t.indexOf(M)>=0})),W=function(){t.push(P.gA.TIERS_ADD)};return(0,w.jsxs)(o.Fragment,{children:[H&&(0,w.jsx)(E,{open:H,tierData:X,closeModalAndRefresh:function(){V(!1)}}),(0,w.jsx)(j.Z,{label:"Tiers"}),(0,w.jsx)(F.Z,{children:a?(0,w.jsxs)(o.Fragment,{children:[(0,w.jsxs)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,w.jsx)(S.Z,{placeholder:"Filter",onChange:O,overrideClass:n.searchField,value:M}),(0,w.jsxs)("div",{className:n.rightActionButtons,children:[(0,w.jsx)(I.Z,{icon:(0,w.jsx)(g.default,{}),color:"primary",text:"Refresh List",onClick:function(){L(!0)}}),(0,w.jsx)(T.s,{scopes:[P.Ft.ADMIN_SET_TIER],resource:P.C3,errorProps:{disabled:!0},children:(0,w.jsx)(I.Z,{icon:(0,w.jsx)(f.dt,{}),color:"primary",text:"Create Tier",onClick:W,variant:"contained"})})]})]}),R&&(0,w.jsx)(m.Z,{}),!R&&(0,w.jsxs)(o.Fragment,{children:[d.length>0&&(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(p.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,w.jsx)(T.s,{scopes:[P.Ft.ADMIN_LIST_TIERS],resource:P.C3,errorProps:{disabled:!0},children:(0,w.jsx)(Z.Z,{itemActions:[{type:"edit",onClick:function(e){q(e),V(!0)}}],columns:[{label:"Tier Name",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".name"),"");return null!==n?(0,w.jsx)("b",{children:n}):""},renderFullObject:!0},{label:"Type",elementKey:"type",renderFunction:function(e){var n=(z.Bh.find((function(n){return n.serviceName===e}))||{}).logoXs;return e?(0,w.jsx)(u.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"18px",height:"22px"}},children:n}):""},width:50},{label:"Endpoint",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".endpoint"),"");return null!==n?n:""},renderFullObject:!0},{label:"Bucket",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".bucket"),"");return null!==n?n:""},renderFullObject:!0},{label:"Prefix",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".prefix"),"");return null!==n?n:""},renderFullObject:!0},{label:"Region",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".region"),"");return null!==n?n:""},renderFullObject:!0},{label:"Usage",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".usage"),"");return null!==n?n:""},renderFullObject:!0},{label:"Objects",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".objects"),"");return null!==n?n:""},renderFullObject:!0},{label:"Versions",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".versions"),"");return null!==n?n:""},renderFullObject:!0}],isLoading:R,records:U,entityName:"Tiers",idField:"service_name",customPaperHeight:n.customConfigurationPage})})}),(0,w.jsx)(p.ZP,{item:!0,xs:12,sx:{marginTop:"15px"},children:(0,w.jsx)(b.Z,{title:"Learn more about TIERS",iconComponent:(0,w.jsx)(f.y2,{}),help:(0,w.jsxs)(o.Fragment,{children:["Tiers are used by the MinIO Object Lifecycle Management which 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,w.jsx)("br",{}),(0,w.jsx)("br",{}),"You can learn more at our"," ",(0,w.jsx)("a",{href:"https://docs.min.io/minio/baremetal/lifecycle-management/lifecycle-management-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===d.length&&(0,w.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,w.jsx)(p.ZP,{item:!0,xs:8,children:(0,w.jsx)(b.Z,{title:"Tiers",iconComponent:(0,w.jsx)(f.y2,{}),help:(0,w.jsxs)(o.Fragment,{children:["Tiers are used by the MinIO Object Lifecycle Management which 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,w.jsx)("br",{}),(0,w.jsx)("br",{}),"To get started,"," ",(0,w.jsx)(y.Z,{onClick:W,children:"Add A Tier"}),"."]})})})})]})]}):(0,w.jsx)(C.Z,{entity:"Tiers",iconComponent:(0,w.jsx)(f.gX,{})})})]})})))},34345:function(e,n,t){"use strict";t.d(n,{Bh:function(){return l},Pp:function(){return o},b2:function(){return s},f0:function(){return a},vB:function(){return c}});var r=t(93656),i=t(80184),o="minio",a="gcs",s="s3",c="azure",l=[{serviceName:o,targetTitle:"MinIO",logo:(0,i.jsx)(r.$E,{}),logoXs:(0,i.jsx)(r.YE,{})},{serviceName:a,targetTitle:"Google Cloud Storage",logo:(0,i.jsx)(r.UQ,{}),logoXs:(0,i.jsx)(r.Vw,{})},{serviceName:s,targetTitle:"AWS S3",logo:(0,i.jsx)(r.fe,{}),logoXs:(0,i.jsx)(r.Xj,{})},{serviceName:c,targetTitle:"Azure",logo:(0,i.jsx)(r.jz,{}),logoXs:(0,i.jsx)(r.nA,{})}]},26759:function(e,n,t){"use strict";var r=t(95318);n.Z=void 0;var i=r(t(45649)),o=t(80184),a=(0,i.default)((0,o.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var r=t(95318);n.Z=void 0;var i=r(t(45649)),o=t(80184),a=(0,i.default)((0,o.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var r=t(95318);n.Z=void 0;var i=r(t(45649)),o=t(80184),a=(0,i.default)((0,o.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 C}});var r=t(4942),i=t(63366),o=t(87462),a=t(72791),s=t(90767),c=t(12065),l=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"),f=t(14036),v=t(93736),x=t(47630),Z=t(95159);function g(e){return(0,Z.Z)("MuiCheckbox",e)}var j=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),b=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],y=(0,x.ZP)(l.Z,{shouldForwardProp:function(e){return(0,x.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,f.Z)(t.color))]]}})((function(e){var n,t=e.theme,i=e.ownerState;return(0,o.Z)({color:t.palette.text.secondary},!i.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===i.color?t.palette.action.active:t.palette[i.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==i.color&&(n={},(0,r.Z)(n,"&.".concat(j.checked,", &.").concat(j.indeterminate),{color:t.palette[i.color].main}),(0,r.Z)(n,"&.".concat(j.disabled),{color:t.palette.action.disabled}),n))})),F=(0,u.jsx)(p,{}),S=(0,u.jsx)(m,{}),k=(0,u.jsx)(h,{}),C=a.forwardRef((function(e,n){var t,r,c=(0,v.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?F:l,m=c.color,p=void 0===m?"primary":m,h=c.icon,x=void 0===h?S:h,Z=c.indeterminate,j=void 0!==Z&&Z,C=c.indeterminateIcon,P=void 0===C?k:C,T=c.inputProps,z=c.size,I=void 0===z?"medium":z,w=(0,i.Z)(c,b),E=j?P:x,M=j?P:d,O=(0,o.Z)({},c,{color:p,indeterminate:j,size:I}),A=function(e){var n=e.classes,t=e.indeterminate,r=e.color,i={root:["root",t&&"indeterminate","color".concat((0,f.Z)(r))]},a=(0,s.Z)(i,g,n);return(0,o.Z)({},n,a)}(O);return(0,u.jsx)(y,(0,o.Z)({type:"checkbox",inputProps:(0,o.Z)({"data-indeterminate":j},T),icon:a.cloneElement(E,{fontSize:null!=(t=E.props.fontSize)?t:I}),checkedIcon:a.cloneElement(M,{fontSize:null!=(r=M.props.fontSize)?r:I}),ownerState:O,ref:n},w,{classes:A}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return y}});var r=t(4942),i=t(63366),o=t(87462),a=t(72791),s=t(28182),c=t(90767),l=t(14036),d=t(20890),u=t(93840),m=t(52930),p=t(47630),h=t(95159);function f(e){return(0,h.Z)("MuiInputAdornment",e)}var v,x=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),Z=t(93736),g=t(80184),j=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,p.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,o.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"})})),y=a.forwardRef((function(e,n){var t=(0,Z.Z)({props:e,name:"MuiInputAdornment"}),r=t.children,p=t.className,h=t.component,x=void 0===h?"div":h,y=t.disablePointerEvents,F=void 0!==y&&y,S=t.disableTypography,k=void 0!==S&&S,C=t.position,P=t.variant,T=(0,i.Z)(t,j),z=(0,m.Z)()||{},I=P;P&&z.variant,z&&!I&&(I=z.variant);var w=(0,o.Z)({},t,{hiddenLabel:z.hiddenLabel,size:z.size,disablePointerEvents:F,position:C,variant:I}),E=function(e){var n=e.classes,t=e.disablePointerEvents,r=e.hiddenLabel,i=e.position,o=e.size,a=e.variant,s={root:["root",t&&"disablePointerEvents",i&&"position".concat((0,l.Z)(i)),a,r&&"hiddenLabel",o&&"size".concat((0,l.Z)(o))]};return(0,c.Z)(s,f,n)}(w);return(0,g.jsx)(u.Z.Provider,{value:null,children:(0,g.jsx)(b,(0,o.Z)({as:x,ownerState:w,className:(0,s.Z)(E.root,p),ref:n},T,{children:"string"!==typeof r||k?(0,g.jsxs)(a.Fragment,{children:["start"===C?v||(v=(0,g.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,g.jsx)(d.Z,{color:"text.secondary",children:r})}))})}))},26769:function(e,n,t){var r=t(39066),i=t(93629),o=t(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==r(e)}}}]); +//# sourceMappingURL=9251.fe6d731c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9251.fe6d731c.chunk.js.map b/portal-ui/build/static/js/9251.fe6d731c.chunk.js.map new file mode 100644 index 000000000..02a78da77 --- /dev/null +++ b/portal-ui/build/static/js/9251.fe6d731c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9251.fe6d731c.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Configurations/TiersConfiguration/ListTiersConfiguration.tsx","screens/Console/Configurations/TiersConfiguration/utils.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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { 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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

    (\n WrappedComponent: ComponentType

    ,\n fallback: SuspenseProps[\"fallback\"] = null\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 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 { Box, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n settingsCommon,\n tableStyles,\n typesSelection,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AddIcon, TiersIcon, TiersNotAvailableIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ITierElement, ITierResponse } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\n\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { AppState } from \"../../../../store\";\nimport DistributedOnly from \"../../Common/DistributedOnly/DistributedOnly\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport { tierTypes } from \"./utils\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst UpdateTierCredentialsModal = withSuspense(\n React.lazy(() => import(\"./UpdateTierCredentialsModal\"))\n);\n\ninterface IListTiersConfig {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n distributedSetup: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n ...settingsCommon,\n ...typesSelection,\n ...containerForHeader(theme.spacing(4)),\n customConfigurationPage: {\n minHeight: 400,\n },\n actionsTray: {\n ...actionsTray.actionsTray,\n },\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n\n rightActionButtons: {\n display: \"flex\",\n \"& button\": {\n whiteSpace: \"nowrap\",\n },\n },\n ...tableStyles,\n });\n\nconst ListTiersConfiguration = ({\n classes,\n history,\n setErrorSnackMessage,\n distributedSetup,\n}: IListTiersConfig) => {\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [isLoading, setIsLoading] = useState(true);\n const [updateCredentialsOpen, setUpdateCredentialsOpen] =\n useState(false);\n const [selectedTier, setSelectedTier] = useState({\n type: \"unsupported\",\n });\n\n useEffect(() => {\n if (isLoading) {\n if (distributedSetup) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n setRecords(res.items || []);\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n } else {\n setIsLoading(false);\n }\n }\n }, [isLoading, setErrorSnackMessage, distributedSetup]);\n\n const filteredRecords = records.filter((b: ITierElement) => {\n if (filter === \"\") {\n return true;\n }\n const getItemName = get(b, `${b.type}.name`, \"\");\n const getItemType = get(b, `type`, \"\");\n\n return getItemName.indexOf(filter) >= 0 || getItemType.indexOf(filter) >= 0;\n });\n\n const addTier = () => {\n history.push(IAM_PAGES.TIERS_ADD);\n };\n\n const renderTierName = (item: ITierElement) => {\n const name = get(item, `${item.type}.name`, \"\");\n\n if (name !== null) {\n return {name};\n }\n\n return \"\";\n };\n\n const renderTierType = (item: string) => {\n const { logoXs } =\n tierTypes.find((tierConf) => tierConf.serviceName === item) || {};\n if (item) {\n return (\n \n {logoXs}\n \n );\n }\n return \"\";\n };\n\n const renderTierPrefix = (item: ITierElement) => {\n const prefix = get(item, `${item.type}.prefix`, \"\");\n\n if (prefix !== null) {\n return prefix;\n }\n\n return \"\";\n };\n\n const renderTierEndpoint = (item: ITierElement) => {\n const endpoint = get(item, `${item.type}.endpoint`, \"\");\n\n if (endpoint !== null) {\n return endpoint;\n }\n\n return \"\";\n };\n\n const renderTierBucket = (item: ITierElement) => {\n const bucket = get(item, `${item.type}.bucket`, \"\");\n\n if (bucket !== null) {\n return bucket;\n }\n\n return \"\";\n };\n\n const renderTierRegion = (item: ITierElement) => {\n const region = get(item, `${item.type}.region`, \"\");\n\n if (region !== null) {\n return region;\n }\n\n return \"\";\n };\n\n const renderTierUsage = (item: ITierElement) => {\n const endpoint = get(item, `${item.type}.usage`, \"\");\n\n if (endpoint !== null) {\n return endpoint;\n }\n\n return \"\";\n };\n\n const renderTierObjects = (item: ITierElement) => {\n const endpoint = get(item, `${item.type}.objects`, \"\");\n\n if (endpoint !== null) {\n return endpoint;\n }\n\n return \"\";\n };\n\n const renderTierVersions = (item: ITierElement) => {\n const endpoint = get(item, `${item.type}.versions`, \"\");\n\n if (endpoint !== null) {\n return endpoint;\n }\n\n return \"\";\n };\n\n const closeTierCredentials = () => {\n setUpdateCredentialsOpen(false);\n };\n\n return (\n \n {updateCredentialsOpen && (\n \n )}\n \n \n {!distributedSetup ? (\n }\n />\n ) : (\n \n \n \n
    \n }\n color=\"primary\"\n text={`Refresh List`}\n onClick={() => {\n setIsLoading(true);\n }}\n />\n\n \n }\n color=\"primary\"\n text={`Create Tier`}\n onClick={addTier}\n variant=\"contained\"\n />\n \n
    \n
    \n {isLoading && }\n {!isLoading && (\n \n {records.length > 0 && (\n \n \n \n {\n setSelectedTier(tierData);\n setUpdateCredentialsOpen(true);\n },\n },\n ]}\n columns={[\n {\n label: \"Tier Name\",\n elementKey: \"type\",\n renderFunction: renderTierName,\n renderFullObject: true,\n },\n {\n label: \"Type\",\n elementKey: \"type\",\n renderFunction: renderTierType,\n width: 50,\n },\n {\n label: \"Endpoint\",\n elementKey: \"type\",\n renderFunction: renderTierEndpoint,\n renderFullObject: true,\n },\n {\n label: \"Bucket\",\n elementKey: \"type\",\n renderFunction: renderTierBucket,\n renderFullObject: true,\n },\n {\n label: \"Prefix\",\n elementKey: \"type\",\n renderFunction: renderTierPrefix,\n renderFullObject: true,\n },\n {\n label: \"Region\",\n elementKey: \"type\",\n renderFunction: renderTierRegion,\n renderFullObject: true,\n },\n {\n label: \"Usage\",\n elementKey: \"type\",\n renderFunction: renderTierUsage,\n renderFullObject: true,\n },\n {\n label: \"Objects\",\n elementKey: \"type\",\n renderFunction: renderTierObjects,\n renderFullObject: true,\n },\n {\n label: \"Versions\",\n elementKey: \"type\",\n renderFunction: renderTierVersions,\n renderFullObject: true,\n },\n ]}\n isLoading={isLoading}\n records={filteredRecords}\n entityName=\"Tiers\"\n idField=\"service_name\"\n customPaperHeight={classes.customConfigurationPage}\n />\n \n \n \n }\n help={\n \n Tiers are used by the MinIO Object Lifecycle\n Management which allows creating rules for time or\n date based automatic transition or expiry of\n objects. For object transition, MinIO automatically\n moves the object to a configured remote storage\n tier.\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 Tiers are used by the MinIO Object Lifecycle\n Management which allows creating rules for time or\n date based automatic transition or expiry of\n objects. For object transition, MinIO automatically\n moves the object to a configured remote storage\n tier.\n
    \n
    \n To get started,{\" \"}\n Add A Tier.\n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListTiersConfiguration));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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","\"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":["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","padding","margin","textDecoration","cursor","color","palette","info","main","fontFamily","children","rest","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","entity","sx","flexFlow","md","colors","link","href","target","rel","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","variant","UpdateTierCredentialsModal","withSuspense","React","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","distributedSetup","system","actionsTray","settingsCommon","typesSelection","containerForHeader","spacing","customConfigurationPage","minHeight","maxWidth","rightActionButtons","whiteSpace","tableStyles","history","useState","records","setRecords","filter","setFilter","isLoading","setIsLoading","updateCredentialsOpen","setUpdateCredentialsOpen","type","selectedTier","setSelectedTier","useEffect","api","then","res","items","catch","err","filteredRecords","b","getItemName","get","getItemType","indexOf","addTier","push","IAM_PAGES","Fragment","open","tierData","closeModalAndRefresh","icon","text","onClick","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","errorProps","disabled","length","tableBlock","itemActions","columns","elementKey","renderFunction","name","renderFullObject","logoXs","tierTypes","tierConf","serviceName","endpoint","bucket","prefix","region","entityName","idField","customPaperHeight","marginTop","justifyContent","alignContent","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","targetTitle","logo","_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","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","inputAdornmentClasses","marginLeft","pointerEvents","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/9299.2c28578b.chunk.js b/portal-ui/build/static/js/9299.2c28578b.chunk.js new file mode 100644 index 000000000..82b199266 --- /dev/null +++ b/portal-ui/build/static/js/9299.2c28578b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9299,3956,7015],{23956:function(e,n,t){t.r(n);var s=t(29439),r=(t(72791),t(60364)),o=t(11135),i=t(25787),a=t(51691),c=t(42649),l=t(9505),u=t(2148),d=t(93656),h=t(80184),f={setErrorSnackMessage:c.Ih},m=(0,r.$j)(null,f);n.default=(0,i.Z)((function(e){return(0,o.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}})}))(m((function(e){var n=e.classes,t=e.closeDeleteModalAndRefresh,r=e.deleteOpen,o=e.selectedServiceAccount,i=e.setErrorSnackMessage,c=(0,l.Z)((function(){return t(!0)}),(function(e){return i(e)})),f=(0,s.Z)(c,2),m=f[0],p=f[1];if(!o)return null;return(0,h.jsx)(u.Z,{title:"Delete Service Account",confirmText:"Delete",isOpen:r,titleIcon:(0,h.jsx)(d.Nv,{}),isLoading:m,onConfirm:function(){p("DELETE","/api/v1/service-accounts/".concat(o))},onClose:function(){return t(!1)},confirmationContent:(0,h.jsxs)(a.Z,{children:["Are you sure you want to delete service account"," ",(0,h.jsx)("b",{className:n.wrapText,children:o}),"?"]})})})))},81806:function(e,n,t){var s=t(1413),r=t(45987),o=(t(72791),t(11135)),i=t(25787),a=t(80184),c=["classes","children"];n.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,r.Z)(e,c);return(0,a.jsx)("button",(0,s.Z)((0,s.Z)({},o),{},{className:n.root,children:t}))}))},37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return S}});var s=t(1413),r=t(72791),o=t(26181),i=t.n(o),a=t(11135),c=t(25787),l=t(56028),u=t(61889),d=t(77196),h=t(63466),f=t(85531),m=t(78029),p=t.n(m),x=t(93656),Z=t(23814),g=t(80184),v=(0,c.Z)((function(e){return(0,a.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,s.Z)((0,s.Z)({},Z.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,s=e.value,r=void 0===s?"":s,o=e.classes,i=void 0===o?{}:o;return(0,g.jsxs)("div",{className:i.container,children:[(0,g.jsxs)("div",{className:i.inputLabel,children:[t,":"]}),(0,g.jsx)("div",{className:i.inputWithCopy,children:(0,g.jsx)(d.Z,{value:r,readOnly:!0,endAdornment:(0,g.jsx)(h.Z,{position:"end",children:(0,g.jsx)(p(),{text:r,children:(0,g.jsx)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,g.jsx)(x.TI,{})})})})})})]})})),j=t(89357),y=t(40603),b=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)},S=(0,c.Z)((function(e){return(0,a.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 n=e.classes,t=e.newServiceAccount,o=e.open,a=e.closeModal,c=e.entity;if(!t)return null;var d=i()(t,"console",null),h=i()(t,"idp",!1);return(0,g.jsx)(l.Z,{modalOpen:o,onClose:function(){a()},title:(0,g.jsx)("div",{className:n.promptTitle,children:(0,g.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,g.jsx)(x.tV,{}),children:(0,g.jsxs)(u.ZP,{container:!0,children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!h&&d&&(0,g.jsx)(r.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,g.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,n){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(v,{label:"Access Key",value:e.accessKey}),(0,g.jsx)(v,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(d)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(v,{label:"Access Key",value:d.accessKey}),(0,g.jsx)(v,{label:"Secret Key",value:d.secretKey})]})]})}),h?(0,g.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:n.warningBlock,children:[(0,g.jsx)(j.Z,{}),(0,g.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!h&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"});b("credentials.json",JSON.stringify((0,s.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,g.jsx)(y.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,s.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"})]})})]})})}))},60680:function(e,n,t){t(72791);var s=t(11135),r=t(25787),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,o.jsx)("h1",{className:n.root,children:t})}))},50276:function(e,n,t){var s=t(1413),r=t(29439),o=t(72791),i=t(64554),a=t(43896),c=t(83449),l=t(47283),u=t(82851),d=t(25787),h=t(13967),f=t(11135),m=t(95193),p=t(80184),x={minHeight:60};n.Z=(0,d.Z)((function(e){return(0,f.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,d=e.selectedTab,f=void 0===d?"0":d,Z=e.routes,g=e.isRouteTabs,v=o.useState(f),j=(0,r.Z)(v,2),y=j[0],b=j[1],S=(0,h.Z)(),C=(0,m.Z)(S.breakpoints.down("md")),A=[],k=[];return n?(n.forEach((function(e){A.push(e.tabConfig),k.push(e.content)})),(0,p.jsx)(c.ZP,{value:"".concat(y),children:(0,p.jsxs)(i.Z,{className:t.tabsContainer,children:[(0,p.jsx)(i.Z,{className:t.tabsHeaderContainer,children:(0,p.jsx)(l.Z,{onChange:function(e,n){b(n)},orientation:C?"horizontal":"vertical",variant:C?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:A.map((function(e,n){return e?(0,p.jsx)(a.Z,(0,s.Z)((0,s.Z)({className:t.tabHeader,value:"".concat(n),style:x},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,p.jsxs)(i.Z,{className:t.tabContentContainer,children:[g?null:k.map((function(e,n){return(0,p.jsx)(u.Z,{classes:(0,s.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),g?(0,p.jsx)("div",{className:t.tabPanel,children:Z}):null]})]})})):null}))},58400:function(e,n,t){var s=t(93433),r=t(29439),o=t(1413),i=t(72791),a=t(60364),c=t(11135),l=t(25787),u=t(40986),d=t(61889),h=t(21639),f=t(23814),m=t(42649),p=t(81207),x=t(92983),Z=t(59114),g=t(80184),v=(0,a.$j)(null,{setModalErrorSnackMessage:m.zb});n.Z=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,o.Z)({},f.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},f.qg),f.VX),f.OR),f.jY))}))(v((function(e){var n=e.classes,t=e.selectedPolicy,o=void 0===t?[]:t,a=e.setSelectedPolicy,c=e.setModalErrorSnackMessage,l=(0,i.useState)([]),f=(0,r.Z)(l,2),m=f[0],v=f[1],j=(0,i.useState)(!1),y=(0,r.Z)(j,2),b=y[0],S=y[1],C=(0,i.useState)(""),A=(0,r.Z)(C,2),k=A[0],P=A[1],N=(0,i.useCallback)((function(){S(!0),p.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;S(!1),v(n.sort(h.g4))})).catch((function(e){S(!1),c(e)}))}),[c]);(0,i.useEffect)((function(){S(!0)}),[]),(0,i.useEffect)((function(){b&&N()}),[b,N]);var w=m.filter((function(e){return e.name.includes(k)}));return(0,g.jsx)(i.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[b&&(0,g.jsx)(u.Z,{}),m.length>0?(0,g.jsxs)(i.Fragment,{children:[(0,g.jsxs)(d.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)(d.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(x.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,i=(0,s.Z)(o);r?i.push(t):i=i.filter((function(e){return e!==t})),i=i.filter((function(e){return""!==e})),a(i)},selectedItems:o,isLoading:b,records:w,entityName:"Policies",idField:"name",customPaperHeight:n.multiSelectTable})})]}):(0,g.jsx)("div",{className:n.noFound,children:"No Policies Available"})]})})})))},83658:function(e,n,t){var s=t(93433),r=t(29439),o=t(1413),i=t(72791),a=t(60364),c=t(11135),l=t(25787),u=t(40986),d=t(26181),h=t.n(d),f=t(61889),m=t(21639),p=t(23814),x=t(42649),Z=t(81207),g=t(92983),v=t(59114),j=t(80184),y={setModalErrorSnackMessage:x.zb},b=(0,a.$j)(null,y);n.Z=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({noFound:{textAlign:"center",padding:"10px 0"},actionsTitle:{fontWeight:400,color:"#000",fontSize:14,alignSelf:"center",marginRight:48,"@media (max-width: 900px)":{marginRight:0}},searchBox:{flex:1,marginLeft:"2rem"}},p.VX),p.OR),p.jY))}))(b((function(e){var n=e.classes,t=e.selectedGroups,o=e.setSelectedGroups,a=e.setModalErrorSnackMessage,c=(0,i.useState)([]),l=(0,r.Z)(c,2),d=l[0],p=l[1],x=(0,i.useState)(!1),y=(0,r.Z)(x,2),b=y[0],S=y[1],C=(0,i.useState)(""),A=(0,r.Z)(C,2),k=A[0],P=A[1],N=(0,i.useCallback)((function(){Z.Z.invoke("GET","/api/v1/groups").then((function(e){var n=h()(e,"groups",[]);n||(n=[]),p(n.sort(m.V2)),S(!1)})).catch((function(e){a(e),S(!1)}))}),[a]);(0,i.useEffect)((function(){S(!0)}),[]),(0,i.useEffect)((function(){b&&N()}),[b,N]);var w=t||[],E=d.filter((function(e){return e.includes(k)}));return(0,j.jsx)(i.Fragment,{children:(0,j.jsxs)(f.ZP,{item:!0,xs:12,children:[b&&(0,j.jsx)(u.Z,{}),null!==d&&d.length>0?(0,j.jsxs)(i.Fragment,{children:[(0,j.jsxs)(f.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,j.jsx)("label",{className:n.actionsTitle,children:"Assign Groups"}),(0,j.jsx)("div",{className:n.searchBox,children:(0,j.jsx)(v.Z,{placeholder:"Filter Groups",adornmentPosition:"end",onChange:P,value:k})})]}),(0,j.jsx)(f.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,j.jsx)(g.Z,{columns:[{label:"Group",elementKey:""}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,i=(0,s.Z)(w);return r?i.push(t):i=i.filter((function(e){return e!==t})),o(i),i},selectedItems:w,isLoading:b,records:E,entityName:"Groups",idField:"",customPaperHeight:n.multiSelectTable})})]}):(0,j.jsx)("div",{className:n.noFound,children:"No Groups Available"})]})})})))},44341:function(e,n,t){t.r(n),t.d(n,{default:function(){return ke}});var s=t(72791),r=t(62666),o=t(79271),i=t(60364),a=t(42649),c=t(50099),l=t(93433),u=t(29439),d=t(1413),h=t(11135),f=t(25787),m=t(81207),p=t(61889),x=t(40986),Z=t(21639),g=t(93656),v=t(23814),j=t(92983),y=t(32291),b=t(45248),S=t(23804),C=t(81806),A=t(74794),k=t(59114),P=t(75578),N=t(56087),w=t(40603),E=t(38442),M=t(80184),F=(0,P.Z)(s.lazy((function(){return t.e(7524).then(t.bind(t,67524))}))),R=(0,P.Z)(s.lazy((function(){return t.e(8771).then(t.bind(t,39134))}))),T=(0,P.Z)(s.lazy((function(){return t.e(9076).then(t.bind(t,49076))}))),I=(0,P.Z)(s.lazy((function(){return t.e(9221).then(t.bind(t,49221))}))),D={setErrorSnackMessage:a.Ih},U=(0,i.$j)(null,D),K=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},v.OR),v.qg),{},{searchField:(0,d.Z)((0,d.Z)({},v.qg.searchField),{},{marginRight:"auto",maxWidth:380})},v.VX),(0,v.Bz)(e.spacing(4))))}))(U((function(e){var n=e.classes,t=e.setErrorSnackMessage,r=e.history,o=(0,s.useState)([]),i=(0,u.Z)(o,2),a=i[0],c=i[1],d=(0,s.useState)(!0),h=(0,u.Z)(d,2),f=h[0],v=h[1],P=(0,s.useState)(!1),D=(0,u.Z)(P,2),U=D[0],K=D[1],O=(0,s.useState)(!1),B=(0,u.Z)(O,2),_=B[0],L=B[1],z=(0,s.useState)(null),G=(0,u.Z)(z,2),V=G[0],W=G[1],H=(0,s.useState)(!1),$=(0,u.Z)(H,2),q=$[0],Y=$[1],X=(0,s.useState)(""),J=(0,u.Z)(X,2),Q=J[0],ee=J[1],ne=(0,s.useState)([]),te=(0,u.Z)(ne,2),se=te[0],re=te[1],oe=(0,s.useState)(!1),ie=(0,u.Z)(oe,2),ae=ie[0],ce=ie[1],le=(0,E.F)(N.C3,[N.Ft.ADMIN_LIST_USERS]),ue=(0,E.F)(N.C3,[N.Ft.ADMIN_DELETE_USER]),de=(0,E.F)(N.C3,[N.Ft.ADMIN_GET_USER]),he=(0,E.F)(N.C3,[N.Ft.ADMIN_ADD_USER_TO_GROUP]);(0,s.useEffect)((function(){f&&(le?m.Z.invoke("GET","/api/v1/users").then((function(e){var n=null===e.users?[]:e.users;v(!1),c(n.sort(Z.LQ))})).catch((function(e){v(!1),t(e)})):v(!1))}),[f,t,le]);var fe=a.filter((function(e){return e.accessKey.includes(Q)})),me=(0,b.le)(localStorage.getItem("userLoggedIn")||""),pe=[{type:"view",onClick:function(e){r.push("".concat(N.gA.USERS,"/").concat(encodeURI(e.accessKey)))},disableButtonFunction:function(){return!de}},{type:"delete",onClick:function(e){L(!0),W(e)},disableButtonFunction:function(e){return e===me||!ue}}];return(0,M.jsxs)(s.Fragment,{children:[U&&(0,M.jsx)(F,{open:U,selectedUser:V,closeModalAndRefresh:function(){K(!1),v(!0)}}),ae&&(0,M.jsx)(R,{open:ae,selectedUser:V,selectedGroup:null,closeModalAndRefresh:function(){ce(!1),v(!0)}}),_&&(0,M.jsx)(T,{deleteOpen:_,selectedUser:V,closeDeleteModalAndRefresh:function(e){!function(e){L(!1),e&&v(!0)}(e)}}),q&&(0,M.jsx)(I,{open:q,checkedUsers:se,closeModalAndRefresh:function(e){!function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];Y(!1),e&&re([])}(e)}}),(0,M.jsx)(y.Z,{label:"Users"}),(0,M.jsxs)(A.Z,{children:[(0,M.jsxs)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,M.jsx)(k.Z,{placeholder:"Search Users",onChange:ee,overrideClass:n.searchField,value:Q}),(0,M.jsx)(E.s,{scopes:[N.Ft.ADMIN_ADD_USER_TO_GROUP],resource:N.C3,errorProps:{disabled:!0},children:(0,M.jsx)(w.Z,{tooltip:"Add to Group",text:"Add to Group",icon:(0,M.jsx)(g.ww,{}),color:"primary",disabled:se.length<=0,onClick:function(){se.length>0&&Y(!0)},variant:"outlined"})}),(0,M.jsx)(E.s,{scopes:[N.Ft.ADMIN_CREATE_USER,N.Ft.ADMIN_LIST_USER_POLICIES,N.Ft.ADMIN_LIST_GROUPS],resource:N.HQ,matchAll:!0,errorProps:{disabled:!0},children:(0,M.jsx)(w.Z,{tooltip:"Create User",text:"Create User",icon:(0,M.jsx)(g.dt,{}),color:"primary",onClick:function(){K(!0),W(null)},variant:"contained"})})]}),f&&(0,M.jsx)(x.Z,{}),!f&&(0,M.jsxs)(s.Fragment,{children:[a.length>0&&(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,M.jsx)(E.s,{scopes:[N.Ft.ADMIN_LIST_USERS],resource:N.C3,errorProps:{disabled:!0},children:(0,M.jsx)(j.Z,{itemActions:pe,columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:he?function(e){var n=e.target,t=n.value,s=n.checked,r=(0,l.Z)(se);return s?r.push(t):r=r.filter((function(e){return e!==t})),re(r),r}:void 0,selectedItems:se,isLoading:f,records:fe,entityName:"Users",idField:"accessKey"})})}),(0,M.jsx)(p.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,M.jsx)(S.Z,{title:"Users",iconComponent:(0,M.jsx)(g.oy,{}),help:(0,M.jsxs)(s.Fragment,{children:["A MinIO user consists of a unique access key (username) and corresponding secret key (password). Clients must authenticate their identity by specifying both a valid access key (username) and the corresponding secret key (password) of an existing MinIO user.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"Each user can have one or more assigned policies that explicitly list the actions and resources to which that user has access. Users can also inherit policies from the groups in which they have membership.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"You can learn more at our"," ",(0,M.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===a.length&&(0,M.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,M.jsx)(p.ZP,{item:!0,xs:8,children:(0,M.jsx)(S.Z,{title:"Users",iconComponent:(0,M.jsx)(g.oy,{}),help:(0,M.jsxs)(s.Fragment,{children:["A MinIO user consists of a unique access key (username) and corresponding secret key (password). Clients must authenticate their identity by specifying both a valid access key (username) and the corresponding secret key (password) of an existing MinIO user.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"Each user can have one or more assigned policies that explicitly list the actions and resources to which that user has access. Users can also inherit policies from the groups in which they have membership.",(0,M.jsx)(E.s,{scopes:[N.Ft.ADMIN_CREATE_USER,N.Ft.ADMIN_LIST_USER_POLICIES,N.Ft.ADMIN_LIST_GROUPS],matchAll:!0,resource:N.C3,children:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"To get started,"," ",(0,M.jsx)(C.Z,{onClick:function(){K(!0),W(null)},children:"Create a User"}),"."]})})]})})})})]})]})]})}))),O=t(37762),B=t(36151),_=t(83658),L=t(56028),z=t(54163),G={setModalErrorSnackMessage:a.zb},V=(0,i.$j)(null,G),W=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({buttonContainer:{textAlign:"right"}},v.bK),v.oO))}))(V((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,o=e.open,i=e.setModalErrorSnackMessage,a=(0,s.useState)(!1),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),f=(0,u.Z)(h,2),Z=f[0],g=f[1],v=(0,s.useState)(""),j=(0,u.Z)(v,2),y=j[0],b=j[1],S=(0,s.useState)(!1),C=(0,u.Z)(S,2),A=C[0],k=C[1],P=(0,s.useState)([]),N=(0,u.Z)(P,2),w=N[0],E=N[1],F=(0,s.useCallback)((function(){if(!r)return null;m.Z.invoke("GET","/api/v1/user?name=".concat(encodeURI(r))).then((function(e){d(!1),g(e.accessKey),E(e.memberOf||[]),k("enabled"===e.status)})).catch((function(e){d(!1),i(e)}))}),[r,i]);(0,s.useEffect)((function(){null===r?(g(""),b(""),E([])):F()}),[r,F]);var R=""!==Z.trim()&&(""!==y.trim()&&null===r||null!==r);return(0,M.jsx)(L.Z,{onClose:function(){t()},modalOpen:o,title:"Set Groups",titleIcon:(0,M.jsx)(z.Z,{}),children:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),l||(d(!0),null!==r?m.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURI(r)),{status:A?"enabled":"disabled",groups:w}).then((function(e){d(!1),t()})).catch((function(e){d(!1),i(e)})):m.Z.invoke("POST","/api/v1/users",{accessKey:Z,secretKey:y,groups:w}).then((function(e){d(!1),t()})).catch((function(e){d(!1),i(e)})))},children:(0,M.jsxs)(p.ZP,{container:!0,children:[(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,M.jsx)(_.Z,{selectedGroups:w,setSelectedGroups:function(e){E(e)}})}),(0,M.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,M.jsx)(B.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){null===r?(g(""),b(""),E([])):E([])},children:"Clear"}),(0,M.jsx)(B.Z,{type:"submit",variant:"contained",color:"primary",disabled:l||!R,children:"Save"})]}),l&&(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(x.Z,{})})]})})})})}))),H=t(58400),$={setModalErrorSnackMessage:a.zb},q=(0,i.$j)(null,$),Y=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({},v.oO),{},{buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(q((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,o=e.currentPolicies,i=e.setModalErrorSnackMessage,a=e.open,c=(0,s.useState)(!1),l=(0,u.Z)(c,2),d=l[0],h=l[1],f=(0,s.useState)([]),Z=(0,u.Z)(f,2),g=Z[0],v=Z[1],j=(0,s.useState)([]),y=(0,u.Z)(j,2),b=y[0],S=y[1];return(0,s.useEffect)((function(){if(a){var e,n=[],t=(0,O.Z)(o);try{for(t.s();!(e=t.n()).done;){var s=e.value;n.push(s.policy)}}catch(r){t.e(r)}finally{t.f()}v(n),S(n)}}),[a,r]),(0,M.jsxs)(L.Z,{onClose:function(){t()},modalOpen:a,title:"Set Policies",children:[(0,M.jsx)(p.ZP,{container:!0,children:(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(H.Z,{selectedPolicy:b,setSelectedPolicy:S})})}),(0,M.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,M.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){S(g)},children:"Reset"}),(0,M.jsx)(B.Z,{type:"button",variant:"contained",color:"primary",disabled:d,onClick:function(){var e=r;h(!0),m.Z.invoke("PUT","/api/v1/set-policy",{name:b,entityName:e,entityType:"user"}).then((function(){h(!1),t()})).catch((function(e){h(!1),i(e)}))},children:"Save"})]}),d&&(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(x.Z,{})})]})}))),X=t(64554),J=t(92217),Q=t(37516),ee=t(21435),ne={setModalErrorSnackMessage:a.zb},te=(0,i.$j)(null,ne),se=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({},v.bl),v.ID))}))(te((function(e){var n=e.classes,t=e.open,r=e.closeModalAndRefresh,o=e.setModalErrorSnackMessage,i=e.user,a=(0,s.useState)(!1),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),f=(0,u.Z)(h,2),Z=f[0],g=f[1],v=(0,s.useState)(""),j=(0,u.Z)(v,2),y=j[0],b=j[1],S=(0,s.useState)(""),C=(0,u.Z)(S,2),A=C[0],k=C[1],P=(0,s.useState)(!1),N=(0,u.Z)(P,2),w=N[0],E=N[1],F=(0,s.useState)(!1),R=(0,u.Z)(F,2),T=R[0],I=R[1];(0,s.useEffect)((function(){l&&(T?m.Z.invoke("POST","/api/v1/user/".concat(i,"/service-account-credentials"),{policy:Z,accessKey:y,secretKey:A}).then((function(e){d(!1),r(e)})).catch((function(e){d(!1),o(e)})):m.Z.invoke("POST","/api/v1/user/".concat(i,"/service-accounts"),{policy:Z}).then((function(e){d(!1),r(e)})).catch((function(e){d(!1),o(e)})))}),[l,d,o,Z,r,i,T,y,A]);return(0,M.jsx)(L.Z,{modalOpen:t,onClose:function(){r(null)},title:"Create Service Account",children:(0,M.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),d(!0)}(e)},children:[(0,M.jsxs)(p.ZP,{container:!0,className:n.modalFormScrollable,children:[(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsxs)("div",{className:n.infoDetails,children:["Service Accounts inherit the policy explicitly attached to the parent user and the policy attached to each group in which the parent user has membership. You can specify an optional JSON-formatted policy below to restrict the Service Account access to a subset of actions and resources explicitly allowed for the parent user.",(0,M.jsx)(X.Z,{sx:{paddingTop:"15px",paddingBottom:"15px"},children:"You cannot modify the Service Account optional policy after saving."})]})}),(0,M.jsxs)(p.ZP,{item:!0,xs:12,children:[(0,M.jsxs)(p.ZP,{item:!0,xs:12,children:[(0,M.jsx)(Q.Z,{value:"locking",id:"locking",name:"locking",checked:T,onChange:function(e){I(e.target.checked)},label:"Customize Credentials"}),T&&(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsxs)("div",{className:n.stackedInputs,children:[(0,M.jsx)(ee.Z,{value:y,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){b(e.target.value)}}),(0,M.jsx)(ee.Z,{value:A,label:"Secret Key",id:"secretKey",name:"secretKey",placeholder:"Enter Secret Key",onChange:function(e){k(e.target.value)}})]})})]}),(0,M.jsxs)(p.ZP,{item:!0,xs:12,children:[(0,M.jsx)(Q.Z,{value:"locking",id:"locking",name:"locking",checked:w,onChange:function(e){E(e.target.checked)},label:"Restrict with policy"}),w&&(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,M.jsx)(J.Z,{label:"Policy ",value:Z,onBeforeChange:function(e,n,t){g(t)}})})]})]})]}),(0,M.jsxs)(p.ZP,{container:!0,children:[(0,M.jsxs)(p.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,M.jsx)(B.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){g("")},children:"Clear"}),(0,M.jsx)(B.Z,{type:"submit",variant:"contained",color:"primary",disabled:l,children:"Create"})]}),l&&(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(x.Z,{})})]})]})})}))),re=t(23956),oe=t(37798),ie=t(60680),ae=t(18303),ce=t(58493),le=t(14048),ue=(0,i.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:a.Ih}),de=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},v.qg),v.OR),{},{actionsTray:(0,d.Z)({},v.OR.actionsTray)},v.VX))}))(ue((function(e){var n=e.classes,t=e.user,r=e.setErrorSnackMessage,o=e.hasPolicy,i=(0,s.useState)([]),c=(0,u.Z)(i,2),l=c[0],d=c[1],h=(0,s.useState)(!1),f=(0,u.Z)(h,2),p=f[0],x=f[1],v=(0,s.useState)(!1),y=(0,u.Z)(v,2),b=y[0],S=y[1],C=(0,s.useState)(!1),A=(0,u.Z)(C,2),k=A[0],P=A[1],N=(0,s.useState)(null),E=(0,u.Z)(N,2),F=E[0],R=E[1],T=(0,s.useState)(!1),I=(0,u.Z)(T,2),D=I[0],U=I[1],K=(0,s.useState)(null),O=(0,u.Z)(K,2),B=O[0],_=O[1],L=(0,s.useState)([]),z=(0,u.Z)(L,2),G=z[0],V=z[1],W=(0,s.useState)(!1),H=(0,u.Z)(W,2),$=H[0],q=H[1],Y=(0,s.useState)(!1),J=(0,u.Z)(Y,2),Q=J[0],ee=J[1];(0,s.useEffect)((function(){ne()}),[]),(0,s.useEffect)((function(){p&&m.Z.invoke("GET","/api/v1/user/".concat(t,"/service-accounts")).then((function(e){var n=e.sort(Z.V2);x(!1),d(n)})).catch((function(e){r(e),x(!1)}))}),[p,x,d,r,t]);var ne=function(){x(!0)},te=[{type:"view",onClick:function(e){R(e),ee(!0)}},{type:"delete",onClick:function(e){R(e),P(!0)}}];return(0,M.jsxs)(s.Fragment,{children:[b&&(0,M.jsx)(se,{open:b,closeModalAndRefresh:function(e){!function(e){if(S(!1),ne(),null!==e){var n={console:{accessKey:"".concat(e.accessKey),secretKey:"".concat(e.secretKey),url:"".concat(e.url)}};_(n),U(!0)}}(e)},user:t}),k&&(0,M.jsx)(re.default,{deleteOpen:k,selectedServiceAccount:F,closeDeleteModalAndRefresh:function(e){!function(e){P(!1),e&&ne()}(e)}}),$&&(0,M.jsx)(ae.Z,{deleteOpen:$,selectedSAs:G,closeDeleteModalAndRefresh:function(e){q(!1),e&&((0,a.y1)("Service accounts deleted successfully."),V([]),x(!0))}}),D&&(0,M.jsx)(oe.default,{newServiceAccount:B,open:D,closeModal:function(){U(!1),_(null)},entity:"Service Account"}),Q&&(0,M.jsx)(le.Z,{open:Q,selectedAccessKey:F,closeModalAndRefresh:function(){ee(!1),x(!0)}}),(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(ie.Z,{children:"Service Accounts"}),(0,M.jsxs)(X.Z,{children:[(0,M.jsx)(w.Z,{tooltip:"Delete Selected",onClick:function(){q(!0)},text:"Delete Selected",icon:(0,M.jsx)(g.pJ,{}),color:"secondary",disabled:0===G.length,variant:"outlined"}),(0,M.jsx)(w.Z,{tooltip:"Create service account",text:"Create service account",variant:"contained",color:"primary",icon:(0,M.jsx)(g.dt,{}),onClick:function(){S(!0),S(!0),R(null)},disabled:!o})]})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(j.Z,{isLoading:p,records:l,entityName:"Service Accounts",idField:"",columns:[{label:"Service Account",elementKey:""}],itemActions:te,selectedItems:G,onSelect:function(e){return(0,ce._0)(e,V,G)},onSelectAll:function(){G.length!==l.length?V(l):V([])}})})]})}))),he=(0,i.$j)(null,{setModalErrorSnackMessage:a.zb}),fe=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({buttonContainer:{textAlign:"right"}},v.ID),v.DF),v.bK),(0,v.Bz)(e.spacing(4))))}))(he((function(e){var n=e.classes,t=e.open,r=e.userName,o=e.closeModal,i=e.setModalErrorSnackMessage,a=(0,s.useState)(""),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),f=(0,u.Z)(h,2),Z=f[0],v=f[1],j=(0,s.useState)(!1),y=(0,u.Z)(j,2),b=y[0],S=y[1];return t?(0,M.jsx)(L.Z,{title:"Change User Password",modalOpen:t,onClose:function(){d(""),v(""),o()},titleIcon:(0,M.jsx)(g.I,{}),children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!b){if(S(!0),l.length<8)return i({errorMessage:"Passwords must be at least 8 characters long",detailedError:""}),void S(!1);var n={selectedUser:r,newSecretKey:l};m.Z.invoke("POST","/api/v1/account/change-user-password",n).then((function(e){S(!1),d(""),v(""),o()})).catch((function(e){S(!1),d(""),v(""),i(e)}))}}(e)},children:(0,M.jsxs)(p.ZP,{container:!0,children:[(0,M.jsxs)(p.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,M.jsxs)("div",{className:n.spacerBottom,children:["Change password for: ",r]}),(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,M.jsx)(ee.Z,{id:"new-password",name:"new-password",onChange:function(e){d(e.target.value)},label:"New Password",type:"password",value:l})}),(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,M.jsx)(ee.Z,{id:"re-new-password",name:"re-new-password",onChange:function(e){v(e.target.value)},label:"Type New Password Again",type:"password",value:Z})})]}),(0,M.jsx)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,M.jsx)(B.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!(Z.length>0&&l===Z),children:"Save"})}),b&&(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(x.Z,{})})]})})}):null}))),me=t(51691),pe=t(9505),xe=t(2148),Ze={setErrorSnackMessage:a.Ih},ge=(0,i.$j)(null,Ze)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,s=e.userName,o=e.setErrorSnackMessage,i=(0,pe.Z)((function(){r.Z.push(N.gA.USERS)}),(function(e){return o(e)})),a=(0,u.Z)(i,2),c=a[0],l=a[1];if(!s)return null;return(0,M.jsx)(xe.Z,{title:"Delete User",confirmText:"Delete",isOpen:t,isLoading:c,onConfirm:function(){l("DELETE","/api/v1/user?name=".concat(encodeURI(s)),{id:s})},onClose:function(){return n(!1)},titleIcon:(0,M.jsx)(g.Nv,{}),confirmationContent:(0,M.jsxs)(me.Z,{children:["Are you sure you want to delete user ",(0,M.jsx)("br",{}),(0,M.jsx)("b",{children:s}),"?"]})})})),ve=t(14917),je=t(50276),ye=t(84669),be={setErrorSnackMessage:a.Ih},Se=(0,i.$j)(null,be),Ce=(0,f.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({pageContainer:{border:"1px solid #EAEAEA"},statusLabel:{fontSize:".8rem",marginRight:".5rem"},statusValue:{fontWeight:"bold",fontSize:".9rem",marginRight:".5rem"},breadcrumLink:{textDecoration:"none",color:"black"}},v.OR),v.qg),v.VX),(0,v.Bz)(e.spacing(4))))}))(Se((function(e){var n=e.classes,t=e.match,o=(0,s.useState)(!1),i=(0,u.Z)(o,2),c=i[0],l=i[1],d=(0,s.useState)(!1),h=(0,u.Z)(d,2),f=h[0],x=h[1],Z=(0,s.useState)(!1),v=(0,u.Z)(Z,2),b=v[0],S=v[1],C=(0,s.useState)(!1),k=(0,u.Z)(C,2),P=k[0],E=k[1],F=(0,s.useState)(!1),R=(0,u.Z)(F,2),T=R[0],I=R[1],D=(0,s.useState)([]),U=(0,u.Z)(D,2),K=U[0],B=U[1],_=(0,s.useState)([]),L=(0,u.Z)(_,2),z=L[0],G=L[1],V=(0,s.useState)([]),H=(0,u.Z)(V,2),$=H[0],q=H[1],X=(0,s.useState)(!1),J=(0,u.Z)(X,2),ee=J[0],ne=J[1],te=(0,s.useState)(!1),se=(0,u.Z)(te,2),re=se[0],oe=se[1],ae=(0,s.useState)(!1),ce=(0,u.Z)(ae,2),le=ce[0],ue=ce[1],he=t.params.userName,me=(0,s.useCallback)((function(){if(""===he)return null;l(!0),m.Z.invoke("GET","/api/v1/user?name=".concat(encodeURIComponent(he))).then((function(e){E(!1);var n=e.memberOf||[];B(n);var t,s=[],r=(0,O.Z)(n);try{for(r.s();!(t=r.n()).done;){var o=t.value;s.push({group:o})}}catch(d){r.e(d)}finally{r.f()}G(s);var i,a=[],c=(0,O.Z)(e.policy);try{for(c.s();!(i=c.n()).done;){var u=i.value;a.push({policy:u})}}catch(d){c.e(d)}finally{c.f()}q(a),I("enabled"===e.status),ue(e.hasPolicy),l(!1)})).catch((function(e){E(!1),l(!1),(0,a.zb)(e)}))}),[he]);(0,s.useEffect)((function(){me()}),[me]);return(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)(y.Z,{label:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)(ye.Z,{label:"User",to:N.gA.USERS})}),actions:(0,M.jsx)(s.Fragment,{})}),f&&(0,M.jsx)(W,{open:f,selectedUser:he,closeModalAndRefresh:function(){x(!1),me()}}),b&&(0,M.jsx)(Y,{open:b,selectedUser:he,currentPolicies:$,closeModalAndRefresh:function(){S(!1),me()}}),re&&(0,M.jsx)(ge,{deleteOpen:re,userName:he,closeDeleteModalAndRefresh:function(e){!function(e){oe(!1),e&&me()}(e)}}),ee&&(0,M.jsx)(fe,{open:ee,userName:he,closeModal:function(){return ne(!1)}}),(0,M.jsxs)(A.Z,{className:n.pageContainer,children:[(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsx)(ve.Z,{icon:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)(g.oy,{width:40})}),title:he,actions:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)("span",{className:n.statusLabel,children:"User Status:"}),(0,M.jsx)("span",{className:n.statusValue,children:T?"Enabled":"Disabled"}),(0,M.jsx)(Q.Z,{indicatorLabels:["Enabled","Disabled"],checked:T,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var e;I(!T),e=!T,P||(E(!0),m.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURIComponent(he)),{status:e?"enabled":"disabled",groups:K}).then((function(e){E(!1)})).catch((function(e){E(!1),(0,a.zb)(e)})))},switchOnly:!0}),(0,M.jsx)(w.Z,{tooltip:"Delete User",text:"",onClick:function(){oe(!0)},icon:(0,M.jsx)(g.XH,{}),color:"secondary",variant:"outlined"}),(0,M.jsx)(w.Z,{tooltip:"Change Password",text:"",onClick:function(){ne(!0)},icon:(0,M.jsx)(g.tv,{}),color:"primary",variant:"outlined"})]})})}),(0,M.jsx)(p.ZP,{item:!0,xs:12,children:(0,M.jsxs)(je.Z,{children:[{tabConfig:{label:"Groups"},content:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(ie.Z,{children:"Groups"}),(0,M.jsx)(w.Z,{tooltip:"Add to Groups",text:"Add to Groups",onClick:function(){x(!0)},icon:(0,M.jsx)(g.dt,{}),color:"primary",variant:"contained"})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(j.Z,{columns:[{label:"Name",elementKey:"group"}],isLoading:c,records:z,entityName:"Groups",idField:"group"})})]})},{tabConfig:{label:"Service Accounts"},content:(0,M.jsx)(de,{user:he,hasPolicy:le})},{tabConfig:{label:"Policies"},content:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(ie.Z,{children:"Policies"}),(0,M.jsx)(w.Z,{tooltip:"Assign Policies",text:"Assign Policies",onClick:function(){S(!0)},icon:(0,M.jsx)(g.v4,{}),color:"primary",variant:"contained"})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(j.Z,{itemActions:[{type:"view",onClick:function(e){r.Z.push("".concat(N.gA.POLICIES,"/").concat(e.policy))}}],columns:[{label:"Name",elementKey:"policy"}],isLoading:c,records:$,entityName:"Policies",idField:"policy"})})]})}]})})]})]})}))),Ae=(0,i.$j)((function(e){return{open:e.system.sidebarOpen}}),{setMenuOpen:a.gG}),ke=(0,o.EN)(Ae((function(){return(0,M.jsx)(o.F0,{history:r.Z,children:(0,M.jsxs)(o.rs,{children:[(0,M.jsx)(o.AW,{path:N.gA.USERS_VIEW,component:Ce}),(0,M.jsx)(o.AW,{path:N.gA.USERS,component:K}),(0,M.jsx)(o.AW,{component:c.Z})]})})})))},50099:function(e,n,t){t.d(n,{Z:function(){return l}});t(72791);var s=t(64554),r=t(20890),o=t(23060),i=t(80184);function a(){return(0,i.jsxs)(r.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,i.jsx)(o.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var c=t(74794),l=function(){return(0,i.jsx)(c.Z,{children:(0,i.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,i.jsx)(s.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,i.jsx)(s.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,i.jsx)(s.Z,{mt:5,children:(0,i.jsx)(a,{})})]})})}},83449:function(e,n,t){t.d(n,{ZP:function(){return a},_i:function(){return c},pQ:function(){return u},uU:function(){return l}});var s=t(29439),r=t(72791),o=t(80184),i=r.createContext(null);function a(e){var n=e.children,t=e.value,a=function(){var e=r.useState(null),n=(0,s.Z)(e,2),t=n[0],o=n[1];return r.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),c=r.useMemo((function(){return{idPrefix:a,value:t}}),[a,t]);return(0,o.jsx)(i.Provider,{value:c,children:n})}function c(){return r.useContext(i)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function u(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){var s=t(87462),r=t(63366),o=t(72791),i=t(18073),a=t(83449),c=t(80184),l=["children"],u=o.forwardRef((function(e,n){var t=e.children,u=(0,r.Z)(e,l),d=(0,a._i)();if(null===d)throw new TypeError("No TabContext provided");var h=o.Children.map(t,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,a.uU)(d,e.props.value),id:(0,a.pQ)(d,e.props.value)}):null}));return(0,c.jsx)(i.Z,(0,s.Z)({},u,{ref:n,value:d.value,children:h}))}));n.Z=u},82851:function(e,n,t){t.d(n,{Z:function(){return x}});var s=t(87462),r=t(63366),o=t(72791),i=t(28182),a=t(47630),c=t(93736),l=t(90767),u=t(95159);function d(e){return(0,u.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var h=t(83449),f=t(80184),m=["children","className","value"],p=(0,a.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),x=o.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTabPanel"}),o=t.children,a=t.className,u=t.value,x=(0,r.Z)(t,m),Z=(0,s.Z)({},t),g=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},d,n)}(Z),v=(0,h._i)();if(null===v)throw new TypeError("No TabContext provided");var j=(0,h.uU)(v,u),y=(0,h.pQ)(v,u);return(0,f.jsx)(p,(0,s.Z)({"aria-labelledby":y,className:(0,i.Z)(g.root,a),hidden:u!==v.value,id:j,ref:n,role:"tabpanel",ownerState:Z},x,{children:u===v.value&&o}))}))},23060:function(e,n,t){t.d(n,{Z:function(){return A}});var s=t(29439),r=t(4942),o=t(63366),i=t(87462),a=t(72791),c=t(28182),l=t(90767),u=t(18529),d=t(12065),h=t(14036),f=t(47630),m=t(93736),p=t(23031),x=t(42071),Z=t(20890),g=t(95159);function v(e){return(0,g.Z)("MuiLink",e)}var j=(0,t(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),y=t(80184),b=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},C=(0,f.ZP)(Z.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["underline".concat((0,h.Z)(t.underline))],"button"===t.component&&n.button]}})((function(e){var n=e.theme,t=e.ownerState,s=(0,u.D)(n,"palette.".concat(function(e){return S[e]||e}(t.color)))||t.color;return(0,i.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==s?(0,d.Fq)(s,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===t.component&&(0,r.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(j.focusVisible),{outline:"auto"}))})),A=a.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiLink"}),r=t.className,u=t.color,d=void 0===u?"primary":u,f=t.component,Z=void 0===f?"a":f,g=t.onBlur,j=t.onFocus,S=t.TypographyClasses,A=t.underline,k=void 0===A?"always":A,P=t.variant,N=void 0===P?"inherit":P,w=(0,o.Z)(t,b),E=(0,p.Z)(),M=E.isFocusVisibleRef,F=E.onBlur,R=E.onFocus,T=E.ref,I=a.useState(!1),D=(0,s.Z)(I,2),U=D[0],K=D[1],O=(0,x.Z)(n,T),B=(0,i.Z)({},t,{color:d,component:Z,focusVisible:U,underline:k,variant:N}),_=function(e){var n=e.classes,t=e.component,s=e.focusVisible,r=e.underline,o={root:["root","underline".concat((0,h.Z)(r)),"button"===t&&"button",s&&"focusVisible"]};return(0,l.Z)(o,v,n)}(B);return(0,y.jsx)(C,(0,i.Z)({className:(0,c.Z)(_.root,r),classes:S,color:d,component:Z,onBlur:function(e){F(e),!1===M.current&&K(!1),g&&g(e)},onFocus:function(e){R(e),!0===M.current&&K(!0),j&&j(e)},ref:O,ownerState:B,variant:N},w))}))}}]); +//# sourceMappingURL=9299.2c28578b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9299.2c28578b.chunk.js.map b/portal-ui/build/static/js/9299.2c28578b.chunk.js.map new file mode 100644 index 000000000..041266484 --- /dev/null +++ b/portal-ui/build/static/js/9299.2c28578b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9299.2c28578b.chunk.js","mappings":"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","sources":["screens/Console/Account/DeleteServiceAccount.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Policies/PolicySelectors.tsx","screens/Console/Users/GroupsSelectors.tsx","screens/Console/Users/ListUsers.tsx","screens/Console/Users/ChangeUserGroups.tsx","screens/Console/Users/SetUserPolicies.tsx","screens/Console/Users/AddUserServiceAccount.tsx","screens/Console/Users/UserServiceAccountsPanel.tsx","screens/Console/Account/ChangeUserPasswordModal.tsx","screens/Console/Users/DeleteUserString.tsx","screens/Console/Users/UserDetails.tsx","screens/Console/Users/Users.tsx","common/Copyright.tsx","screens/NotFoundPage.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","../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 { 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { 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 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","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, { 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, { 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 Grid from \"@mui/material/Grid\";\n\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { GroupsList } from \"../Groups/types\";\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 selectedGroups: string[];\n setSelectedGroups: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n noFound: {\n textAlign: \"center\",\n padding: \"10px 0\",\n },\n actionsTitle: {\n fontWeight: 400,\n color: \"#000\",\n fontSize: 14,\n alignSelf: \"center\",\n\n marginRight: 48,\n \"@media (max-width: 900px)\": {\n marginRight: 0,\n },\n },\n searchBox: {\n flex: 1,\n marginLeft: \"2rem\",\n },\n ...tableStyles,\n ...actionsTray,\n ...selectorsCommon,\n });\n\nconst GroupsSelectors = ({\n classes,\n selectedGroups,\n setSelectedGroups,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchGroups = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/groups`)\n .then((res: GroupsList) => {\n let groups = get(res, \"groups\", []);\n\n if (!groups) {\n groups = [];\n }\n setRecords(groups.sort(stringSort));\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 fetchGroups();\n }\n }, [loading, fetchGroups]);\n\n const selGroups = !selectedGroups ? [] : selectedGroups;\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[] = [...selGroups]; // 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 setSelectedGroups(elements);\n\n return elements;\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter)\n );\n\n return (\n \n \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n\n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Groups Available
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(GroupsSelectors));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Grid, LinearProgress } from \"@mui/material\";\nimport { User, UsersList } from \"./types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport { GroupsIcon, AddIcon, UsersIcon } from \"../../../icons\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { decodeFileName } from \"../../../common/utils\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n S3_ALL_RESOURCES,\n} from \"../../../common/SecureComponent/permissions\";\n\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nconst AddUser = withSuspense(React.lazy(() => import(\"./AddUser\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\"))\n);\nconst DeleteUser = withSuspense(React.lazy(() => import(\"./DeleteUser\")));\nconst AddToGroup = withSuspense(React.lazy(() => import(\"./BulkAddToGroup\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IUsersProps {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListUsers = ({ classes, setErrorSnackMessage, history }: IUsersProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [addScreenOpen, setAddScreenOpen] = useState(false);\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedUser, setSelectedUser] = useState(null);\n const [addGroupOpen, setAddGroupOpen] = useState(false);\n const [filter, setFilter] = useState(\"\");\n const [checkedUsers, setCheckedUsers] = useState([]);\n const [policyOpen, setPolicyOpen] = useState(false);\n\n const displayListUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_USERS,\n ]);\n\n const deleteUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_DELETE_USER,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const addUserToGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_ADD_USER_TO_GROUP,\n ]);\n\n const closeAddModalAndRefresh = () => {\n setAddScreenOpen(false);\n setLoading(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n setLoading(true);\n }\n };\n\n const closeAddGroupBulk = (unCheckAll: boolean = false) => {\n setAddGroupOpen(false);\n if (unCheckAll) {\n setCheckedUsers([]);\n }\n };\n\n useEffect(() => {\n if (loading) {\n if (displayListUsers) {\n api\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n const users = res.users === null ? [] : res.users;\n\n setLoading(false);\n setRecords(users.sort(usersSort));\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setErrorSnackMessage, displayListUsers]);\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.accessKey.includes(filter)\n );\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[] = [...checkedUsers]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedUsers(elements);\n\n return elements;\n };\n\n const viewAction = (selectionElement: any): void => {\n history.push(`${IAM_PAGES.USERS}/${encodeURI(selectionElement.accessKey)}`);\n };\n\n const deleteAction = (selectionElement: any): void => {\n setDeleteOpen(true);\n setSelectedUser(selectionElement);\n };\n\n const userLoggedIn = decodeFileName(\n localStorage.getItem(\"userLoggedIn\") || \"\"\n );\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewUser,\n },\n {\n type: \"delete\",\n onClick: deleteAction,\n disableButtonFunction: (topValue: any) =>\n topValue === userLoggedIn || !deleteUser,\n },\n ];\n\n return (\n \n {addScreenOpen && (\n {\n closeAddModalAndRefresh();\n }}\n />\n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n setLoading(true);\n }}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {addGroupOpen && (\n {\n closeAddGroupBulk(close);\n }}\n />\n )}\n \n \n \n \n \n }\n color=\"primary\"\n disabled={checkedUsers.length <= 0}\n onClick={() => {\n if (checkedUsers.length > 0) {\n setAddGroupOpen(true);\n }\n }}\n variant={\"outlined\"}\n />\n \n \n }\n color=\"primary\"\n onClick={() => {\n setAddScreenOpen(true);\n setSelectedUser(null);\n }}\n variant={\"contained\"}\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 MinIO user consists of a unique access key (username)\n and corresponding secret key (password). Clients must\n authenticate their identity by specifying both a valid\n access key (username) and the corresponding secret key\n (password) of an existing MinIO user.\n
    \n
    \n Each user can have one or more assigned policies that\n explicitly list the actions and resources to which that\n user has access. Users can also inherit policies from\n the groups in which they have membership.\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 MinIO user consists of a unique access key (username)\n and corresponding secret key (password). Clients must\n authenticate their identity by specifying both a valid\n access key (username) and the corresponding secret key\n (password) of an existing MinIO user.\n
    \n
    \n Each user can have one or more assigned policies that\n explicitly list the actions and resources to which that\n user has access. Users can also inherit policies from\n the groups in which they have membership.\n \n \n
    \n
    \n To get started,{\" \"}\n {\n setAddScreenOpen(true);\n setSelectedUser(null);\n }}\n >\n Create a User\n \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(ListUsers));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalBasic,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\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 AddMembersToGroup from \"../../../icons/AddMembersToGroupIcon\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...spacingUtils,\n ...modalBasic,\n });\n\ninterface IChangeUserGroupsContentProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: string;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ChangeUserGroups = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n open,\n setModalErrorSnackMessage,\n}: IChangeUserGroupsContentProps) => {\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\n const getUserInformation = useCallback(() => {\n if (!selectedUser) {\n return null;\n }\n\n api\n .invoke(\"GET\", `/api/v1/user?name=${encodeURI(selectedUser)}`)\n .then((res) => {\n setAddLoading(false);\n setAccessKey(res.accessKey);\n setSelectedGroups(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 (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedUser !== null) {\n api\n .invoke(\"PUT\", `/api/v1/user?name=${encodeURI(selectedUser)}`, {\n status: enabled ? \"enabled\" : \"disabled\",\n groups: selectedGroups,\n })\n .then((_) => {\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 })\n .then((_) => {\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={\"Set Groups\"}\n titleIcon={}\n >\n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n setSelectedGroups(elements);\n }}\n />\n \n \n \n Clear\n \n\n \n Save\n \n \n {addLoading && (\n \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(ChangeUserGroups));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { modalBasic } from \"../Common/FormComponents/common/styleLibrary\";\nimport { IPolicyItem } 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 \"../Policies/PolicySelectors\";\n\ninterface ISetUserPoliciesProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: string;\n currentPolicies: IPolicyItem[];\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \".9rem\",\n },\n });\n\nconst SetUserPolicies = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n currentPolicies,\n setModalErrorSnackMessage,\n open,\n}: ISetUserPoliciesProps) => {\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n\n const SetUserPoliciesAction = () => {\n let entity = \"user\";\n let value = selectedUser;\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 resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n };\n\n useEffect(() => {\n if (open) {\n const userPolicy: string[] = [];\n for (let pol of currentPolicies) {\n userPolicy.push(pol.policy);\n }\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedUser]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n modalOpen={open}\n title=\"Set Policies\"\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(SetUserPolicies));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Box, Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalStyleUtils,\n serviceAccountStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../common/api\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...serviceAccountStyles,\n ...modalStyleUtils,\n });\n\ninterface IAddUserServiceAccountProps {\n classes: any;\n open: boolean;\n user: string;\n closeModalAndRefresh: (res: NewServiceAccount | null) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst AddUserServiceAccount = ({\n classes,\n open,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n user,\n}: IAddUserServiceAccountProps) => {\n const [addSending, setAddSending] = useState(false);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [addCredentials, setAddCredentials] = useState(false);\n\n useEffect(() => {\n if (addSending) {\n if (addCredentials) {\n api\n .invoke(\"POST\", `/api/v1/user/${user}/service-account-credentials`, {\n policy: policyDefinition,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n closeModalAndRefresh(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", `/api/v1/user/${user}/service-accounts`, {\n policy: policyDefinition,\n })\n .then((res) => {\n setAddSending(false);\n closeModalAndRefresh(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setModalErrorSnackMessage(err);\n });\n }\n }\n }, [\n addSending,\n setAddSending,\n setModalErrorSnackMessage,\n policyDefinition,\n closeModalAndRefresh,\n user,\n addCredentials,\n accessKey,\n secretKey,\n ]);\n\n const addUserServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyDefinition(\"\");\n };\n\n return (\n {\n closeModalAndRefresh(null);\n }}\n title={`Create Service Account`}\n >\n ) => {\n addUserServiceAccount(e);\n }}\n >\n \n \n
    \n Service Accounts inherit the policy explicitly attached to the\n parent user and the policy attached to each group in which the\n parent user has membership. You can specify an optional\n JSON-formatted policy below to restrict the Service Account access\n to a subset of actions and resources explicitly allowed for the\n parent user.\n \n You cannot modify the Service Account optional policy after\n saving.\n \n
    \n
    \n \n \n ) => {\n setAddCredentials(event.target.checked);\n }}\n label={\"Customize Credentials\"}\n />\n\n {addCredentials && (\n \n
    \n {\n setAccessKey(e.target.value);\n }}\n />\n {\n setSecretKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n
    \n \n ) => {\n setIsRestrictedByPolicy(event.target.checked);\n }}\n label={\"Restrict with policy\"}\n />\n\n {isRestrictedByPolicy && (\n \n {\n setPolicyDefinition(value);\n }}\n />\n \n )}\n \n
    \n
    \n \n \n \n Clear\n \n \n Create\n \n \n {addSending && (\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(AddUserServiceAccount));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Box } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../store\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../actions\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport AddUserServiceAccount from \"./AddUserServiceAccount\";\nimport DeleteServiceAccount from \"../Account/DeleteServiceAccount\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { AddIcon, DeleteIcon } from \"../../../icons\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport DeleteMultipleServiceAccounts from \"./DeleteMultipleServiceAccounts\";\nimport { selectSAs } from \"../../Console/Configurations/utils\";\nimport ServiceAccountPolicy from \"../Account/ServiceAccountPolicy\";\n\ninterface IUserServiceAccountsProps {\n classes: any;\n user: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n hasPolicy: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n actionsTray: {\n ...actionsTray.actionsTray,\n },\n ...tableStyles,\n });\n\nconst UserServiceAccountsPanel = ({\n classes,\n user,\n setErrorSnackMessage,\n hasPolicy,\n}: IUserServiceAccountsProps) => {\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 [selectedServiceAccount, setSelectedServiceAccount] = useState<\n string | null\n >(null);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [selectedSAs, setSelectedSAs] = useState([]);\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [policyOpen, setPolicyOpen] = useState(false);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/user/${user}/service-accounts`)\n .then((res: string[]) => {\n const serviceAccounts = res.sort(stringSort);\n setLoading(false);\n setRecords(serviceAccounts);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, setLoading, setRecords, setErrorSnackMessage, user]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const closeAddModalAndRefresh = (res: NewServiceAccount | null) => {\n setAddScreenOpen(false);\n fetchRecords();\n\n if (res !== null) {\n const nsa: NewServiceAccount = {\n console: {\n accessKey: `${res.accessKey}`,\n secretKey: `${res.secretKey}`,\n url: `${res.url}`,\n },\n };\n setNewServiceAccount(nsa);\n setShowNewCredentials(true);\n }\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n if (refresh) {\n setSnackBarMessage(`Service accounts deleted successfully.`);\n setSelectedSAs([]);\n setLoading(true);\n }\n };\n\n const selectAllItems = () => {\n if (selectedSAs.length === records.length) {\n setSelectedSAs([]);\n return;\n }\n setSelectedSAs(records);\n };\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setNewServiceAccount(null);\n };\n\n const policyModalOpen = (selectedServiceAccount: string) => {\n setSelectedServiceAccount(selectedServiceAccount);\n setPolicyOpen(true);\n };\n\n const confirmDeleteServiceAccount = (selectedServiceAccount: string) => {\n setSelectedServiceAccount(selectedServiceAccount);\n setDeleteOpen(true);\n };\n\n const closePolicyModal = () => {\n setPolicyOpen(false);\n setLoading(true);\n };\n\n const tableActions = [\n { type: \"view\", onClick: policyModalOpen },\n { type: \"delete\", onClick: confirmDeleteServiceAccount },\n ];\n\n return (\n \n {addScreenOpen && (\n {\n closeAddModalAndRefresh(res);\n }}\n user={user}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {deleteMultipleOpen && (\n \n )}\n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n {policyOpen && (\n \n )}\n
    \n Service Accounts\n \n {\n setDeleteMultipleOpen(true);\n }}\n text={\"Delete Selected\"}\n icon={}\n color=\"secondary\"\n disabled={selectedSAs.length === 0}\n variant={\"outlined\"}\n />\n }\n onClick={() => {\n setAddScreenOpen(true);\n setAddScreenOpen(true);\n setSelectedServiceAccount(null);\n }}\n disabled={!hasPolicy}\n />\n \n
    \n
    \n selectSAs(e, setSelectedSAs, selectedSAs)}\n onSelectAll={selectAllItems}\n />\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UserServiceAccountsPanel));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport {\n containerForHeader,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ChangeUserPasswordRequest } from \"../Buckets/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport { ChangePasswordIcon } from \"../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IChangeUserPasswordProps {\n classes: any;\n open: boolean;\n userName: string;\n closeModal: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ChangeUserPassword = ({\n classes,\n open,\n userName,\n closeModal,\n setModalErrorSnackMessage,\n}: IChangeUserPasswordProps) => {\n const [newPassword, setNewPassword] = useState(\"\");\n const [reNewPassword, setReNewPassword] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const changeUserPassword = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (loading) {\n return;\n }\n setLoading(true);\n\n if (newPassword.length < 8) {\n setModalErrorSnackMessage({\n errorMessage: \"Passwords must be at least 8 characters long\",\n detailedError: \"\",\n });\n setLoading(false);\n return;\n }\n\n let request: ChangeUserPasswordRequest = {\n selectedUser: userName,\n newSecretKey: newPassword,\n };\n\n api\n .invoke(\"POST\", \"/api/v1/account/change-user-password\", request)\n .then((res) => {\n setLoading(false);\n setNewPassword(\"\");\n setReNewPassword(\"\");\n closeModal();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setNewPassword(\"\");\n setReNewPassword(\"\");\n setModalErrorSnackMessage(err);\n });\n };\n\n return open ? (\n {\n setNewPassword(\"\");\n setReNewPassword(\"\");\n closeModal();\n }}\n titleIcon={}\n >\n ) => {\n changeUserPassword(e);\n }}\n >\n \n \n
    \n Change password for: {userName}\n
    \n \n ) => {\n setNewPassword(event.target.value);\n }}\n label=\"New Password\"\n type=\"password\"\n value={newPassword}\n />\n \n \n ) => {\n setReNewPassword(event.target.value);\n }}\n label=\"Type New Password Again\"\n type=\"password\"\n value={reNewPassword}\n />\n \n
    \n \n 0 && newPassword === reNewPassword)\n }\n >\n Save\n \n \n {loading && (\n \n \n \n )}\n
    \n \n \n ) : null;\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ChangeUserPassword));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 history from \"../../../history\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IDeleteUserProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n userName: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteUserString = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n userName,\n setErrorSnackMessage,\n}: IDeleteUserProps) => {\n const onDelSuccess = () => {\n history.push(IAM_PAGES.USERS);\n };\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!userName) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/user?name=${encodeURI(userName)}`, {\n id: userName,\n });\n };\n\n return (\n }\n confirmationContent={\n \n Are you sure you want to delete user
    \n {userName}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteUserString);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 } from \"@mui/material\";\nimport {\n AddIcon,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n TrashIcon,\n UsersIcon,\n} from \"../../../icons\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { IPolicyItem } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport ChangeUserGroups from \"./ChangeUserGroups\";\nimport SetUserPolicies from \"./SetUserPolicies\";\nimport history from \"../../../history\";\nimport UserServiceAccountsPanel from \"./UserServiceAccountsPanel\";\nimport ChangeUserPasswordModal from \"../Account/ChangeUserPasswordModal\";\nimport DeleteUserString from \"./DeleteUserString\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport BackLink from \"../../../common/BackLink\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n },\n statusLabel: {\n fontSize: \".8rem\",\n marginRight: \".5rem\",\n },\n statusValue: {\n fontWeight: \"bold\",\n fontSize: \".9rem\",\n marginRight: \".5rem\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...actionsTray,\n ...searchField,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IUserDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\ninterface IGroupItem {\n group: string;\n}\n\nconst UserDetails = ({ classes, match }: IUserDetailsProps) => {\n const [loading, setLoading] = useState(false);\n const [addGroupOpen, setAddGroupOpen] = useState(false);\n const [policyOpen, setPolicyOpen] = useState(false);\n const [addLoading, setAddLoading] = useState(false);\n\n const [enabled, setEnabled] = useState(false);\n const [selectedGroups, setSelectedGroups] = useState([]);\n const [currentGroups, setCurrentGroups] = useState([]);\n const [currentPolicies, setCurrentPolicies] = useState([]);\n const [changeUserPasswordModalOpen, setChangeUserPasswordModalOpen] =\n useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [hasPolicy, setHasPolicy] = useState(false);\n\n const userName = match.params[\"userName\"];\n\n const changeUserPassword = () => {\n setChangeUserPasswordModalOpen(true);\n };\n\n const deleteUser = () => {\n setDeleteOpen(true);\n };\n\n const getUserInformation = useCallback(() => {\n if (userName === \"\") {\n return null;\n }\n setLoading(true);\n api\n .invoke(\"GET\", `/api/v1/user?name=${encodeURIComponent(userName)}`)\n .then((res) => {\n setAddLoading(false);\n const memberOf = res.memberOf || [];\n setSelectedGroups(memberOf);\n let currentGroups: IGroupItem[] = [];\n for (let group of memberOf) {\n currentGroups.push({\n group: group,\n });\n }\n setCurrentGroups(currentGroups);\n let currentPolicies: IPolicyItem[] = [];\n for (let policy of res.policy) {\n currentPolicies.push({\n policy: policy,\n });\n }\n setCurrentPolicies(currentPolicies);\n setEnabled(res.status === \"enabled\");\n setHasPolicy(res.hasPolicy);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [userName]);\n\n const saveRecord = (isEnabled: boolean) => {\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/user?name=${encodeURIComponent(userName)}`, {\n status: isEnabled ? \"enabled\" : \"disabled\",\n groups: selectedGroups,\n })\n .then((_) => {\n setAddLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n getUserInformation();\n }, [getUserInformation]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n getUserInformation();\n }\n };\n\n return (\n \n \n \n \n }\n actions={}\n />\n {addGroupOpen && (\n {\n setAddGroupOpen(false);\n getUserInformation();\n }}\n />\n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n getUserInformation();\n }}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {changeUserPasswordModalOpen && (\n setChangeUserPasswordModalOpen(false)}\n />\n )}\n \n \n \n \n \n }\n title={userName}\n actions={\n \n User Status:\n \n {enabled ? \"Enabled\" : \"Disabled\"}\n \n {\n setEnabled(!enabled);\n saveRecord(!enabled);\n }}\n switchOnly\n />\n\n }\n color=\"secondary\"\n variant={\"outlined\"}\n />\n\n }\n color=\"primary\"\n variant={\"outlined\"}\n />\n \n }\n />\n \n\n \n \n {{\n tabConfig: {\n label: \"Groups\",\n },\n content: (\n \n
    \n Groups\n {\n setAddGroupOpen(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Service Accounts\",\n },\n content: (\n \n ),\n }}\n {{\n tabConfig: {\n label: \"Policies\",\n },\n content: (\n \n
    \n Policies\n\n {\n setPolicyOpen(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n
    \n
    \n {\n history.push(\n `${IAM_PAGES.POLICIES}/${policy.policy}`\n );\n },\n },\n ]}\n columns={[{ label: \"Name\", elementKey: \"policy\" }]}\n isLoading={loading}\n records={currentPolicies}\n entityName=\"Policies\"\n idField=\"policy\"\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(UserDetails));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport history from \"../../../history\";\nimport { 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\";\n\nimport ListUsers from \"./ListUsers\";\nimport UserDetails from \"./UserDetails\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Users = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default withRouter(connector(Users));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 * 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 { 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":["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","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","children","rest","container","display","flexFlow","inputWithCopy","width","background","height","marginRight","inputLabel","fieldBasic","label","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","alignItems","credentialTitle","fontWeight","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","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","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","justifyContent","borderBottom","marginBottom","tabContentContainer","tabPanel","flexDirection","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","onChange","event","newValue","orientation","scrollButtons","tabList","tabHeader","disableRipple","disableTouchRipple","focusRipple","setModalErrorSnackMessage","noFound","searchBox","flex","fieldLabel","tableBlock","tableStyles","filterBox","searchField","actionsTray","selectorsCommon","selectedPolicy","setSelectedPolicy","useState","records","setRecords","loading","filter","setFilter","fetchPolicies","useCallback","then","res","policies","sort","policySort","catch","useEffect","filteredRecords","elementItem","name","includes","placeholder","columns","elementKey","onSelect","e","targetD","target","checked","elements","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","actionsTitle","alignSelf","marginLeft","selectedGroups","setSelectedGroups","fetchGroups","groups","stringSort","selGroups","adornmentPosition","AddUser","withSuspense","SetPolicy","DeleteUser","AddToGroup","containerForHeader","spacing","history","setLoading","addScreenOpen","setAddScreenOpen","setDeleteOpen","selectedUser","setSelectedUser","addGroupOpen","setAddGroupOpen","checkedUsers","setCheckedUsers","policyOpen","setPolicyOpen","displayListUsers","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deleteUser","viewUser","addUserToGroup","users","usersSort","userLoggedIn","decodeFileName","localStorage","getItem","tableActions","type","selectionElement","IAM_PAGES","encodeURI","disableButtonFunction","topValue","Fragment","closeModalAndRefresh","selectedGroup","refresh","close","unCheckAll","closeAddGroupBulk","PageHeader","PageLayout","SearchBox","overrideClass","SecureComponent","scopes","resource","errorProps","disabled","S3_ALL_RESOURCES","matchAll","LinearProgress","TableWrapper","itemActions","undefined","HelpBox","iconComponent","help","href","rel","alignContent","AButton","spacingUtils","modalBasic","addLoading","setAddLoading","setAccessKey","setSecretKey","enabled","setEnabled","getUserInformation","memberOf","status","sendEnabled","trim","noValidate","autoComplete","onSubmit","preventDefault","_","GroupsSelectors","Button","spacerRight","currentPolicies","actualPolicy","setActualPolicy","userPolicy","pol","policy","PolicySelectors","clearButton","entityType","serviceAccountStyles","modalStyleUtils","user","addSending","setAddSending","policyDefinition","setPolicyDefinition","isRestrictedByPolicy","setIsRestrictedByPolicy","addCredentials","setAddCredentials","addUserServiceAccount","modalFormScrollable","infoDetails","Box","sx","paddingTop","paddingBottom","FormSwitchWrapper","stackedInputs","InputBoxWrapper","codeMirrorContainer","CodeMirrorWrapper","onBeforeChange","editor","data","modalButtonBar","state","session","console","hasPolicy","setSelectedServiceAccount","showNewCredentials","setShowNewCredentials","setNewServiceAccount","selectedSAs","setSelectedSAs","deleteMultipleOpen","setDeleteMultipleOpen","fetchRecords","serviceAccounts","nsa","closeAddModalAndRefresh","DeleteServiceAccount","DeleteMultipleServiceAccounts","setSnackBarMessage","CredentialsPrompt","ServiceAccountPolicy","selectedAccessKey","PanelTitle","selectSAs","onSelectAll","formFieldStyles","userName","newPassword","setNewPassword","reNewPassword","setReNewPassword","errorMessage","detailedError","request","newSecretKey","changeUserPassword","spacerBottom","formFieldRow","ConfirmDialog","DialogContentText","pageContainer","statusLabel","statusValue","breadcrumLink","match","currentGroups","setCurrentGroups","setCurrentPolicies","changeUserPasswordModalOpen","setChangeUserPasswordModalOpen","setHasPolicy","params","group","BackLink","to","actions","ChangeUserPasswordModal","ScreenTitle","indicatorLabels","isEnabled","switchOnly","VerticalTabs","system","sidebarOpen","setMenuOpen","withRouter","component","UserDetails","ListUsers","NotFoundPage","Copyright","Typography","align","Link","Date","getFullYear","fontStyle","mt","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","getLinkUtilityClass","colorTransformations","primary","textPrimary","secondary","textSecondary","error","LinkRoot","capitalize","underline","button","getPath","transformDeprecatedColors","textDecorationColor","alpha","WebkitTapHighlightColor","outline","borderRadius","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","onBlur","onFocus","TypographyClasses","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9299.5442941e.chunk.js b/portal-ui/build/static/js/9299.5442941e.chunk.js deleted file mode 100644 index 0e91c0f81..000000000 --- a/portal-ui/build/static/js/9299.5442941e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9299,3956,7015],{84669:function(e,n,t){t(72791);var s=t(91523),r=t(11135),i=t(25787),o=t(93656),a=t(64554),c=t(80184);n.Z=(0,i.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,i=e.className,l=e.executeOnClick;return(0,c.jsx)(a.Z,{sx:{display:"flex",alignItems:"center"},children:(0,c.jsx)(s.rU,{to:n,className:"".concat(r.link," ").concat(i||""),onClick:function(){l&&l()},children:(0,c.jsxs)("div",{className:r.iconBox,children:[(0,c.jsx)("div",{className:r.icon,children:(0,c.jsx)(o.xN,{})}),(0,c.jsx)("div",{className:r.label,children:t})]})})})}))},23956:function(e,n,t){t.r(n);var s=t(29439),r=(t(72791),t(60364)),i=t(11135),o=t(25787),a=t(51691),c=t(42649),l=t(9505),u=t(23508),d=t(93656),h=t(80184),m={setErrorSnackMessage:c.Ih},f=(0,r.$j)(null,m);n.default=(0,o.Z)((function(e){return(0,i.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}})}))(f((function(e){var n=e.classes,t=e.closeDeleteModalAndRefresh,r=e.deleteOpen,i=e.selectedServiceAccount,o=e.setErrorSnackMessage,c=(0,l.Z)((function(){return t(!0)}),(function(e){return o(e)})),m=(0,s.Z)(c,2),f=m[0],x=m[1];if(!i)return null;return(0,h.jsx)(u.Z,{title:"Delete Service Account",confirmText:"Delete",isOpen:r,titleIcon:(0,h.jsx)(d.Nv,{}),isLoading:f,onConfirm:function(){x("DELETE","/api/v1/service-accounts/".concat(i))},onClose:function(){return t(!1)},confirmationContent:(0,h.jsxs)(a.Z,{children:["Are you sure you want to delete service account"," ",(0,h.jsx)("b",{className:n.wrapText,children:i}),"?"]})})})))},81806:function(e,n,t){var s=t(1413),r=t(45987),i=(t(72791),t(11135)),o=t(25787),a=t(80184),c=["classes","children"];n.Z=(0,o.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,r.Z)(e,c);return(0,a.jsx)("button",(0,s.Z)((0,s.Z)({},i),{},{className:n.root,children:t}))}))},37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return S}});var s=t(1413),r=t(72791),i=t(26181),o=t.n(i),a=t(11135),c=t(25787),l=t(56028),u=t(61889),d=t(77196),h=t(63466),m=t(85531),f=t(78029),x=t.n(f),p=t(93656),Z=t(23814),g=t(80184),j=(0,c.Z)((function(e){return(0,a.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,s.Z)((0,s.Z)({},Z.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,s=e.value,r=void 0===s?"":s,i=e.classes,o=void 0===i?{}:i;return(0,g.jsxs)("div",{className:o.container,children:[(0,g.jsxs)("div",{className:o.inputLabel,children:[t,":"]}),(0,g.jsx)("div",{className:o.inputWithCopy,children:(0,g.jsx)(d.Z,{value:r,readOnly:!0,endAdornment:(0,g.jsx)(h.Z,{position:"end",children:(0,g.jsx)(x(),{text:r,children:(0,g.jsx)(m.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,g.jsx)(p.TI,{})})})})})})]})})),v=t(89357),y=t(40603),b=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)},S=(0,c.Z)((function(e){return(0,a.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 n=e.classes,t=e.newServiceAccount,i=e.open,a=e.closeModal,c=e.entity;if(!t)return null;var d=o()(t,"console",null),h=o()(t,"idp",!1);return(0,g.jsx)(l.Z,{modalOpen:i,onClose:function(){a()},title:(0,g.jsx)("div",{className:n.promptTitle,children:(0,g.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,g.jsx)(p.tV,{}),children:(0,g.jsxs)(u.ZP,{container:!0,children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!h&&d&&(0,g.jsx)(r.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,g.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,n){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(d)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:d.accessKey}),(0,g.jsx)(j,{label:"Secret Key",value:d.secretKey})]})]})}),h?(0,g.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:n.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)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!h&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"});b("credentials.json",JSON.stringify((0,s.Z)({},e)))},icon:(0,g.jsx)(p._8,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,g.jsx)(y.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,s.Z)({},e)))},icon:(0,g.jsx)(p._8,{}),variant:"contained",color:"primary"})]})})]})})}))},60680:function(e,n,t){t(72791);var s=t(11135),r=t(25787),i=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,i.jsx)("h1",{className:n.root,children:t})}))},14917:function(e,n,t){t(72791);var s=t(61889),r=t(11135),i=t(25787),o=t(80184);n.Z=(0,i.Z)((function(e){return(0,r.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,r=e.title,i=e.subTitle,a=e.actions,c=e.className;return(0,o.jsx)(s.ZP,{container:!0,children:(0,o.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(c||""),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:r}),(0,o.jsx)("span",{className:n.headerBarSubheader,children:i})]})]}),(0,o.jsx)("div",{className:n.rightItems,children:a})]})})}))},14662:function(e,n,t){t.d(n,{Z:function(){return R}});var s=t(1413),r=t(29439),i=t(72791),o=t(64554),a=t(43896),c=t(80184),l=i.createContext(null);function u(e){var n=e.children,t=e.value,s=function(){var e=i.useState(null),n=(0,r.Z)(e,2),t=n[0],s=n[1];return i.useEffect((function(){s("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),o=i.useMemo((function(){return{idPrefix:s,value:t}}),[s,t]);return(0,c.jsx)(l.Provider,{value:o,children:n})}function d(){return i.useContext(l)}function h(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 f=t(87462),x=t(63366),p=t(18073),Z=["children"],g=i.forwardRef((function(e,n){var t=e.children,s=(0,x.Z)(e,Z),r=d();if(null===r)throw new TypeError("No TabContext provided");var o=i.Children.map(t,(function(e){return i.isValidElement(e)?i.cloneElement(e,{"aria-controls":h(r,e.props.value),id:m(r,e.props.value)}):null}));return(0,c.jsx)(p.Z,(0,f.Z)({},s,{ref:n,value:r.value,children:o}))})),j=t(28182),v=t(47630),y=t(93736),b=t(90767),S=t(95159);function C(e){return(0,S.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var A=["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=i.forwardRef((function(e,n){var t=(0,y.Z)({props:e,name:"MuiTabPanel"}),s=t.children,r=t.className,i=t.value,o=(0,x.Z)(t,A),a=(0,f.Z)({},t),l=function(e){var n=e.classes;return(0,b.Z)({root:["root"]},C,n)}(a),u=d();if(null===u)throw new TypeError("No TabContext provided");var p=h(u,i),Z=m(u,i);return(0,c.jsx)(k,(0,f.Z)({"aria-labelledby":Z,className:(0,j.Z)(l.root,r),hidden:i!==u.value,id:p,ref:n,role:"tabpanel",ownerState:a},o,{children:i===u.value&&s}))})),w=t(25787),P=t(13967),E=t(11135),M=t(95193),I={minHeight:60},R=(0,w.Z)((function(e){return(0,E.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,l=e.selectedTab,d=void 0===l?"0":l,h=e.routes,m=e.isRouteTabs,f=i.useState(d),x=(0,r.Z)(f,2),p=x[0],Z=x[1],j=(0,P.Z)(),v=(0,M.Z)(j.breakpoints.down("md")),y=[],b=[];return n?(n.forEach((function(e){y.push(e.tabConfig),b.push(e.content)})),(0,c.jsx)(u,{value:"".concat(p),children:(0,c.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,c.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,c.jsx)(g,{onChange:function(e,n){Z(n)},orientation:v?"horizontal":"vertical",variant:v?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:y.map((function(e,n){return e?(0,c.jsx)(a.Z,(0,s.Z)((0,s.Z)({className:t.tabHeader,value:"".concat(n),style:I},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,c.jsxs)(o.Z,{className:t.tabContentContainer,children:[m?null:b.map((function(e,n){return(0,c.jsx)(N,{classes:(0,s.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),m?(0,c.jsx)("div",{className:t.tabPanel,children:h}):null]})]})})):null}))},58400:function(e,n,t){var s=t(93433),r=t(29439),i=t(1413),o=t(72791),a=t(60364),c=t(11135),l=t(25787),u=t(40986),d=t(61889),h=t(21639),m=t(23814),f=t(42649),x=t(81207),p=t(92983),Z=t(59114),g=t(80184),j=(0,a.$j)(null,{setModalErrorSnackMessage:f.zb});n.Z=(0,l.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,i.Z)({},m.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},m.qg),m.VX),m.OR),m.jY))}))(j((function(e){var n=e.classes,t=e.selectedPolicy,i=void 0===t?[]:t,a=e.setSelectedPolicy,c=e.setModalErrorSnackMessage,l=(0,o.useState)([]),m=(0,r.Z)(l,2),f=m[0],j=m[1],v=(0,o.useState)(!1),y=(0,r.Z)(v,2),b=y[0],S=y[1],C=(0,o.useState)(""),A=(0,r.Z)(C,2),k=A[0],N=A[1],w=(0,o.useCallback)((function(){S(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;S(!1),j(n.sort(h.g4))})).catch((function(e){S(!1),c(e)}))}),[c]);(0,o.useEffect)((function(){S(!0)}),[]),(0,o.useEffect)((function(){b&&w()}),[b,w]);var P=f.filter((function(e){return e.name.includes(k)}));return(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[b&&(0,g.jsx)(u.Z,{}),f.length>0?(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(d.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){N(e)},value:k})})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(p.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,o=(0,s.Z)(i);r?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),a(o)},selectedItems:i,isLoading:b,records:P,entityName:"Policies",idField:"name",customPaperHeight:n.multiSelectTable})})]}):(0,g.jsx)("div",{className:n.noFound,children:"No Policies Available"})]})})})))},83658:function(e,n,t){var s=t(93433),r=t(29439),i=t(1413),o=t(72791),a=t(60364),c=t(11135),l=t(25787),u=t(40986),d=t(26181),h=t.n(d),m=t(61889),f=t(21639),x=t(23814),p=t(42649),Z=t(81207),g=t(92983),j=t(59114),v=t(80184),y={setModalErrorSnackMessage:p.zb},b=(0,a.$j)(null,y);n.Z=(0,l.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)({noFound:{textAlign:"center",padding:"10px 0"},actionsTitle:{fontWeight:400,color:"#000",fontSize:14,alignSelf:"center",marginRight:48,"@media (max-width: 900px)":{marginRight:0}},searchBox:{flex:1,marginLeft:"2rem"}},x.VX),x.OR),x.jY))}))(b((function(e){var n=e.classes,t=e.selectedGroups,i=e.setSelectedGroups,a=e.setModalErrorSnackMessage,c=(0,o.useState)([]),l=(0,r.Z)(c,2),d=l[0],x=l[1],p=(0,o.useState)(!1),y=(0,r.Z)(p,2),b=y[0],S=y[1],C=(0,o.useState)(""),A=(0,r.Z)(C,2),k=A[0],N=A[1],w=(0,o.useCallback)((function(){Z.Z.invoke("GET","/api/v1/groups").then((function(e){var n=h()(e,"groups",[]);n||(n=[]),x(n.sort(f.V2)),S(!1)})).catch((function(e){a(e),S(!1)}))}),[a]);(0,o.useEffect)((function(){S(!0)}),[]),(0,o.useEffect)((function(){b&&w()}),[b,w]);var P=t||[],E=d.filter((function(e){return e.includes(k)}));return(0,v.jsx)(o.Fragment,{children:(0,v.jsxs)(m.ZP,{item:!0,xs:12,children:[b&&(0,v.jsx)(u.Z,{}),null!==d&&d.length>0?(0,v.jsxs)(o.Fragment,{children:[(0,v.jsxs)(m.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,v.jsx)("label",{className:n.actionsTitle,children:"Assign Groups"}),(0,v.jsx)("div",{className:n.searchBox,children:(0,v.jsx)(j.Z,{placeholder:"Filter Groups",adornmentPosition:"end",onChange:N,value:k})})]}),(0,v.jsx)(m.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,v.jsx)(g.Z,{columns:[{label:"Group",elementKey:""}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,o=(0,s.Z)(P);return r?o.push(t):o=o.filter((function(e){return e!==t})),i(o),o},selectedItems:P,isLoading:b,records:E,entityName:"Groups",idField:"",customPaperHeight:n.multiSelectTable})})]}):(0,v.jsx)("div",{className:n.noFound,children:"No Groups Available"})]})})})))},44341:function(e,n,t){t.r(n),t.d(n,{default:function(){return ke}});var s=t(72791),r=t(62666),i=t(79271),o=t(60364),a=t(42649),c=t(50099),l=t(93433),u=t(29439),d=t(1413),h=t(11135),m=t(25787),f=t(81207),x=t(61889),p=t(40986),Z=t(21639),g=t(93656),j=t(23814),v=t(92983),y=t(32291),b=t(45248),S=t(23804),C=t(81806),A=t(74794),k=t(59114),N=t(75578),w=t(56087),P=t(40603),E=t(38442),M=t(80184),I=(0,N.Z)(s.lazy((function(){return t.e(7524).then(t.bind(t,67524))}))),R=(0,N.Z)(s.lazy((function(){return t.e(8771).then(t.bind(t,39134))}))),T=(0,N.Z)(s.lazy((function(){return t.e(9076).then(t.bind(t,49076))}))),F=(0,N.Z)(s.lazy((function(){return t.e(9221).then(t.bind(t,49221))}))),D={setErrorSnackMessage:a.Ih},B=(0,o.$j)(null,D),U=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},j.OR),j.qg),{},{searchField:(0,d.Z)((0,d.Z)({},j.qg.searchField),{},{marginRight:"auto",maxWidth:380})},j.VX),(0,j.Bz)(e.spacing(4))))}))(B((function(e){var n=e.classes,t=e.setErrorSnackMessage,r=e.history,i=(0,s.useState)([]),o=(0,u.Z)(i,2),a=o[0],c=o[1],d=(0,s.useState)(!0),h=(0,u.Z)(d,2),m=h[0],j=h[1],N=(0,s.useState)(!1),D=(0,u.Z)(N,2),B=D[0],U=D[1],K=(0,s.useState)(!1),O=(0,u.Z)(K,2),L=O[0],_=O[1],z=(0,s.useState)(null),G=(0,u.Z)(z,2),V=G[0],W=G[1],H=(0,s.useState)(!1),$=(0,u.Z)(H,2),q=$[0],Y=$[1],X=(0,s.useState)(""),J=(0,u.Z)(X,2),Q=J[0],ee=J[1],ne=(0,s.useState)([]),te=(0,u.Z)(ne,2),se=te[0],re=te[1],ie=(0,s.useState)(!1),oe=(0,u.Z)(ie,2),ae=oe[0],ce=oe[1],le=(0,E.F)(w.C3,[w.Ft.ADMIN_LIST_USERS]),ue=(0,E.F)(w.C3,[w.Ft.ADMIN_DELETE_USER]),de=(0,E.F)(w.C3,[w.Ft.ADMIN_GET_USER]),he=(0,E.F)(w.C3,[w.Ft.ADMIN_ADD_USER_TO_GROUP]);(0,s.useEffect)((function(){m&&(le?f.Z.invoke("GET","/api/v1/users").then((function(e){var n=null===e.users?[]:e.users;j(!1),c(n.sort(Z.LQ))})).catch((function(e){j(!1),t(e)})):j(!1))}),[m,t,le]);var me=a.filter((function(e){return e.accessKey.includes(Q)})),fe=(0,b.le)(localStorage.getItem("userLoggedIn")||""),xe=[{type:"view",onClick:function(e){r.push("".concat(w.gA.USERS,"/").concat(encodeURI(e.accessKey)))},disableButtonFunction:function(){return!de}},{type:"delete",onClick:function(e){_(!0),W(e)},disableButtonFunction:function(e){return e===fe||!ue}}];return(0,M.jsxs)(s.Fragment,{children:[B&&(0,M.jsx)(I,{open:B,selectedUser:V,closeModalAndRefresh:function(){U(!1),j(!0)}}),ae&&(0,M.jsx)(R,{open:ae,selectedUser:V,selectedGroup:null,closeModalAndRefresh:function(){ce(!1),j(!0)}}),L&&(0,M.jsx)(T,{deleteOpen:L,selectedUser:V,closeDeleteModalAndRefresh:function(e){!function(e){_(!1),e&&j(!0)}(e)}}),q&&(0,M.jsx)(F,{open:q,checkedUsers:se,closeModalAndRefresh:function(e){!function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];Y(!1),e&&re([])}(e)}}),(0,M.jsx)(y.Z,{label:"Users"}),(0,M.jsxs)(A.Z,{children:[(0,M.jsxs)(x.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,M.jsx)(k.Z,{placeholder:"Search Users",onChange:ee,overrideClass:n.searchField,value:Q}),(0,M.jsx)(E.s,{scopes:[w.Ft.ADMIN_ADD_USER_TO_GROUP],resource:w.C3,errorProps:{disabled:!0},children:(0,M.jsx)(P.Z,{tooltip:"Add to Group",text:"Add to Group",icon:(0,M.jsx)(g.ww,{}),color:"primary",disabled:se.length<=0,onClick:function(){se.length>0&&Y(!0)},variant:"outlined"})}),(0,M.jsx)(E.s,{scopes:[w.Ft.ADMIN_CREATE_USER,w.Ft.ADMIN_LIST_USER_POLICIES,w.Ft.ADMIN_LIST_GROUPS],resource:w.HQ,matchAll:!0,errorProps:{disabled:!0},children:(0,M.jsx)(P.Z,{tooltip:"Create User",text:"Create User",icon:(0,M.jsx)(g.dt,{}),color:"primary",onClick:function(){U(!0),W(null)},variant:"contained"})})]}),m&&(0,M.jsx)(p.Z,{}),!m&&(0,M.jsxs)(s.Fragment,{children:[a.length>0&&(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,M.jsx)(E.s,{scopes:[w.Ft.ADMIN_LIST_USERS],resource:w.C3,errorProps:{disabled:!0},children:(0,M.jsx)(v.Z,{itemActions:xe,columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:he?function(e){var n=e.target,t=n.value,s=n.checked,r=(0,l.Z)(se);return s?r.push(t):r=r.filter((function(e){return e!==t})),re(r),r}:void 0,selectedItems:se,isLoading:m,records:me,entityName:"Users",idField:"accessKey"})})}),(0,M.jsx)(x.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,M.jsx)(S.Z,{title:"Users",iconComponent:(0,M.jsx)(g.oy,{}),help:(0,M.jsxs)(s.Fragment,{children:["A MinIO user consists of a unique access key (username) and corresponding secret key (password). Clients must authenticate their identity by specifying both a valid access key (username) and the corresponding secret key (password) of an existing MinIO user.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"Each user can have one or more assigned policies that explicitly list the actions and resources to which that user has access. Users can also inherit policies from the groups in which they have membership.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"You can learn more at our"," ",(0,M.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===a.length&&(0,M.jsx)(x.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,M.jsx)(x.ZP,{item:!0,xs:8,children:(0,M.jsx)(S.Z,{title:"Users",iconComponent:(0,M.jsx)(g.oy,{}),help:(0,M.jsxs)(s.Fragment,{children:["A MinIO user consists of a unique access key (username) and corresponding secret key (password). Clients must authenticate their identity by specifying both a valid access key (username) and the corresponding secret key (password) of an existing MinIO user.",(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"Each user can have one or more assigned policies that explicitly list the actions and resources to which that user has access. Users can also inherit policies from the groups in which they have membership.",(0,M.jsx)(E.s,{scopes:[w.Ft.ADMIN_CREATE_USER,w.Ft.ADMIN_LIST_USER_POLICIES,w.Ft.ADMIN_LIST_GROUPS],matchAll:!0,resource:w.C3,children:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)("br",{}),(0,M.jsx)("br",{}),"To get started,"," ",(0,M.jsx)(C.Z,{onClick:function(){U(!0),W(null)},children:"Create a User"}),"."]})})]})})})})]})]})]})}))),K=t(37762),O=t(36151),L=t(83658),_=t(56028),z=t(54163),G={setModalErrorSnackMessage:a.zb},V=(0,o.$j)(null,G),W=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({buttonContainer:{textAlign:"right"}},j.bK),j.oO))}))(V((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,i=e.open,o=e.setModalErrorSnackMessage,a=(0,s.useState)(!1),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),m=(0,u.Z)(h,2),Z=m[0],g=m[1],j=(0,s.useState)(""),v=(0,u.Z)(j,2),y=v[0],b=v[1],S=(0,s.useState)(!1),C=(0,u.Z)(S,2),A=C[0],k=C[1],N=(0,s.useState)([]),w=(0,u.Z)(N,2),P=w[0],E=w[1],I=(0,s.useCallback)((function(){if(!r)return null;f.Z.invoke("GET","/api/v1/user?name=".concat(encodeURI(r))).then((function(e){d(!1),g(e.accessKey),E(e.memberOf||[]),k("enabled"===e.status)})).catch((function(e){d(!1),o(e)}))}),[r,o]);(0,s.useEffect)((function(){null===r?(g(""),b(""),E([])):I()}),[r,I]);var R=""!==Z.trim()&&(""!==y.trim()&&null===r||null!==r);return(0,M.jsx)(_.Z,{onClose:function(){t()},modalOpen:i,title:"Set Groups",titleIcon:(0,M.jsx)(z.Z,{}),children:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),l||(d(!0),null!==r?f.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURI(r)),{status:A?"enabled":"disabled",groups:P}).then((function(e){d(!1),t()})).catch((function(e){d(!1),o(e)})):f.Z.invoke("POST","/api/v1/users",{accessKey:Z,secretKey:y,groups:P}).then((function(e){d(!1),t()})).catch((function(e){d(!1),o(e)})))},children:(0,M.jsxs)(x.ZP,{container:!0,children:[(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,M.jsx)(L.Z,{selectedGroups:P,setSelectedGroups:function(e){E(e)}})}),(0,M.jsxs)(x.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,M.jsx)(O.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){null===r?(g(""),b(""),E([])):E([])},children:"Clear"}),(0,M.jsx)(O.Z,{type:"submit",variant:"contained",color:"primary",disabled:l||!R,children:"Save"})]}),l&&(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})})})})}))),H=t(58400),$={setModalErrorSnackMessage:a.zb},q=(0,o.$j)(null,$),Y=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({},j.oO),{},{buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(q((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,i=e.currentPolicies,o=e.setModalErrorSnackMessage,a=e.open,c=(0,s.useState)(!1),l=(0,u.Z)(c,2),d=l[0],h=l[1],m=(0,s.useState)([]),Z=(0,u.Z)(m,2),g=Z[0],j=Z[1],v=(0,s.useState)([]),y=(0,u.Z)(v,2),b=y[0],S=y[1];return(0,s.useEffect)((function(){if(a){var e,n=[],t=(0,K.Z)(i);try{for(t.s();!(e=t.n()).done;){var s=e.value;n.push(s.policy)}}catch(r){t.e(r)}finally{t.f()}j(n),S(n)}}),[a,r]),(0,M.jsxs)(_.Z,{onClose:function(){t()},modalOpen:a,title:"Set Policies",children:[(0,M.jsx)(H.Z,{selectedPolicy:b,setSelectedPolicy:S}),(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)("br",{})}),(0,M.jsxs)(x.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,M.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){S(g)},children:"Reset"}),(0,M.jsx)(O.Z,{type:"button",variant:"contained",color:"primary",disabled:d,onClick:function(){var e=r;h(!0),f.Z.invoke("PUT","/api/v1/set-policy",{name:b,entityName:e,entityType:"user"}).then((function(){h(!1),t()})).catch((function(e){h(!1),o(e)}))},children:"Save"})]}),d&&(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})}))),X=t(64554),J=t(92217),Q=t(37516),ee=t(21435),ne={setModalErrorSnackMessage:a.zb},te=(0,o.$j)(null,ne),se=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)({},j.bl),j.ID))}))(te((function(e){var n=e.classes,t=e.open,r=e.closeModalAndRefresh,i=e.setModalErrorSnackMessage,o=e.user,a=(0,s.useState)(!1),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),m=(0,u.Z)(h,2),Z=m[0],g=m[1],j=(0,s.useState)(""),v=(0,u.Z)(j,2),y=v[0],b=v[1],S=(0,s.useState)(""),C=(0,u.Z)(S,2),A=C[0],k=C[1],N=(0,s.useState)(!1),w=(0,u.Z)(N,2),P=w[0],E=w[1],I=(0,s.useState)(!1),R=(0,u.Z)(I,2),T=R[0],F=R[1];(0,s.useEffect)((function(){l&&(T?f.Z.invoke("POST","/api/v1/user/".concat(o,"/service-account-credentials"),{policy:Z,accessKey:y,secretKey:A}).then((function(e){d(!1),r(e)})).catch((function(e){d(!1),i(e)})):f.Z.invoke("POST","/api/v1/user/".concat(o,"/service-accounts"),{policy:Z}).then((function(e){d(!1),r(e)})).catch((function(e){d(!1),i(e)})))}),[l,d,i,Z,r,o,T,y,A]);return(0,M.jsx)(_.Z,{modalOpen:t,onClose:function(){r(null)},title:"Create Service Account",children:(0,M.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),d(!0)}(e)},children:[(0,M.jsxs)(x.ZP,{container:!0,className:n.modalFormScrollable,children:[(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsxs)("div",{className:n.infoDetails,children:["Service Accounts inherit the policy explicitly attached to the parent user and the policy attached to each group in which the parent user has membership. You can specify an optional JSON-formatted policy below to restrict the Service Account access to a subset of actions and resources explicitly allowed for the parent user.",(0,M.jsx)(X.Z,{sx:{paddingTop:"15px",paddingBottom:"15px"},children:"You cannot modify the Service Account optional policy after saving."})]})}),(0,M.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,M.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,M.jsx)(Q.Z,{value:"locking",id:"locking",name:"locking",checked:T,onChange:function(e){F(e.target.checked)},label:"Customize Credentials"}),T&&(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsxs)("div",{className:n.stackedInputs,children:[(0,M.jsx)(ee.Z,{value:y,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){b(e.target.value)}}),(0,M.jsx)(ee.Z,{value:A,label:"Secret Key",id:"secretKey",name:"secretKey",placeholder:"Enter Secret Key",onChange:function(e){k(e.target.value)}})]})})]}),(0,M.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,M.jsx)(Q.Z,{value:"locking",id:"locking",name:"locking",checked:P,onChange:function(e){E(e.target.checked)},label:"Restrict with policy"}),P&&(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,M.jsx)(J.Z,{label:"Policy ",value:Z,onBeforeChange:function(e,n,t){g(t)}})})]})]})]}),(0,M.jsxs)(x.ZP,{container:!0,children:[(0,M.jsxs)(x.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,M.jsx)(O.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){g("")},children:"Clear"}),(0,M.jsx)(O.Z,{type:"submit",variant:"contained",color:"primary",disabled:l,children:"Create"})]}),l&&(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})]})})}))),re=t(23956),ie=t(37798),oe=t(60680),ae=t(18303),ce=t(58493),le=t(14048),ue=(0,o.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:a.Ih}),de=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},j.qg),j.OR),{},{actionsTray:(0,d.Z)({},j.OR.actionsTray)},j.VX))}))(ue((function(e){var n=e.classes,t=e.user,r=e.setErrorSnackMessage,i=e.hasPolicy,o=(0,s.useState)([]),c=(0,u.Z)(o,2),l=c[0],d=c[1],h=(0,s.useState)(!1),m=(0,u.Z)(h,2),x=m[0],p=m[1],j=(0,s.useState)(!1),y=(0,u.Z)(j,2),b=y[0],S=y[1],C=(0,s.useState)(!1),A=(0,u.Z)(C,2),k=A[0],N=A[1],w=(0,s.useState)(null),E=(0,u.Z)(w,2),I=E[0],R=E[1],T=(0,s.useState)(!1),F=(0,u.Z)(T,2),D=F[0],B=F[1],U=(0,s.useState)(null),K=(0,u.Z)(U,2),O=K[0],L=K[1],_=(0,s.useState)([]),z=(0,u.Z)(_,2),G=z[0],V=z[1],W=(0,s.useState)(!1),H=(0,u.Z)(W,2),$=H[0],q=H[1],Y=(0,s.useState)(!1),J=(0,u.Z)(Y,2),Q=J[0],ee=J[1];(0,s.useEffect)((function(){ne()}),[]),(0,s.useEffect)((function(){x&&f.Z.invoke("GET","/api/v1/user/".concat(t,"/service-accounts")).then((function(e){var n=e.sort(Z.V2);p(!1),d(n)})).catch((function(e){r(e),p(!1)}))}),[x,p,d,r,t]);var ne=function(){p(!0)},te=[{type:"view",onClick:function(e){R(e),ee(!0)}},{type:"delete",onClick:function(e){R(e),N(!0)}}];return(0,M.jsxs)(s.Fragment,{children:[b&&(0,M.jsx)(se,{open:b,closeModalAndRefresh:function(e){!function(e){if(S(!1),ne(),null!==e){var n={console:{accessKey:"".concat(e.accessKey),secretKey:"".concat(e.secretKey),url:"".concat(e.url)}};L(n),B(!0)}}(e)},user:t}),k&&(0,M.jsx)(re.default,{deleteOpen:k,selectedServiceAccount:I,closeDeleteModalAndRefresh:function(e){!function(e){N(!1),e&&ne()}(e)}}),$&&(0,M.jsx)(ae.Z,{deleteOpen:$,selectedSAs:G,closeDeleteModalAndRefresh:function(e){q(!1),e&&((0,a.y1)("Service accounts deleted successfully."),V([]),p(!0))}}),D&&(0,M.jsx)(ie.default,{newServiceAccount:O,open:D,closeModal:function(){B(!1),L(null)},entity:"Service Account"}),Q&&(0,M.jsx)(le.Z,{open:Q,selectedAccessKey:I,closeModalAndRefresh:function(){ee(!1),p(!0)}}),(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(oe.Z,{children:"Service Accounts"}),(0,M.jsxs)(X.Z,{children:[(0,M.jsx)(P.Z,{tooltip:"Delete Selected",onClick:function(){q(!0)},text:"Delete Selected",icon:(0,M.jsx)(g.pJ,{}),color:"secondary",disabled:0===G.length,variant:"outlined"}),(0,M.jsx)(P.Z,{tooltip:"Create service account",text:"Create service account",variant:"contained",color:"primary",icon:(0,M.jsx)(g.dt,{}),onClick:function(){S(!0),S(!0),R(null)},disabled:!i})]})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(v.Z,{isLoading:x,records:l,entityName:"Service Accounts",idField:"",columns:[{label:"Service Account",elementKey:""}],itemActions:te,selectedItems:G,onSelect:function(e){return(0,ce._0)(e,V,G)},onSelectAll:function(){G.length!==l.length?V(l):V([])}})})]})}))),he=(0,o.$j)(null,{setModalErrorSnackMessage:a.zb}),me=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({buttonContainer:{textAlign:"right"}},j.ID),j.DF),j.bK),(0,j.Bz)(e.spacing(4))))}))(he((function(e){var n=e.classes,t=e.open,r=e.userName,i=e.closeModal,o=e.setModalErrorSnackMessage,a=(0,s.useState)(""),c=(0,u.Z)(a,2),l=c[0],d=c[1],h=(0,s.useState)(""),m=(0,u.Z)(h,2),Z=m[0],j=m[1],v=(0,s.useState)(!1),y=(0,u.Z)(v,2),b=y[0],S=y[1];return t?(0,M.jsx)(_.Z,{title:"Change User Password",modalOpen:t,onClose:function(){d(""),j(""),i()},titleIcon:(0,M.jsx)(g.I,{}),children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!b){if(S(!0),l.length<8)return o({errorMessage:"Passwords must be at least 8 characters long",detailedError:""}),void S(!1);var n={selectedUser:r,newSecretKey:l};f.Z.invoke("POST","/api/v1/account/change-user-password",n).then((function(e){S(!1),d(""),j(""),i()})).catch((function(e){S(!1),d(""),j(""),o(e)}))}}(e)},children:(0,M.jsxs)(x.ZP,{container:!0,children:[(0,M.jsxs)(x.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,M.jsxs)("div",{className:n.spacerBottom,children:["Change password for: ",r]}),(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,M.jsx)(ee.Z,{id:"new-password",name:"new-password",onChange:function(e){d(e.target.value)},label:"New Password",type:"password",value:l})}),(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,M.jsx)(ee.Z,{id:"re-new-password",name:"re-new-password",onChange:function(e){j(e.target.value)},label:"Type New Password Again",type:"password",value:Z})})]}),(0,M.jsx)(x.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,M.jsx)(O.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!(Z.length>0&&l===Z),children:"Save"})}),b&&(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})})}):null}))),fe=t(51691),xe=t(9505),pe=t(23508),Ze={setErrorSnackMessage:a.Ih},ge=(0,o.$j)(null,Ze)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,s=e.userName,i=e.setErrorSnackMessage,o=(0,xe.Z)((function(){r.Z.push(w.gA.USERS)}),(function(e){return i(e)})),a=(0,u.Z)(o,2),c=a[0],l=a[1];if(!s)return null;return(0,M.jsx)(pe.Z,{title:"Delete User",confirmText:"Delete",isOpen:t,isLoading:c,onConfirm:function(){l("DELETE","/api/v1/user?name=".concat(encodeURI(s)),{id:s})},onClose:function(){return n(!1)},titleIcon:(0,M.jsx)(g.Nv,{}),confirmationContent:(0,M.jsxs)(fe.Z,{children:["Are you sure you want to delete user ",(0,M.jsx)("br",{}),(0,M.jsx)("b",{children:s}),"?"]})})})),je=t(14917),ve=t(14662),ye=t(84669),be={setErrorSnackMessage:a.Ih},Se=(0,o.$j)(null,be),Ce=(0,m.Z)((function(e){return(0,h.Z)((0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({pageContainer:{border:"1px solid #EAEAEA"},statusLabel:{fontSize:".8rem",marginRight:".5rem"},statusValue:{fontWeight:"bold",fontSize:".9rem",marginRight:".5rem"},breadcrumLink:{textDecoration:"none",color:"black"}},j.OR),j.qg),j.VX),(0,j.Bz)(e.spacing(4))))}))(Se((function(e){var n=e.classes,t=e.match,i=(0,s.useState)(!1),o=(0,u.Z)(i,2),c=o[0],l=o[1],d=(0,s.useState)(!1),h=(0,u.Z)(d,2),m=h[0],p=h[1],Z=(0,s.useState)(!1),j=(0,u.Z)(Z,2),b=j[0],S=j[1],C=(0,s.useState)(!1),k=(0,u.Z)(C,2),N=k[0],E=k[1],I=(0,s.useState)(!1),R=(0,u.Z)(I,2),T=R[0],F=R[1],D=(0,s.useState)([]),B=(0,u.Z)(D,2),U=B[0],O=B[1],L=(0,s.useState)([]),_=(0,u.Z)(L,2),z=_[0],G=_[1],V=(0,s.useState)([]),H=(0,u.Z)(V,2),$=H[0],q=H[1],X=(0,s.useState)(!1),J=(0,u.Z)(X,2),ee=J[0],ne=J[1],te=(0,s.useState)(!1),se=(0,u.Z)(te,2),re=se[0],ie=se[1],ae=(0,s.useState)(!1),ce=(0,u.Z)(ae,2),le=ce[0],ue=ce[1],he=t.params.userName,fe=(0,s.useCallback)((function(){if(""===he)return null;l(!0),f.Z.invoke("GET","/api/v1/user?name=".concat(encodeURIComponent(he))).then((function(e){E(!1);var n=e.memberOf||[];O(n);var t,s=[],r=(0,K.Z)(n);try{for(r.s();!(t=r.n()).done;){var i=t.value;s.push({group:i})}}catch(d){r.e(d)}finally{r.f()}G(s);var o,a=[],c=(0,K.Z)(e.policy);try{for(c.s();!(o=c.n()).done;){var u=o.value;a.push({policy:u})}}catch(d){c.e(d)}finally{c.f()}q(a),F("enabled"===e.status),ue(e.hasPolicy),l(!1)})).catch((function(e){E(!1),l(!1),(0,a.zb)(e)}))}),[he]);(0,s.useEffect)((function(){fe()}),[fe]);return(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)(y.Z,{label:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)(ye.Z,{label:"User",to:w.gA.USERS})}),actions:(0,M.jsx)(s.Fragment,{})}),m&&(0,M.jsx)(W,{open:m,selectedUser:he,closeModalAndRefresh:function(){p(!1),fe()}}),b&&(0,M.jsx)(Y,{open:b,selectedUser:he,currentPolicies:$,closeModalAndRefresh:function(){S(!1),fe()}}),re&&(0,M.jsx)(ge,{deleteOpen:re,userName:he,closeDeleteModalAndRefresh:function(e){!function(e){ie(!1),e&&fe()}(e)}}),ee&&(0,M.jsx)(me,{open:ee,userName:he,closeModal:function(){return ne(!1)}}),(0,M.jsxs)(A.Z,{className:n.pageContainer,children:[(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsx)(je.Z,{icon:(0,M.jsx)(s.Fragment,{children:(0,M.jsx)(g.oy,{width:40})}),title:he,actions:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsx)("span",{className:n.statusLabel,children:"User Status:"}),(0,M.jsx)("span",{className:n.statusValue,children:T?"Enabled":"Disabled"}),(0,M.jsx)(Q.Z,{indicatorLabels:["Enabled","Disabled"],checked:T,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var e;F(!T),e=!T,N||(E(!0),f.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURIComponent(he)),{status:e?"enabled":"disabled",groups:U}).then((function(e){E(!1)})).catch((function(e){E(!1),(0,a.zb)(e)})))},switchOnly:!0}),(0,M.jsx)(P.Z,{tooltip:"Delete User",text:"",onClick:function(){ie(!0)},icon:(0,M.jsx)(g.XH,{}),color:"secondary",variant:"outlined"}),(0,M.jsx)(P.Z,{tooltip:"Change Password",text:"",onClick:function(){ne(!0)},icon:(0,M.jsx)(g.tv,{}),color:"primary",variant:"outlined"})]})})}),(0,M.jsx)(x.ZP,{item:!0,xs:12,children:(0,M.jsxs)(ve.Z,{children:[{tabConfig:{label:"Groups"},content:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(oe.Z,{children:"Groups"}),(0,M.jsx)(P.Z,{tooltip:"Add to Groups",text:"Add to Groups",onClick:function(){p(!0)},icon:(0,M.jsx)(g.dt,{}),color:"primary",variant:"contained"})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(v.Z,{columns:[{label:"Name",elementKey:"group"}],isLoading:c,records:z,entityName:"Groups",idField:"group"})})]})},{tabConfig:{label:"Service Accounts"},content:(0,M.jsx)(de,{user:he,hasPolicy:le})},{tabConfig:{label:"Policies"},content:(0,M.jsxs)(s.Fragment,{children:[(0,M.jsxs)("div",{className:n.actionsTray,children:[(0,M.jsx)(oe.Z,{children:"Policies"}),(0,M.jsx)(P.Z,{tooltip:"Assign Policies",text:"Assign Policies",onClick:function(){S(!0)},icon:(0,M.jsx)(g.v4,{}),color:"primary",variant:"contained"})]}),(0,M.jsx)("div",{className:n.tableBlock,children:(0,M.jsx)(v.Z,{itemActions:[{type:"view",onClick:function(e){r.Z.push("".concat(w.gA.POLICIES,"/").concat(e.policy))}}],columns:[{label:"Name",elementKey:"policy"}],isLoading:c,records:$,entityName:"Policies",idField:"policy"})})]})}]})})]})]})}))),Ae=(0,o.$j)((function(e){return{open:e.system.sidebarOpen}}),{setMenuOpen:a.gG}),ke=(0,i.EN)(Ae((function(){return(0,M.jsx)(i.F0,{history:r.Z,children:(0,M.jsxs)(i.rs,{children:[(0,M.jsx)(i.AW,{path:w.gA.USERS_VIEW,component:Ce}),(0,M.jsx)(i.AW,{path:w.gA.USERS,component:U}),(0,M.jsx)(i.AW,{component:c.Z})]})})})))},50099:function(e,n,t){t.d(n,{Z:function(){return l}});t(72791);var s=t(64554),r=t(20890),i=t(23060),o=t(80184);function a(){return(0,o.jsxs)(r.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,o.jsx)(i.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var c=t(74794),l=function(){return(0,o.jsx)(c.Z,{children:(0,o.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,o.jsx)(s.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,o.jsx)(s.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,o.jsx)(s.Z,{mt:5,children:(0,o.jsx)(a,{})})]})})}},23060:function(e,n,t){t.d(n,{Z:function(){return A}});var s=t(29439),r=t(4942),i=t(63366),o=t(87462),a=t(72791),c=t(28182),l=t(90767),u=t(18529),d=t(12065),h=t(14036),m=t(47630),f=t(93736),x=t(23031),p=t(42071),Z=t(20890),g=t(95159);function j(e){return(0,g.Z)("MuiLink",e)}var v=(0,t(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),y=t(80184),b=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},C=(0,m.ZP)(Z.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["underline".concat((0,h.Z)(t.underline))],"button"===t.component&&n.button]}})((function(e){var n=e.theme,t=e.ownerState,s=(0,u.D)(n,"palette.".concat(function(e){return S[e]||e}(t.color)))||t.color;return(0,o.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==s?(0,d.Fq)(s,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===t.component&&(0,r.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"}))})),A=a.forwardRef((function(e,n){var t=(0,f.Z)({props:e,name:"MuiLink"}),r=t.className,u=t.color,d=void 0===u?"primary":u,m=t.component,Z=void 0===m?"a":m,g=t.onBlur,v=t.onFocus,S=t.TypographyClasses,A=t.underline,k=void 0===A?"always":A,N=t.variant,w=void 0===N?"inherit":N,P=(0,i.Z)(t,b),E=(0,x.Z)(),M=E.isFocusVisibleRef,I=E.onBlur,R=E.onFocus,T=E.ref,F=a.useState(!1),D=(0,s.Z)(F,2),B=D[0],U=D[1],K=(0,p.Z)(n,T),O=(0,o.Z)({},t,{color:d,component:Z,focusVisible:B,underline:k,variant:w}),L=function(e){var n=e.classes,t=e.component,s=e.focusVisible,r=e.underline,i={root:["root","underline".concat((0,h.Z)(r)),"button"===t&&"button",s&&"focusVisible"]};return(0,l.Z)(i,j,n)}(O);return(0,y.jsx)(C,(0,o.Z)({className:(0,c.Z)(L.root,r),classes:S,color:d,component:Z,onBlur:function(e){I(e),!1===M.current&&U(!1),g&&g(e)},onFocus:function(e){R(e),!0===M.current&&U(!0),v&&v(e)},ref:K,ownerState:O,variant:w},P))}))}}]); -//# sourceMappingURL=9299.5442941e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9299.5442941e.chunk.js.map b/portal-ui/build/static/js/9299.5442941e.chunk.js.map deleted file mode 100644 index 62af699cd..000000000 --- a/portal-ui/build/static/js/9299.5442941e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9299.5442941e.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Account/DeleteServiceAccount.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/PanelTitle/PanelTitle.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/PolicySelectors.tsx","screens/Console/Users/GroupsSelectors.tsx","screens/Console/Users/ListUsers.tsx","screens/Console/Users/ChangeUserGroups.tsx","screens/Console/Users/SetUserPolicies.tsx","screens/Console/Users/AddUserServiceAccount.tsx","screens/Console/Users/UserServiceAccountsPanel.tsx","screens/Console/Account/ChangeUserPasswordModal.tsx","screens/Console/Users/DeleteUserString.tsx","screens/Console/Users/UserDetails.tsx","screens/Console/Users/Users.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 { 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 { 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 { 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 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","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, { 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, { 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 Grid from \"@mui/material/Grid\";\n\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { GroupsList } from \"../Groups/types\";\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 selectedGroups: string[];\n setSelectedGroups: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n noFound: {\n textAlign: \"center\",\n padding: \"10px 0\",\n },\n actionsTitle: {\n fontWeight: 400,\n color: \"#000\",\n fontSize: 14,\n alignSelf: \"center\",\n\n marginRight: 48,\n \"@media (max-width: 900px)\": {\n marginRight: 0,\n },\n },\n searchBox: {\n flex: 1,\n marginLeft: \"2rem\",\n },\n ...tableStyles,\n ...actionsTray,\n ...selectorsCommon,\n });\n\nconst GroupsSelectors = ({\n classes,\n selectedGroups,\n setSelectedGroups,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchGroups = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/groups`)\n .then((res: GroupsList) => {\n let groups = get(res, \"groups\", []);\n\n if (!groups) {\n groups = [];\n }\n setRecords(groups.sort(stringSort));\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 fetchGroups();\n }\n }, [loading, fetchGroups]);\n\n const selGroups = !selectedGroups ? [] : selectedGroups;\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[] = [...selGroups]; // 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 setSelectedGroups(elements);\n\n return elements;\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter)\n );\n\n return (\n \n \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n\n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Groups Available
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(GroupsSelectors));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { Grid, LinearProgress } from \"@mui/material\";\nimport { User, UsersList } from \"./types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport { GroupsIcon, AddIcon, UsersIcon } from \"../../../icons\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { decodeFileName } from \"../../../common/utils\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n S3_ALL_RESOURCES,\n} from \"../../../common/SecureComponent/permissions\";\n\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nconst AddUser = withSuspense(React.lazy(() => import(\"./AddUser\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\"))\n);\nconst DeleteUser = withSuspense(React.lazy(() => import(\"./DeleteUser\")));\nconst AddToGroup = withSuspense(React.lazy(() => import(\"./BulkAddToGroup\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IUsersProps {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListUsers = ({ classes, setErrorSnackMessage, history }: IUsersProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [addScreenOpen, setAddScreenOpen] = useState(false);\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedUser, setSelectedUser] = useState(null);\n const [addGroupOpen, setAddGroupOpen] = useState(false);\n const [filter, setFilter] = useState(\"\");\n const [checkedUsers, setCheckedUsers] = useState([]);\n const [policyOpen, setPolicyOpen] = useState(false);\n\n const displayListUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_USERS,\n ]);\n\n const deleteUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_DELETE_USER,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const addUserToGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_ADD_USER_TO_GROUP,\n ]);\n\n const closeAddModalAndRefresh = () => {\n setAddScreenOpen(false);\n setLoading(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n setLoading(true);\n }\n };\n\n const closeAddGroupBulk = (unCheckAll: boolean = false) => {\n setAddGroupOpen(false);\n if (unCheckAll) {\n setCheckedUsers([]);\n }\n };\n\n useEffect(() => {\n if (loading) {\n if (displayListUsers) {\n api\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n const users = res.users === null ? [] : res.users;\n\n setLoading(false);\n setRecords(users.sort(usersSort));\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setErrorSnackMessage, displayListUsers]);\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.accessKey.includes(filter)\n );\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[] = [...checkedUsers]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedUsers(elements);\n\n return elements;\n };\n\n const viewAction = (selectionElement: any): void => {\n history.push(`${IAM_PAGES.USERS}/${encodeURI(selectionElement.accessKey)}`);\n };\n\n const deleteAction = (selectionElement: any): void => {\n setDeleteOpen(true);\n setSelectedUser(selectionElement);\n };\n\n const userLoggedIn = decodeFileName(\n localStorage.getItem(\"userLoggedIn\") || \"\"\n );\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewUser,\n },\n {\n type: \"delete\",\n onClick: deleteAction,\n disableButtonFunction: (topValue: any) =>\n topValue === userLoggedIn || !deleteUser,\n },\n ];\n\n return (\n \n {addScreenOpen && (\n {\n closeAddModalAndRefresh();\n }}\n />\n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n setLoading(true);\n }}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {addGroupOpen && (\n {\n closeAddGroupBulk(close);\n }}\n />\n )}\n \n \n \n \n \n }\n color=\"primary\"\n disabled={checkedUsers.length <= 0}\n onClick={() => {\n if (checkedUsers.length > 0) {\n setAddGroupOpen(true);\n }\n }}\n variant={\"outlined\"}\n />\n \n \n }\n color=\"primary\"\n onClick={() => {\n setAddScreenOpen(true);\n setSelectedUser(null);\n }}\n variant={\"contained\"}\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 MinIO user consists of a unique access key (username)\n and corresponding secret key (password). Clients must\n authenticate their identity by specifying both a valid\n access key (username) and the corresponding secret key\n (password) of an existing MinIO user.\n
    \n
    \n Each user can have one or more assigned policies that\n explicitly list the actions and resources to which that\n user has access. Users can also inherit policies from\n the groups in which they have membership.\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 MinIO user consists of a unique access key (username)\n and corresponding secret key (password). Clients must\n authenticate their identity by specifying both a valid\n access key (username) and the corresponding secret key\n (password) of an existing MinIO user.\n
    \n
    \n Each user can have one or more assigned policies that\n explicitly list the actions and resources to which that\n user has access. Users can also inherit policies from\n the groups in which they have membership.\n \n \n
    \n
    \n To get started,{\" \"}\n {\n setAddScreenOpen(true);\n setSelectedUser(null);\n }}\n >\n Create a User\n \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(ListUsers));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalBasic,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\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 AddMembersToGroup from \"../../../icons/AddMembersToGroupIcon\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...spacingUtils,\n ...modalBasic,\n });\n\ninterface IChangeUserGroupsContentProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: string;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ChangeUserGroups = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n open,\n setModalErrorSnackMessage,\n}: IChangeUserGroupsContentProps) => {\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\n const getUserInformation = useCallback(() => {\n if (!selectedUser) {\n return null;\n }\n\n api\n .invoke(\"GET\", `/api/v1/user?name=${encodeURI(selectedUser)}`)\n .then((res) => {\n setAddLoading(false);\n setAccessKey(res.accessKey);\n setSelectedGroups(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 (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedUser !== null) {\n api\n .invoke(\"PUT\", `/api/v1/user?name=${encodeURI(selectedUser)}`, {\n status: enabled ? \"enabled\" : \"disabled\",\n groups: selectedGroups,\n })\n .then((_) => {\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 })\n .then((_) => {\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={\"Set Groups\"}\n titleIcon={}\n >\n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n setSelectedGroups(elements);\n }}\n />\n \n \n \n Clear\n \n\n \n Save\n \n \n {addLoading && (\n \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(ChangeUserGroups));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { modalBasic } from \"../Common/FormComponents/common/styleLibrary\";\nimport { IPolicyItem } 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 \"../Policies/PolicySelectors\";\n\ninterface ISetUserPoliciesProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: string;\n currentPolicies: IPolicyItem[];\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \".9rem\",\n },\n });\n\nconst SetUserPolicies = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n currentPolicies,\n setModalErrorSnackMessage,\n open,\n}: ISetUserPoliciesProps) => {\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n\n const SetUserPoliciesAction = () => {\n let entity = \"user\";\n let value = selectedUser;\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 resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n };\n\n useEffect(() => {\n if (open) {\n const userPolicy: string[] = [];\n for (let pol of currentPolicies) {\n userPolicy.push(pol.policy);\n }\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedUser]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n modalOpen={open}\n title=\"Set Policies\"\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(SetUserPolicies));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 Grid from \"@mui/material/Grid\";\nimport { Box, Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalStyleUtils,\n serviceAccountStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../common/api\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...serviceAccountStyles,\n ...modalStyleUtils,\n });\n\ninterface IAddUserServiceAccountProps {\n classes: any;\n open: boolean;\n user: string;\n closeModalAndRefresh: (res: NewServiceAccount | null) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst AddUserServiceAccount = ({\n classes,\n open,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n user,\n}: IAddUserServiceAccountProps) => {\n const [addSending, setAddSending] = useState(false);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [addCredentials, setAddCredentials] = useState(false);\n\n useEffect(() => {\n if (addSending) {\n if (addCredentials) {\n api\n .invoke(\"POST\", `/api/v1/user/${user}/service-account-credentials`, {\n policy: policyDefinition,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n closeModalAndRefresh(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", `/api/v1/user/${user}/service-accounts`, {\n policy: policyDefinition,\n })\n .then((res) => {\n setAddSending(false);\n closeModalAndRefresh(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setModalErrorSnackMessage(err);\n });\n }\n }\n }, [\n addSending,\n setAddSending,\n setModalErrorSnackMessage,\n policyDefinition,\n closeModalAndRefresh,\n user,\n addCredentials,\n accessKey,\n secretKey,\n ]);\n\n const addUserServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyDefinition(\"\");\n };\n\n return (\n {\n closeModalAndRefresh(null);\n }}\n title={`Create Service Account`}\n >\n ) => {\n addUserServiceAccount(e);\n }}\n >\n \n \n
    \n Service Accounts inherit the policy explicitly attached to the\n parent user and the policy attached to each group in which the\n parent user has membership. You can specify an optional\n JSON-formatted policy below to restrict the Service Account access\n to a subset of actions and resources explicitly allowed for the\n parent user.\n \n You cannot modify the Service Account optional policy after\n saving.\n \n
    \n
    \n \n \n ) => {\n setAddCredentials(event.target.checked);\n }}\n label={\"Customize Credentials\"}\n />\n\n {addCredentials && (\n \n
    \n {\n setAccessKey(e.target.value);\n }}\n />\n {\n setSecretKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n
    \n \n ) => {\n setIsRestrictedByPolicy(event.target.checked);\n }}\n label={\"Restrict with policy\"}\n />\n\n {isRestrictedByPolicy && (\n \n {\n setPolicyDefinition(value);\n }}\n />\n \n )}\n \n
    \n
    \n \n \n \n Clear\n \n \n Create\n \n \n {addSending && (\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(AddUserServiceAccount));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Box } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../store\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../actions\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport AddUserServiceAccount from \"./AddUserServiceAccount\";\nimport DeleteServiceAccount from \"../Account/DeleteServiceAccount\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { AddIcon, DeleteIcon } from \"../../../icons\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport DeleteMultipleServiceAccounts from \"./DeleteMultipleServiceAccounts\";\nimport { selectSAs } from \"../../Console/Configurations/utils\";\nimport ServiceAccountPolicy from \"../Account/ServiceAccountPolicy\";\n\ninterface IUserServiceAccountsProps {\n classes: any;\n user: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n hasPolicy: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n actionsTray: {\n ...actionsTray.actionsTray,\n },\n ...tableStyles,\n });\n\nconst UserServiceAccountsPanel = ({\n classes,\n user,\n setErrorSnackMessage,\n hasPolicy,\n}: IUserServiceAccountsProps) => {\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 [selectedServiceAccount, setSelectedServiceAccount] = useState<\n string | null\n >(null);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [selectedSAs, setSelectedSAs] = useState([]);\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [policyOpen, setPolicyOpen] = useState(false);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/user/${user}/service-accounts`)\n .then((res: string[]) => {\n const serviceAccounts = res.sort(stringSort);\n setLoading(false);\n setRecords(serviceAccounts);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoading(false);\n });\n }\n }, [loading, setLoading, setRecords, setErrorSnackMessage, user]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const closeAddModalAndRefresh = (res: NewServiceAccount | null) => {\n setAddScreenOpen(false);\n fetchRecords();\n\n if (res !== null) {\n const nsa: NewServiceAccount = {\n console: {\n accessKey: `${res.accessKey}`,\n secretKey: `${res.secretKey}`,\n url: `${res.url}`,\n },\n };\n setNewServiceAccount(nsa);\n setShowNewCredentials(true);\n }\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n if (refresh) {\n setSnackBarMessage(`Service accounts deleted successfully.`);\n setSelectedSAs([]);\n setLoading(true);\n }\n };\n\n const selectAllItems = () => {\n if (selectedSAs.length === records.length) {\n setSelectedSAs([]);\n return;\n }\n setSelectedSAs(records);\n };\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setNewServiceAccount(null);\n };\n\n const policyModalOpen = (selectedServiceAccount: string) => {\n setSelectedServiceAccount(selectedServiceAccount);\n setPolicyOpen(true);\n };\n\n const confirmDeleteServiceAccount = (selectedServiceAccount: string) => {\n setSelectedServiceAccount(selectedServiceAccount);\n setDeleteOpen(true);\n };\n\n const closePolicyModal = () => {\n setPolicyOpen(false);\n setLoading(true);\n };\n\n const tableActions = [\n { type: \"view\", onClick: policyModalOpen },\n { type: \"delete\", onClick: confirmDeleteServiceAccount },\n ];\n\n return (\n \n {addScreenOpen && (\n {\n closeAddModalAndRefresh(res);\n }}\n user={user}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {deleteMultipleOpen && (\n \n )}\n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n {policyOpen && (\n \n )}\n
    \n Service Accounts\n \n {\n setDeleteMultipleOpen(true);\n }}\n text={\"Delete Selected\"}\n icon={}\n color=\"secondary\"\n disabled={selectedSAs.length === 0}\n variant={\"outlined\"}\n />\n }\n onClick={() => {\n setAddScreenOpen(true);\n setAddScreenOpen(true);\n setSelectedServiceAccount(null);\n }}\n disabled={!hasPolicy}\n />\n \n
    \n
    \n selectSAs(e, setSelectedSAs, selectedSAs)}\n onSelectAll={selectAllItems}\n />\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UserServiceAccountsPanel));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport {\n containerForHeader,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ChangeUserPasswordRequest } from \"../Buckets/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport { ChangePasswordIcon } from \"../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IChangeUserPasswordProps {\n classes: any;\n open: boolean;\n userName: string;\n closeModal: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ChangeUserPassword = ({\n classes,\n open,\n userName,\n closeModal,\n setModalErrorSnackMessage,\n}: IChangeUserPasswordProps) => {\n const [newPassword, setNewPassword] = useState(\"\");\n const [reNewPassword, setReNewPassword] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const changeUserPassword = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (loading) {\n return;\n }\n setLoading(true);\n\n if (newPassword.length < 8) {\n setModalErrorSnackMessage({\n errorMessage: \"Passwords must be at least 8 characters long\",\n detailedError: \"\",\n });\n setLoading(false);\n return;\n }\n\n let request: ChangeUserPasswordRequest = {\n selectedUser: userName,\n newSecretKey: newPassword,\n };\n\n api\n .invoke(\"POST\", \"/api/v1/account/change-user-password\", request)\n .then((res) => {\n setLoading(false);\n setNewPassword(\"\");\n setReNewPassword(\"\");\n closeModal();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setNewPassword(\"\");\n setReNewPassword(\"\");\n setModalErrorSnackMessage(err);\n });\n };\n\n return open ? (\n {\n setNewPassword(\"\");\n setReNewPassword(\"\");\n closeModal();\n }}\n titleIcon={}\n >\n ) => {\n changeUserPassword(e);\n }}\n >\n \n \n
    \n Change password for: {userName}\n
    \n \n ) => {\n setNewPassword(event.target.value);\n }}\n label=\"New Password\"\n type=\"password\"\n value={newPassword}\n />\n \n \n ) => {\n setReNewPassword(event.target.value);\n }}\n label=\"Type New Password Again\"\n type=\"password\"\n value={reNewPassword}\n />\n \n
    \n \n 0 && newPassword === reNewPassword)\n }\n >\n Save\n \n \n {loading && (\n \n \n \n )}\n
    \n \n \n ) : null;\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ChangeUserPassword));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 history from \"../../../history\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IDeleteUserProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n userName: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteUserString = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n userName,\n setErrorSnackMessage,\n}: IDeleteUserProps) => {\n const onDelSuccess = () => {\n history.push(IAM_PAGES.USERS);\n };\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!userName) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/user?name=${encodeURI(userName)}`, {\n id: userName,\n });\n };\n\n return (\n }\n confirmationContent={\n \n Are you sure you want to delete user
    \n {userName}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteUserString);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 } from \"@mui/material\";\nimport {\n AddIcon,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n TrashIcon,\n UsersIcon,\n} from \"../../../icons\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { IPolicyItem } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport ChangeUserGroups from \"./ChangeUserGroups\";\nimport SetUserPolicies from \"./SetUserPolicies\";\nimport history from \"../../../history\";\nimport UserServiceAccountsPanel from \"./UserServiceAccountsPanel\";\nimport ChangeUserPasswordModal from \"../Account/ChangeUserPasswordModal\";\nimport DeleteUserString from \"./DeleteUserString\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport BackLink from \"../../../common/BackLink\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n },\n statusLabel: {\n fontSize: \".8rem\",\n marginRight: \".5rem\",\n },\n statusValue: {\n fontWeight: \"bold\",\n fontSize: \".9rem\",\n marginRight: \".5rem\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...actionsTray,\n ...searchField,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IUserDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\ninterface IGroupItem {\n group: string;\n}\n\nconst UserDetails = ({ classes, match }: IUserDetailsProps) => {\n const [loading, setLoading] = useState(false);\n const [addGroupOpen, setAddGroupOpen] = useState(false);\n const [policyOpen, setPolicyOpen] = useState(false);\n const [addLoading, setAddLoading] = useState(false);\n\n const [enabled, setEnabled] = useState(false);\n const [selectedGroups, setSelectedGroups] = useState([]);\n const [currentGroups, setCurrentGroups] = useState([]);\n const [currentPolicies, setCurrentPolicies] = useState([]);\n const [changeUserPasswordModalOpen, setChangeUserPasswordModalOpen] =\n useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [hasPolicy, setHasPolicy] = useState(false);\n\n const userName = match.params[\"userName\"];\n\n const changeUserPassword = () => {\n setChangeUserPasswordModalOpen(true);\n };\n\n const deleteUser = () => {\n setDeleteOpen(true);\n };\n\n const getUserInformation = useCallback(() => {\n if (userName === \"\") {\n return null;\n }\n setLoading(true);\n api\n .invoke(\"GET\", `/api/v1/user?name=${encodeURIComponent(userName)}`)\n .then((res) => {\n setAddLoading(false);\n const memberOf = res.memberOf || [];\n setSelectedGroups(memberOf);\n let currentGroups: IGroupItem[] = [];\n for (let group of memberOf) {\n currentGroups.push({\n group: group,\n });\n }\n setCurrentGroups(currentGroups);\n let currentPolicies: IPolicyItem[] = [];\n for (let policy of res.policy) {\n currentPolicies.push({\n policy: policy,\n });\n }\n setCurrentPolicies(currentPolicies);\n setEnabled(res.status === \"enabled\");\n setHasPolicy(res.hasPolicy);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [userName]);\n\n const saveRecord = (isEnabled: boolean) => {\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/user?name=${encodeURIComponent(userName)}`, {\n status: isEnabled ? \"enabled\" : \"disabled\",\n groups: selectedGroups,\n })\n .then((_) => {\n setAddLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n getUserInformation();\n }, [getUserInformation]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n getUserInformation();\n }\n };\n\n return (\n \n \n \n \n }\n actions={}\n />\n {addGroupOpen && (\n {\n setAddGroupOpen(false);\n getUserInformation();\n }}\n />\n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n getUserInformation();\n }}\n />\n )}\n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n {changeUserPasswordModalOpen && (\n setChangeUserPasswordModalOpen(false)}\n />\n )}\n \n \n \n \n \n }\n title={userName}\n actions={\n \n User Status:\n \n {enabled ? \"Enabled\" : \"Disabled\"}\n \n {\n setEnabled(!enabled);\n saveRecord(!enabled);\n }}\n switchOnly\n />\n\n }\n color=\"secondary\"\n variant={\"outlined\"}\n />\n\n }\n color=\"primary\"\n variant={\"outlined\"}\n />\n \n }\n />\n \n\n \n \n {{\n tabConfig: {\n label: \"Groups\",\n },\n content: (\n \n
    \n Groups\n {\n setAddGroupOpen(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Service Accounts\",\n },\n content: (\n \n ),\n }}\n {{\n tabConfig: {\n label: \"Policies\",\n },\n content: (\n \n
    \n Policies\n\n {\n setPolicyOpen(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n
    \n
    \n {\n history.push(\n `${IAM_PAGES.POLICIES}/${policy.policy}`\n );\n },\n },\n ]}\n columns={[{ label: \"Name\", elementKey: \"policy\" }]}\n isLoading={loading}\n records={currentPolicies}\n entityName=\"Policies\"\n idField=\"policy\"\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(UserDetails));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport history from \"../../../history\";\nimport { 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\";\n\nimport ListUsers from \"./ListUsers\";\nimport UserDetails from \"./UserDetails\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Users = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default withRouter(connector(Users));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","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","mapDispatchToProps","setErrorSnackMessage","connector","connect","wrapText","maxWidth","whiteSpace","wordWrap","closeDeleteModalAndRefresh","deleteOpen","selectedServiceAccount","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","onClose","confirmationContent","root","padding","margin","border","backgroundColor","cursor","info","main","fontFamily","children","rest","container","flexFlow","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","credentialTitle","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","RBIconButton","id","consoleExtras","itemMap","url","api","path","JSON","stringify","variant","length","allCredentials","headerBarIcon","headerBarSubheader","screenTitle","justifyContent","borderBottom","titleColumn","leftItems","rightItems","subTitle","actions","Context","React","TabContext","props","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","clsx","hidden","role","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","marginBottom","tabContentContainer","tabPanel","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","content","Box","onChange","event","newValue","orientation","scrollButtons","tabList","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","setModalErrorSnackMessage","noFound","searchBox","flex","fieldLabel","tableBlock","tableStyles","filterBox","searchField","actionsTray","selectorsCommon","selectedPolicy","setSelectedPolicy","useState","records","setRecords","loading","filter","setFilter","fetchPolicies","useCallback","then","res","policies","sort","policySort","catch","useEffect","filteredRecords","elementItem","includes","placeholder","columns","elementKey","onSelect","e","targetD","target","checked","elements","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","actionsTitle","alignSelf","marginLeft","selectedGroups","setSelectedGroups","fetchGroups","groups","stringSort","selGroups","adornmentPosition","AddUser","withSuspense","SetPolicy","DeleteUser","AddToGroup","containerForHeader","history","setLoading","addScreenOpen","setAddScreenOpen","setDeleteOpen","selectedUser","setSelectedUser","addGroupOpen","setAddGroupOpen","checkedUsers","setCheckedUsers","policyOpen","setPolicyOpen","displayListUsers","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deleteUser","viewUser","addUserToGroup","users","usersSort","userLoggedIn","decodeFileName","localStorage","getItem","tableActions","type","selectionElement","IAM_PAGES","encodeURI","disableButtonFunction","topValue","Fragment","closeModalAndRefresh","selectedGroup","refresh","close","unCheckAll","closeAddGroupBulk","PageHeader","PageLayout","SearchBox","overrideClass","SecureComponent","scopes","resource","errorProps","disabled","S3_ALL_RESOURCES","matchAll","LinearProgress","TableWrapper","itemActions","undefined","HelpBox","iconComponent","help","href","rel","alignContent","AButton","spacingUtils","modalBasic","addLoading","setAddLoading","setAccessKey","setSecretKey","enabled","setEnabled","getUserInformation","memberOf","status","sendEnabled","trim","noValidate","autoComplete","onSubmit","preventDefault","_","GroupsSelectors","Button","spacerRight","currentPolicies","actualPolicy","setActualPolicy","userPolicy","pol","policy","PolicySelectors","clearButton","entityType","serviceAccountStyles","modalStyleUtils","user","addSending","setAddSending","policyDefinition","setPolicyDefinition","isRestrictedByPolicy","setIsRestrictedByPolicy","addCredentials","setAddCredentials","addUserServiceAccount","modalFormScrollable","infoDetails","FormSwitchWrapper","stackedInputs","InputBoxWrapper","codeMirrorContainer","CodeMirrorWrapper","onBeforeChange","editor","data","modalButtonBar","state","session","console","hasPolicy","setSelectedServiceAccount","showNewCredentials","setShowNewCredentials","setNewServiceAccount","selectedSAs","setSelectedSAs","deleteMultipleOpen","setDeleteMultipleOpen","fetchRecords","serviceAccounts","nsa","closeAddModalAndRefresh","DeleteServiceAccount","DeleteMultipleServiceAccounts","setSnackBarMessage","CredentialsPrompt","ServiceAccountPolicy","selectedAccessKey","PanelTitle","selectSAs","onSelectAll","formFieldStyles","userName","newPassword","setNewPassword","reNewPassword","setReNewPassword","errorMessage","detailedError","request","newSecretKey","changeUserPassword","spacerBottom","formFieldRow","ConfirmDialog","DialogContentText","pageContainer","statusLabel","statusValue","breadcrumLink","match","currentGroups","setCurrentGroups","setCurrentPolicies","changeUserPasswordModalOpen","setChangeUserPasswordModalOpen","setHasPolicy","params","group","BackLink","ChangeUserPasswordModal","ScreenTitle","indicatorLabels","isEnabled","switchOnly","VerticalTabs","system","sidebarOpen","setMenuOpen","withRouter","component","UserDetails","ListUsers","NotFoundPage","Copyright","Typography","align","Link","Date","getFullYear","fontStyle","mt","getLinkUtilityClass","colorTransformations","textPrimary","secondary","textSecondary","error","LinkRoot","capitalize","underline","button","getPath","transformDeprecatedColors","textDecorationColor","alpha","WebkitTapHighlightColor","outline","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","onBlur","onFocus","TypographyClasses","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9362.63d03757.chunk.js b/portal-ui/build/static/js/9362.63d03757.chunk.js deleted file mode 100644 index 64e149f1b..000000000 --- a/portal-ui/build/static/js/9362.63d03757.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9362,8760,2879],{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},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},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});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"),m=(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=n(14036),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],y=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.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,h.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),j=(0,u.jsx)(v,{}),w=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?j:l,p=s.color,v=void 0===p?"primary":p,m=s.icon,Z=void 0===m?w:m,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,S=void 0===g?P:g,E=s.inputProps,C=s.size,I=void 0===C?"medium":C,M=(0,r.Z)(s,k),H=z?S:Z,L=z?S:d,O=(0,i.Z)({},s,{color:v,indeterminate:z,size:I}),R=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,h.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(O);return(0,u.jsx)(y,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},E),icon:a.cloneElement(H,{fontSize:null!=(n=H.props.fontSize)?n:I}),checkedIcon:a.cloneElement(L,{fontSize:null!=(o=L.props.fontSize)?o:I}),ownerState:O,ref:t},M,{classes:R}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});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),m=n(95159);function h(e){return(0,m.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),y=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,m=n.component,Z=void 0===m?"div":m,y=n.disablePointerEvents,j=void 0!==y&&y,w=n.disableTypography,P=void 0!==w&&w,g=n.position,S=n.variant,E=(0,r.Z)(n,z),C=(0,p.Z)()||{},I=S;S&&C.variant,C&&!I&&(I=C.variant);var M=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:j,position:g,variant:I}),H=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,h,t)}(M);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,i.Z)({as:Z,ownerState:M,className:(0,c.Z)(H.root,v),ref:t},E,{children:"string"!==typeof o||P?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(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=9362.63d03757.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9362.63d03757.chunk.js.map b/portal-ui/build/static/js/9362.63d03757.chunk.js.map deleted file mode 100644 index f27cc8175..000000000 --- a/portal-ui/build/static/js/9362.63d03757.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9362.63d03757.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/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":["\"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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_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/9449.035d0f2d.chunk.js b/portal-ui/build/static/js/9449.035d0f2d.chunk.js deleted file mode 100644 index eda25c945..000000000 --- a/portal-ui/build/static/js/9449.035d0f2d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9449],{99449:function(e,a,t){t.r(a),t.d(a,{default:function(){return w}});var n=t(29439),s=t(1413),i=t(72791),l=t(60364),r=t(11135),o=t(25787),c=t(61889),d=t(23814),u=t(51691),m=t(10703),g=t(42649),h=t(93433),x=t(56028),v=t(36151),Z=t(81207),p=t(32509),j=t(21435),N=t(40968),f=t(56578),C=t(80184),b=(0,o.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"}},d.oO),d.ID),d.DF))}))((function(e){e.tenant;var a=e.classes,t=e.open,s=e.onClose,l=e.image,r=e.sidecarImage,o=e.initImage,d=e.labels,u=e.annotations,m=e.nodeSelector,b=e.diskCapacityGB,S=e.serviceAccountName,A=e.storageClassName,I=e.tenantName,y=e.tenantNamespace,R=e.cpuRequest,P=e.memRequest,q=(0,i.useState)({}),k=(0,n.Z)(q,2),z=k[0],w=k[1],M=(0,i.useState)(d.length>0?(0,h.Z)(d):[{key:"",value:""}]),G=(0,n.Z)(M,2),F=G[0],E=G[1],B=(0,i.useState)(u.length>0?(0,h.Z)(u):[{key:"",value:""}]),L=(0,n.Z)(B,2),U=L[0],D=L[1],O=(0,i.useState)(m.length>0?(0,h.Z)(m):[{key:"",value:""}]),T=(0,n.Z)(O,2),$=T[0],_=T[1],K=(0,i.useState)(l),V=(0,n.Z)(K,2),W=V[0],Y=V[1],H=(0,i.useState)(r),J=(0,n.Z)(H,2),Q=J[0],X=J[1],ee=(0,i.useState)(o),ae=(0,n.Z)(ee,2),te=ae[0],ne=ae[1],se=(0,i.useState)(b.toString()),ie=(0,n.Z)(se,2),le=ie[0],re=ie[1],oe=(0,i.useState)(R),ce=(0,n.Z)(oe,2),de=ce[0],ue=ce[1],me=(0,i.useState)(P?Math.floor(parseInt(P,10)/1e9).toString():""),ge=(0,n.Z)(me,2),he=ge[0],xe=ge[1],ve=(0,i.useState)(S),Ze=(0,n.Z)(ve,2),pe=Ze[0],je=Ze[1],Ne=(0,i.useState)(A),fe=(0,n.Z)(Ne,2),Ce=fe[0],be=fe[1],Se=(0,i.useState)({}),Ae=(0,n.Z)(Se,2),Ie=Ae[0],ye=Ae[1],Re=(0,i.useState)({}),Pe=(0,n.Z)(Re,2),qe=Pe[0],ke=Pe[1],ze=(0,i.useState)({}),we=(0,n.Z)(ze,2),Me=we[0],Ge=we[1],Fe=function(e){for(var a=[],t=0;t0&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("tr",{children:(0,C.jsx)("td",{children:(0,C.jsx)("h4",{children:"Labels"})})}),(0,C.jsx)("tr",{children:(0,C.jsx)("td",{className:a.titleCol,children:(0,C.jsx)(I.Z,{records:k.labels,recordName:"Labels"})})})]}),null!=k.annotations&&k.annotations.length>0&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("tr",{children:(0,C.jsx)("td",{children:(0,C.jsx)("h4",{children:"Annotations"})})}),(0,C.jsx)("tr",{children:(0,C.jsx)("td",{className:a.titleCol,children:(0,C.jsx)(I.Z,{records:k.annotations,recordName:"Annotations"})})})]}),null!=k.monitoringCPURequest&&(0,C.jsxs)("tr",{children:[(0,C.jsx)("td",{className:a.titleCol,children:"CPU Request:"}),(0,C.jsx)("td",{children:null===k||void 0===k?void 0:k.monitoringCPURequest})]}),null!=k.monitoringMemRequest&&(0,C.jsxs)("tr",{children:[(0,C.jsx)("td",{className:a.titleCol,children:"Memory Request:"}),(0,C.jsx)("td",{children:(0,y.ae)(null===k||void 0===k?void 0:k.monitoringMemRequest,!0)})]}),null!=k.nodeSelector&&k.nodeSelector.length>0&&(0,C.jsxs)("tr",{children:[(0,C.jsx)("h4",{children:"Node Selector:"}),(0,C.jsx)("td",{className:a.titleCol,children:(0,C.jsx)(I.Z,{records:k.nodeSelector,recordName:"Node Selector"})})]})]})})})})})})]})})))}}]); -//# sourceMappingURL=9449.035d0f2d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9449.035d0f2d.chunk.js.map b/portal-ui/build/static/js/9449.035d0f2d.chunk.js.map deleted file mode 100644 index 0e2dd314e..000000000 --- a/portal-ui/build/static/js/9449.035d0f2d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9449.035d0f2d.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx","screens/Console/Tenants/TenantDetails/TenantMonitoring.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport KeyPairEdit from \"./KeyPairEdit\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IEditTenantMonitoringProps {\n tenant: ITenant;\n classes: any;\n open: boolean;\n onClose: (shouldReload: boolean) => void;\n image: string;\n sidecarImage: string;\n initImage: string;\n labels: IKeyValue[];\n annotations: IKeyValue[];\n nodeSelector: IKeyValue[];\n diskCapacityGB: number;\n serviceAccountName: string;\n tenantName: string;\n tenantNamespace: string;\n storageClassName: string;\n cpuRequest: string;\n memRequest: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalBasic,\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst EditTenantMonitoringModal = ({\n tenant,\n classes,\n open,\n onClose,\n image,\n sidecarImage,\n initImage,\n labels,\n annotations,\n nodeSelector,\n diskCapacityGB,\n serviceAccountName,\n storageClassName,\n tenantName,\n tenantNamespace,\n cpuRequest,\n memRequest,\n}: IEditTenantMonitoringProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [newLabels, setNewLabels] = useState(\n labels.length > 0 ? [...labels] : [{ key: \"\", value: \"\" }]\n );\n const [newAnnotations, setNewAnnotations] = useState(\n annotations.length > 0 ? [...annotations] : [{ key: \"\", value: \"\" }]\n );\n const [newNodeSelector, setNewNodeSelector] = useState(\n nodeSelector.length > 0 ? [...nodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newImage, setNewImage] = useState(image);\n const [newSidecarImage, setNewSidecarImage] = useState(sidecarImage);\n const [newInitImage, setNewInitImage] = useState(initImage);\n const [newDiskCapacityGB, setNewDiskCapacityGB] = useState(\n diskCapacityGB.toString()\n );\n const [newCPURequest, setNewCPURequest] = useState(cpuRequest);\n const [newMemRequest, setNewMemRequest] = useState(\n memRequest\n ? Math.floor(parseInt(memRequest, 10) / 1000000000).toString()\n : \"\"\n );\n const [newServiceAccountName, setNewServiceAccountName] =\n useState(serviceAccountName);\n const [newStorageClassName, setNewStorageClassName] =\n useState(storageClassName);\n\n const [labelsError, setLabelsError] = useState({});\n const [annotationsError, setAnnotationsError] = useState({});\n const [nodeSelectorError, setNodeSelectorError] = useState({});\n\n const trim = (x: IKeyValue[]): IKeyValue[] => {\n let retval: IKeyValue[] = [];\n for (let i = 0; i < x.length; i++) {\n if (x[i].key !== \"\") {\n retval.push(x[i]);\n }\n }\n return retval;\n };\n\n useEffect(() => {\n let tenantMonitoringValidation: IValidation[] = [];\n\n tenantMonitoringValidation.push({\n fieldKey: `image`,\n required: false,\n value: newImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `sidecarImage`,\n required: false,\n value: newSidecarImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `initImage`,\n required: false,\n value: newInitImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `diskCapacityGB`,\n required: true,\n value: newDiskCapacityGB as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `newCPURequest`,\n required: false,\n value: newCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `newMemRequest`,\n required: false,\n value: newMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `serviceAccountName`,\n required: false,\n value: newServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `storageClassName`,\n required: false,\n value: newStorageClassName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid storage class name\",\n });\n\n const commonVal = commonFormValidation(tenantMonitoringValidation);\n setValidationErrors(commonVal);\n }, [\n newImage,\n newSidecarImage,\n newInitImage,\n newDiskCapacityGB,\n newServiceAccountName,\n newStorageClassName,\n newCPURequest,\n newMemRequest,\n setValidationErrors,\n ]);\n\n const checkValid = (): boolean => {\n if (\n Object.keys(validationErrors).length !== 0 ||\n Object.keys(labelsError).length !== 0 ||\n Object.keys(annotationsError).length !== 0 ||\n Object.keys(nodeSelectorError).length !== 0\n ) {\n let err: ErrorResponseHandler = {\n errorMessage: \"Invalid entry\",\n detailedError: \"\",\n };\n setModalErrorSnackMessage(err);\n return false;\n } else {\n return true;\n }\n };\n\n const submitMonitoringInfo = (event: React.FormEvent) => {\n event.preventDefault();\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`,\n {\n labels: trim(newLabels),\n annotations: trim(newAnnotations),\n nodeSelector: trim(newNodeSelector),\n image: newImage,\n sidecarImage: newSidecarImage,\n initImage: newInitImage,\n diskCapacityGB: newDiskCapacityGB,\n serviceAccountName: newServiceAccountName,\n storageClassName: newStorageClassName,\n monitoringCPURequest: newCPURequest,\n monitoringMemRequest: newMemRequest + \"Gi\",\n }\n )\n .then(() => {\n onClose(true);\n })\n .catch((err: ErrorResponseHandler) => {});\n };\n\n return (\n onClose(true)}\n modalOpen={open}\n title=\"Edit Monitoring Configuration\"\n >\n
    \n \n \n \n ) => {\n setNewImage(event.target.value);\n }}\n key={`image`}\n error={validationErrors[`image`] || \"\"}\n />\n \n \n ) => {\n setNewSidecarImage(event.target.value);\n }}\n key={`sidecarImage`}\n error={validationErrors[`sidecarImage`] || \"\"}\n />\n \n \n ) => {\n setNewInitImage(event.target.value);\n }}\n key={`initImage`}\n error={validationErrors[`initImage`] || \"\"}\n />\n \n \n ) => {\n setNewDiskCapacityGB(event.target.value);\n }}\n key={`diskCapacityGB`}\n error={validationErrors[`diskCapacityGB`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n setNewCPURequest(event.target.value);\n }}\n key={`cpuRequest`}\n error={validationErrors[`cpuRequest`] || \"\"}\n />\n \n \n ) => {\n if (event.target.validity.valid) {\n setNewMemRequest(event.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n key={`memRequest`}\n error={validationErrors[`memRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n setNewServiceAccountName(event.target.value);\n }}\n key={`serviceAccountName`}\n error={validationErrors[`serviceAccountName`] || \"\"}\n />\n \n \n ) => {\n setNewStorageClassName(event.target.value);\n }}\n key={`storageClassName`}\n error={validationErrors[`storageClassName`] || \"\"}\n />\n \n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n \n \n \n Save\n \n \n \n
    \n \n );\n};\n\nexport default withStyles(styles)(EditTenantMonitoringModal);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n actionsTray,\n containerForHeader,\n searchField,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { DialogContentText } from \"@mui/material\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport EditTenantMonitoringModal from \"./EditTenantMonitoringModal\";\n\nimport api from \"../../../../common/api\";\nimport { EditIcon } from \"../../../../icons\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { ITenantMonitoringStruct } from \"../ListTenants/types\";\nimport KeyPairView from \"./KeyPairView\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantMonitoring {\n classes: any;\n match: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n headerLabel: {\n fontSize: 22,\n fontWeight: 600,\n color: \"#000\",\n marginTop: 4,\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n tableWrapper: {\n height: \"calc(100vh - 267px)\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantMonitoring = ({\n classes,\n match,\n tenant,\n loadingTenant,\n}: ITenantMonitoring) => {\n const [prometheusMonitoringEnabled, setPrometheusMonitoringEnabled] =\n useState(false);\n const [edit, setEdit] = useState(false);\n const [monitoringInfo, setMonitoringInfo] =\n useState();\n const [confirmOpen, setConfirmOpen] = useState(false);\n const [refreshMonitoringInfo, setRefreshMonitoringInfo] =\n useState(true);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const onCloseEditAndRefresh = () => {\n setEdit(false);\n setRefreshMonitoringInfo(true);\n };\n\n useEffect(() => {\n if (refreshMonitoringInfo) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`\n )\n .then((res: ITenantMonitoringStruct) => {\n setPrometheusMonitoringEnabled(res.prometheusEnabled);\n setMonitoringInfo(res);\n setRefreshMonitoringInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setRefreshMonitoringInfo(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refreshMonitoringInfo]);\n\n const togglePrometheus = () => {\n const configInfo = {\n prometheusEnabled: prometheusMonitoringEnabled,\n toggle: true,\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`,\n configInfo\n )\n .then(() => {\n setPrometheusMonitoringEnabled(!prometheusMonitoringEnabled);\n setRefreshMonitoringInfo(true);\n setConfirmOpen(false);\n setRefreshMonitoringInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n });\n };\n\n return (\n \n {edit && tenant !== null && prometheusMonitoringEnabled && (\n \n )}\n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={togglePrometheus}\n confirmationContent={\n \n {prometheusMonitoringEnabled\n ? \"Disabling monitoring will erase any custom values you have used to configure Prometheus monitoring\"\n : \"Prometheus monitoring will be enabled with default values\"}\n \n }\n />\n )}\n\n

    Monitoring

    \n
    \n {\n setConfirmOpen(true);\n }}\n description=\"\"\n />\n {prometheusMonitoringEnabled && (\n {\n setEdit(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n )}\n
    \n {prometheusMonitoringEnabled && monitoringInfo !== undefined && (\n \n \n \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {monitoringInfo.image != null && (\n \n \n \n \n )}\n {monitoringInfo.sidecarImage != null && (\n \n \n \n \n )}\n {monitoringInfo.initImage != null && (\n \n \n \n \n )}\n {monitoringInfo.diskCapacityGB != null && (\n \n \n \n \n )}\n {monitoringInfo.serviceAccountName != null && (\n \n \n \n \n )}\n {monitoringInfo.storageClassName != null && (\n \n \n \n \n )}\n {monitoringInfo.labels != null &&\n monitoringInfo.labels.length > 0 && (\n <>\n \n \n \n \n \n \n \n )}\n {monitoringInfo.annotations != null &&\n monitoringInfo.annotations.length > 0 && (\n <>\n \n \n \n \n \n \n \n )}\n {monitoringInfo.monitoringCPURequest != null && (\n \n \n \n \n )}\n {monitoringInfo.monitoringMemRequest != null && (\n \n \n \n \n )}\n {monitoringInfo.nodeSelector != null &&\n monitoringInfo.nodeSelector.length > 0 && (\n \n

    Node Selector:

    \n \n \n )}\n \n )}\n \n
    \n \n
    Image:{monitoringInfo.image}
    Sidecar Image:{monitoringInfo?.sidecarImage}
    Init Image:{monitoringInfo?.initImage}
    \n Disk Capacity (GB):\n {monitoringInfo?.diskCapacityGB}
    \n Service Account Name:\n {monitoringInfo?.serviceAccountName}
    \n Storage Class Name:\n {monitoringInfo?.storageClassName}
    \n

    Labels

    \n
    \n \n
    \n

    Annotations

    \n
    \n \n
    CPU Request:{monitoringInfo?.monitoringCPURequest}
    Memory Request:\n {niceBytes(\n monitoringInfo?.monitoringMemRequest,\n true\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(TenantMonitoring));\n"],"names":["withStyles","theme","createStyles","buttonContainer","textAlign","modalBasic","modalStyleUtils","formFieldStyles","tenant","classes","open","onClose","image","sidecarImage","initImage","labels","annotations","nodeSelector","diskCapacityGB","serviceAccountName","storageClassName","tenantName","tenantNamespace","cpuRequest","memRequest","useState","validationErrors","setValidationErrors","length","key","value","newLabels","setNewLabels","newAnnotations","setNewAnnotations","newNodeSelector","setNewNodeSelector","newImage","setNewImage","newSidecarImage","setNewSidecarImage","newInitImage","setNewInitImage","toString","newDiskCapacityGB","setNewDiskCapacityGB","newCPURequest","setNewCPURequest","Math","floor","parseInt","newMemRequest","setNewMemRequest","newServiceAccountName","setNewServiceAccountName","newStorageClassName","setNewStorageClassName","labelsError","setLabelsError","annotationsError","setAnnotationsError","nodeSelectorError","setNodeSelectorError","trim","x","retval","i","push","useEffect","tenantMonitoringValidation","fieldKey","required","pattern","customPatternMessage","commonVal","commonFormValidation","ModalWrapper","modalOpen","title","noValidate","autoComplete","onSubmit","event","preventDefault","api","monitoringCPURequest","monitoringMemRequest","then","catch","err","Grid","container","xs","className","modalFormScrollable","item","formFieldRow","InputBoxWrapper","id","label","placeholder","name","onChange","target","error","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","validity","valid","inputLabel","KeyPairEdit","newValues","setNewValues","paramName","setError","Button","type","variant","color","Object","keys","setModalErrorSnackMessage","errorMessage","detailedError","checkValid","mapDispatchToProps","setErrorSnackMessage","connector","connect","tenantDetailsStyles","headerLabel","fontSize","fontWeight","marginTop","breadcrumLink","textDecoration","tableWrapper","height","paperContainer","padding","actionsTray","searchField","containerForHeader","spacing","match","loadingTenant","prometheusMonitoringEnabled","setPrometheusMonitoringEnabled","edit","setEdit","monitoringInfo","setMonitoringInfo","confirmOpen","setConfirmOpen","refreshMonitoringInfo","setRefreshMonitoringInfo","params","res","prometheusEnabled","Fragment","ConfirmDialog","isOpen","confirmText","cancelText","onConfirm","configInfo","toggle","confirmationContent","DialogContentText","sectionTitle","FormSwitchWrapper","indicatorLabels","checked","e","description","RBIconButton","tooltip","text","onClick","icon","undefined","Paper","width","centerAlign","colSpan","Loader","titleCol","KeyPairView","records","recordName","niceBytes"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9449.281102d6.chunk.js b/portal-ui/build/static/js/9449.281102d6.chunk.js new file mode 100644 index 000000000..66c9d2dc0 --- /dev/null +++ b/portal-ui/build/static/js/9449.281102d6.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9449],{99449:function(e,a,t){t.r(a),t.d(a,{default:function(){return w}});var n=t(29439),s=t(1413),i=t(72791),l=t(60364),r=t(11135),o=t(25787),c=t(61889),d=t(23814),u=t(51691),m=t(10703),h=t(42649),g=t(93433),x=t(56028),v=t(36151),Z=t(81207),j=t(32509),p=t(21435),C=t(40968),f=t(56578),N=t(80184),b=(0,o.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"}},d.oO),d.ID),d.DF))}))((function(e){e.tenant;var a=e.classes,t=e.open,s=e.onClose,l=e.image,r=e.sidecarImage,o=e.initImage,d=e.labels,u=e.annotations,m=e.nodeSelector,b=e.diskCapacityGB,S=e.serviceAccountName,I=e.storageClassName,A=e.tenantName,y=e.tenantNamespace,P=e.cpuRequest,R=e.memRequest,q=(0,i.useState)({}),k=(0,n.Z)(q,2),z=k[0],w=k[1],M=(0,i.useState)(d.length>0?(0,g.Z)(d):[{key:"",value:""}]),G=(0,n.Z)(M,2),F=G[0],E=G[1],B=(0,i.useState)(u.length>0?(0,g.Z)(u):[{key:"",value:""}]),L=(0,n.Z)(B,2),U=L[0],D=L[1],O=(0,i.useState)(m.length>0?(0,g.Z)(m):[{key:"",value:""}]),$=(0,n.Z)(O,2),_=$[0],K=$[1],T=(0,i.useState)(l),V=(0,n.Z)(T,2),W=V[0],Y=V[1],H=(0,i.useState)(r),J=(0,n.Z)(H,2),Q=J[0],X=J[1],ee=(0,i.useState)(o),ae=(0,n.Z)(ee,2),te=ae[0],ne=ae[1],se=(0,i.useState)(b.toString()),ie=(0,n.Z)(se,2),le=ie[0],re=ie[1],oe=(0,i.useState)(P),ce=(0,n.Z)(oe,2),de=ce[0],ue=ce[1],me=(0,i.useState)(R?Math.floor(parseInt(R,10)/1e9).toString():""),he=(0,n.Z)(me,2),ge=he[0],xe=he[1],ve=(0,i.useState)(S),Ze=(0,n.Z)(ve,2),je=Ze[0],pe=Ze[1],Ce=(0,i.useState)(I),fe=(0,n.Z)(Ce,2),Ne=fe[0],be=fe[1],Se=(0,i.useState)({}),Ie=(0,n.Z)(Se,2),Ae=Ie[0],ye=Ie[1],Pe=(0,i.useState)({}),Re=(0,n.Z)(Pe,2),qe=Re[0],ke=Re[1],ze=(0,i.useState)({}),we=(0,n.Z)(ze,2),Me=we[0],Ge=we[1],Fe=function(e){for(var a=[],t=0;t0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("tr",{children:(0,N.jsx)("td",{children:(0,N.jsx)("h4",{children:"Labels"})})}),(0,N.jsx)("tr",{children:(0,N.jsx)("td",{className:a.titleCol,children:(0,N.jsx)(A.Z,{records:k.labels,recordName:"Labels"})})})]}),null!=k.annotations&&k.annotations.length>0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("tr",{children:(0,N.jsx)("td",{children:(0,N.jsx)("h4",{children:"Annotations"})})}),(0,N.jsx)("tr",{children:(0,N.jsx)("td",{className:a.titleCol,children:(0,N.jsx)(A.Z,{records:k.annotations,recordName:"Annotations"})})})]}),null!=k.monitoringCPURequest&&(0,N.jsxs)("tr",{children:[(0,N.jsx)("td",{className:a.titleCol,children:"CPU Request:"}),(0,N.jsx)("td",{children:null===k||void 0===k?void 0:k.monitoringCPURequest})]}),null!=k.monitoringMemRequest&&(0,N.jsxs)("tr",{children:[(0,N.jsx)("td",{className:a.titleCol,children:"Memory Request:"}),(0,N.jsx)("td",{children:(0,y.ae)(null===k||void 0===k?void 0:k.monitoringMemRequest,!0)})]}),null!=k.nodeSelector&&k.nodeSelector.length>0&&(0,N.jsxs)("tr",{children:[(0,N.jsx)("h4",{children:"Node Selector:"}),(0,N.jsx)("td",{className:a.titleCol,children:(0,N.jsx)(A.Z,{records:k.nodeSelector,recordName:"Node Selector"})})]})]})})})]})]})})]})})))}}]); +//# sourceMappingURL=9449.281102d6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9449.281102d6.chunk.js.map b/portal-ui/build/static/js/9449.281102d6.chunk.js.map new file mode 100644 index 000000000..830729bd5 --- /dev/null +++ b/portal-ui/build/static/js/9449.281102d6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9449.281102d6.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx","screens/Console/Tenants/TenantDetails/TenantMonitoring.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport KeyPairEdit from \"./KeyPairEdit\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IEditTenantMonitoringProps {\n tenant: ITenant;\n classes: any;\n open: boolean;\n onClose: (shouldReload: boolean) => void;\n image: string;\n sidecarImage: string;\n initImage: string;\n labels: IKeyValue[];\n annotations: IKeyValue[];\n nodeSelector: IKeyValue[];\n diskCapacityGB: number;\n serviceAccountName: string;\n tenantName: string;\n tenantNamespace: string;\n storageClassName: string;\n cpuRequest: string;\n memRequest: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalBasic,\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst EditTenantMonitoringModal = ({\n tenant,\n classes,\n open,\n onClose,\n image,\n sidecarImage,\n initImage,\n labels,\n annotations,\n nodeSelector,\n diskCapacityGB,\n serviceAccountName,\n storageClassName,\n tenantName,\n tenantNamespace,\n cpuRequest,\n memRequest,\n}: IEditTenantMonitoringProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [newLabels, setNewLabels] = useState(\n labels.length > 0 ? [...labels] : [{ key: \"\", value: \"\" }]\n );\n const [newAnnotations, setNewAnnotations] = useState(\n annotations.length > 0 ? [...annotations] : [{ key: \"\", value: \"\" }]\n );\n const [newNodeSelector, setNewNodeSelector] = useState(\n nodeSelector.length > 0 ? [...nodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newImage, setNewImage] = useState(image);\n const [newSidecarImage, setNewSidecarImage] = useState(sidecarImage);\n const [newInitImage, setNewInitImage] = useState(initImage);\n const [newDiskCapacityGB, setNewDiskCapacityGB] = useState(\n diskCapacityGB.toString()\n );\n const [newCPURequest, setNewCPURequest] = useState(cpuRequest);\n const [newMemRequest, setNewMemRequest] = useState(\n memRequest\n ? Math.floor(parseInt(memRequest, 10) / 1000000000).toString()\n : \"\"\n );\n const [newServiceAccountName, setNewServiceAccountName] =\n useState(serviceAccountName);\n const [newStorageClassName, setNewStorageClassName] =\n useState(storageClassName);\n\n const [labelsError, setLabelsError] = useState({});\n const [annotationsError, setAnnotationsError] = useState({});\n const [nodeSelectorError, setNodeSelectorError] = useState({});\n\n const trim = (x: IKeyValue[]): IKeyValue[] => {\n let retval: IKeyValue[] = [];\n for (let i = 0; i < x.length; i++) {\n if (x[i].key !== \"\") {\n retval.push(x[i]);\n }\n }\n return retval;\n };\n\n useEffect(() => {\n let tenantMonitoringValidation: IValidation[] = [];\n\n tenantMonitoringValidation.push({\n fieldKey: `image`,\n required: false,\n value: newImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `sidecarImage`,\n required: false,\n value: newSidecarImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `initImage`,\n required: false,\n value: newInitImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `diskCapacityGB`,\n required: true,\n value: newDiskCapacityGB as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `newCPURequest`,\n required: false,\n value: newCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `newMemRequest`,\n required: false,\n value: newMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `serviceAccountName`,\n required: false,\n value: newServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantMonitoringValidation.push({\n fieldKey: `storageClassName`,\n required: false,\n value: newStorageClassName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid storage class name\",\n });\n\n const commonVal = commonFormValidation(tenantMonitoringValidation);\n setValidationErrors(commonVal);\n }, [\n newImage,\n newSidecarImage,\n newInitImage,\n newDiskCapacityGB,\n newServiceAccountName,\n newStorageClassName,\n newCPURequest,\n newMemRequest,\n setValidationErrors,\n ]);\n\n const checkValid = (): boolean => {\n if (\n Object.keys(validationErrors).length !== 0 ||\n Object.keys(labelsError).length !== 0 ||\n Object.keys(annotationsError).length !== 0 ||\n Object.keys(nodeSelectorError).length !== 0\n ) {\n let err: ErrorResponseHandler = {\n errorMessage: \"Invalid entry\",\n detailedError: \"\",\n };\n setModalErrorSnackMessage(err);\n return false;\n } else {\n return true;\n }\n };\n\n const submitMonitoringInfo = (event: React.FormEvent) => {\n event.preventDefault();\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`,\n {\n labels: trim(newLabels),\n annotations: trim(newAnnotations),\n nodeSelector: trim(newNodeSelector),\n image: newImage,\n sidecarImage: newSidecarImage,\n initImage: newInitImage,\n diskCapacityGB: newDiskCapacityGB,\n serviceAccountName: newServiceAccountName,\n storageClassName: newStorageClassName,\n monitoringCPURequest: newCPURequest,\n monitoringMemRequest: newMemRequest + \"Gi\",\n }\n )\n .then(() => {\n onClose(true);\n })\n .catch((err: ErrorResponseHandler) => {});\n };\n\n return (\n onClose(true)}\n modalOpen={open}\n title=\"Edit Monitoring Configuration\"\n >\n
    \n \n \n \n ) => {\n setNewImage(event.target.value);\n }}\n key={`image`}\n error={validationErrors[`image`] || \"\"}\n />\n \n \n ) => {\n setNewSidecarImage(event.target.value);\n }}\n key={`sidecarImage`}\n error={validationErrors[`sidecarImage`] || \"\"}\n />\n \n \n ) => {\n setNewInitImage(event.target.value);\n }}\n key={`initImage`}\n error={validationErrors[`initImage`] || \"\"}\n />\n \n \n ) => {\n setNewDiskCapacityGB(event.target.value);\n }}\n key={`diskCapacityGB`}\n error={validationErrors[`diskCapacityGB`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n setNewCPURequest(event.target.value);\n }}\n key={`cpuRequest`}\n error={validationErrors[`cpuRequest`] || \"\"}\n />\n \n \n ) => {\n if (event.target.validity.valid) {\n setNewMemRequest(event.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n key={`memRequest`}\n error={validationErrors[`memRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n setNewServiceAccountName(event.target.value);\n }}\n key={`serviceAccountName`}\n error={validationErrors[`serviceAccountName`] || \"\"}\n />\n \n \n ) => {\n setNewStorageClassName(event.target.value);\n }}\n key={`storageClassName`}\n error={validationErrors[`storageClassName`] || \"\"}\n />\n \n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n \n \n \n Save\n \n \n \n
    \n \n );\n};\n\nexport default withStyles(styles)(EditTenantMonitoringModal);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 {\n actionsTray,\n containerForHeader,\n searchField,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { DialogContentText } from \"@mui/material\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport EditTenantMonitoringModal from \"./EditTenantMonitoringModal\";\n\nimport api from \"../../../../common/api\";\nimport { EditIcon } from \"../../../../icons\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { ITenantMonitoringStruct } from \"../ListTenants/types\";\nimport KeyPairView from \"./KeyPairView\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantMonitoring {\n classes: any;\n match: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n headerLabel: {\n fontSize: 22,\n fontWeight: 600,\n color: \"#000\",\n marginTop: 4,\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n tableWrapper: {\n height: \"calc(100vh - 267px)\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantMonitoring = ({\n classes,\n match,\n tenant,\n loadingTenant,\n}: ITenantMonitoring) => {\n const [prometheusMonitoringEnabled, setPrometheusMonitoringEnabled] =\n useState(false);\n const [edit, setEdit] = useState(false);\n const [monitoringInfo, setMonitoringInfo] =\n useState();\n const [confirmOpen, setConfirmOpen] = useState(false);\n const [refreshMonitoringInfo, setRefreshMonitoringInfo] =\n useState(true);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const onCloseEditAndRefresh = () => {\n setEdit(false);\n setRefreshMonitoringInfo(true);\n };\n\n useEffect(() => {\n if (refreshMonitoringInfo) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`\n )\n .then((res: ITenantMonitoringStruct) => {\n setPrometheusMonitoringEnabled(res.prometheusEnabled);\n setMonitoringInfo(res);\n setRefreshMonitoringInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setRefreshMonitoringInfo(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refreshMonitoringInfo]);\n\n const togglePrometheus = () => {\n const configInfo = {\n prometheusEnabled: prometheusMonitoringEnabled,\n toggle: true,\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/monitoring`,\n configInfo\n )\n .then(() => {\n setPrometheusMonitoringEnabled(!prometheusMonitoringEnabled);\n setRefreshMonitoringInfo(true);\n setConfirmOpen(false);\n setRefreshMonitoringInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n });\n };\n\n return (\n \n {edit && tenant !== null && prometheusMonitoringEnabled && (\n \n )}\n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={togglePrometheus}\n confirmationContent={\n \n {prometheusMonitoringEnabled\n ? \"Disabling monitoring will erase any custom values you have used to configure Prometheus monitoring\"\n : \"Prometheus monitoring will be enabled with default values\"}\n \n }\n />\n )}\n\n \n \n

    Monitoring

    \n
    \n \n {\n setConfirmOpen(true);\n }}\n description=\"\"\n />\n \n
    \n {prometheusMonitoringEnabled && monitoringInfo !== undefined && (\n \n \n \n \n \n

    Configuration

    \n
    \n \n {\n setEdit(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n
    \n
    \n \n
    \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {monitoringInfo.image != null && (\n \n \n \n \n )}\n {monitoringInfo.sidecarImage != null && (\n \n \n \n \n )}\n {monitoringInfo.initImage != null && (\n \n \n \n \n )}\n {monitoringInfo.diskCapacityGB != null && (\n \n \n \n \n )}\n {monitoringInfo.serviceAccountName != null && (\n \n \n \n \n )}\n {monitoringInfo.storageClassName != null && (\n \n \n \n \n )}\n {monitoringInfo.labels != null &&\n monitoringInfo.labels.length > 0 && (\n <>\n \n \n \n \n \n \n \n )}\n {monitoringInfo.annotations != null &&\n monitoringInfo.annotations.length > 0 && (\n <>\n \n \n \n \n \n \n \n )}\n {monitoringInfo.monitoringCPURequest != null && (\n \n \n \n \n )}\n {monitoringInfo.monitoringMemRequest != null && (\n \n \n \n \n )}\n {monitoringInfo.nodeSelector != null &&\n monitoringInfo.nodeSelector.length > 0 && (\n \n

    Node Selector:

    \n \n \n )}\n \n )}\n \n
    \n \n
    Image:{monitoringInfo.image}
    Sidecar Image:{monitoringInfo?.sidecarImage}
    Init Image:{monitoringInfo?.initImage}
    \n Disk Capacity (GB):\n {monitoringInfo?.diskCapacityGB}
    \n Service Account Name:\n {monitoringInfo?.serviceAccountName}
    \n Storage Class Name:\n {monitoringInfo?.storageClassName}
    \n

    Labels

    \n
    \n \n
    \n

    Annotations

    \n
    \n \n
    CPU Request:{monitoringInfo?.monitoringCPURequest}
    Memory Request:\n {niceBytes(\n monitoringInfo?.monitoringMemRequest,\n true\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(TenantMonitoring));\n"],"names":["withStyles","theme","createStyles","buttonContainer","textAlign","modalBasic","modalStyleUtils","formFieldStyles","tenant","classes","open","onClose","image","sidecarImage","initImage","labels","annotations","nodeSelector","diskCapacityGB","serviceAccountName","storageClassName","tenantName","tenantNamespace","cpuRequest","memRequest","useState","validationErrors","setValidationErrors","length","key","value","newLabels","setNewLabels","newAnnotations","setNewAnnotations","newNodeSelector","setNewNodeSelector","newImage","setNewImage","newSidecarImage","setNewSidecarImage","newInitImage","setNewInitImage","toString","newDiskCapacityGB","setNewDiskCapacityGB","newCPURequest","setNewCPURequest","Math","floor","parseInt","newMemRequest","setNewMemRequest","newServiceAccountName","setNewServiceAccountName","newStorageClassName","setNewStorageClassName","labelsError","setLabelsError","annotationsError","setAnnotationsError","nodeSelectorError","setNodeSelectorError","trim","x","retval","i","push","useEffect","tenantMonitoringValidation","fieldKey","required","pattern","customPatternMessage","commonVal","commonFormValidation","ModalWrapper","modalOpen","title","noValidate","autoComplete","onSubmit","event","preventDefault","api","monitoringCPURequest","monitoringMemRequest","then","catch","err","Grid","container","xs","className","modalFormScrollable","item","formFieldRow","InputBoxWrapper","id","label","placeholder","name","onChange","target","error","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","validity","valid","inputLabel","KeyPairEdit","newValues","setNewValues","paramName","setError","Button","type","variant","color","Object","keys","setModalErrorSnackMessage","errorMessage","detailedError","checkValid","mapDispatchToProps","setErrorSnackMessage","connector","connect","tenantDetailsStyles","headerLabel","fontSize","fontWeight","marginTop","breadcrumLink","textDecoration","tableWrapper","height","paperContainer","padding","actionsTray","searchField","containerForHeader","spacing","match","loadingTenant","prometheusMonitoringEnabled","setPrometheusMonitoringEnabled","edit","setEdit","monitoringInfo","setMonitoringInfo","confirmOpen","setConfirmOpen","refreshMonitoringInfo","setRefreshMonitoringInfo","params","res","prometheusEnabled","Fragment","ConfirmDialog","isOpen","confirmText","cancelText","onConfirm","configInfo","toggle","confirmationContent","DialogContentText","alignItems","sectionTitle","FormSwitchWrapper","indicatorLabels","checked","e","description","undefined","Paper","justifyContent","RBIconButton","tooltip","text","onClick","icon","hrClass","width","centerAlign","colSpan","Loader","titleCol","KeyPairView","records","recordName","niceBytes"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9467.50ab01b6.chunk.js b/portal-ui/build/static/js/9467.50ab01b6.chunk.js new file mode 100644 index 000000000..87f95e357 --- /dev/null +++ b/portal-ui/build/static/js/9467.50ab01b6.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9467],{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})]})})}))},89467:function(e,n,t){t.r(n),t.d(n,{default:function(){return ne}});var a=t(93433),i=t(29439),s=t(1413),r=t(72791),o=t(60364),c=t(11135),l=t(25787),d=t(40986),u=t(61889),m=t(93656),h=t(42649),x=t(23814),f=t(81207),p=t(32291),g=t(26181),Z=t.n(g),j=t(20890),v=t(64554),b=t(45248),k=t(34866),y=t(91523),C=t(56087),S=t(38442),N=t(40603),P=t(28182),w=t(80184),B=(0,l.Z)((function(e){return(0,c.Z)({root:{marginBottom:30,padding:20,color:e.palette.primary.main,border:"#E5E5E5 1px solid",borderRadius:2,"& .min-icon":{height:14,width:14,marginRight:4},"& .MuiTypography-body2":{fontSize:14},"& .MuiCardHeader-content":{wordWrap:"break-word",overflowWrap:"break-word",wordBreak:"break-all",font:"normal normal bold 24px/27px Lato",color:e.palette.primary.main,"& .MuiTypography-root":{fontSize:19,fontWeight:"bold","& .min-icon":{position:"relative",top:4,marginRight:4,height:"24px !important"}}},"& .MuiCardHeader-root":{background:"transparent linear-gradient(0deg, #EEF1F44E 0%, #FFFFFF 100%) 0% 0% no-repeat padding-box"}},checkBoxElement:{width:32,height:32,float:"left",overflow:"hidden","& div":{position:"absolute"}},viewButton:{width:111,color:"white",marginLeft:8,fontSize:12,fontWeight:"normal",boxShadow:"unset",borderRadius:4},manageButton:{borderRadius:4,width:111,color:e.palette.grey[700],textTransform:"unset",fontSize:12,fontWeight:"normal","& .MuiButton-endIcon":{"& .min-icon":{fontSize:18}}},metric:{"& .min-icon":{color:"#000000",width:13,marginRight:5}},metricLabel:{fontSize:14,fontWeight:"bold",color:"#000000"},metricText:{fontSize:24,fontWeight:"bold"},unit:{fontSize:12,fontWeight:"normal"},bucketName:{padding:0,margin:0,fontSize:22},bucketIcon:{"& .min-icon":{height:48,width:48,color:e.palette.primary.main}},bucketInfo:{display:"flex","@media (max-width: 900px)":{flexFlow:"column-reverse"}},bucketStats:{marginTop:15,borderTop:"1px solid rgb(234,234,234, .7)",paddingTop:14},bucketActionButtons:{display:"flex",alignItems:"center",justifyContent:"flex-end","@media (max-width: 900px)":{marginTop:"-33px"}}})}))((function(e){var n=e.classes,t=e.bucket,a=e.onSelect,i=e.selected,s=e.bulkSelect,o=(0,b.ae)("".concat(t.size)||"0"),c=o.split(" ")[0],l=o.split(" ")[1],d=Z()(t,"details.quota.quota","0"),h=(0,b.Am)(d);return(0,w.jsxs)(u.ZP,{container:!0,className:(0,P.Z)(n.root,"bucket-item"),children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsxs)(u.ZP,{container:!0,justifyContent:"space-between",children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,sm:7,children:(0,w.jsxs)(u.ZP,{container:!0,children:[(0,w.jsxs)(u.ZP,{item:!0,xs:12,children:[s&&(0,w.jsx)("div",{className:n.checkBoxElement,onClick:function(e){e.stopPropagation()},children:(0,w.jsx)(k.Z,{checked:i,id:"select-".concat(t.name),label:"",name:"select-".concat(t.name),onChange:function(e){a(e)},value:t.name})}),(0,w.jsx)("h1",{className:n.bucketName,children:t.name})]}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsxs)(u.ZP,{container:!0,className:n.bucketInfo,children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,sm:!0,children:(0,w.jsxs)(j.Z,{variant:"body2",children:["Created: ",t.creation_date]})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,sm:!0,children:(0,w.jsxs)(j.Z,{variant:"body2",children:["Access: ",function(e){var n,t,a,i,s,r;return null===(n=e.rw_access)||void 0===n||!n.read||null!==(t=e.rw_access)&&void 0!==t&&t.write?null!==(a=e.rw_access)&&void 0!==a&&a.read||null===(i=e.rw_access)||void 0===i||!i.write?null!==(s=e.rw_access)&&void 0!==s&&s.read&&null!==(r=e.rw_access)&&void 0!==r&&r.write?"R/W":"":"W":"R"}(t)]})})]})})]})}),(0,w.jsxs)(u.ZP,{item:!0,xs:12,sm:5,className:n.bucketActionButtons,children:[(0,w.jsx)(S.s,{scopes:C.D[C.EI.BUCKET_ADMIN],resource:t.name,children:(0,w.jsx)(y.rU,{to:"/buckets/".concat(t.name,"/admin"),style:{textDecoration:"none"},children:(0,w.jsx)(N.Z,{tooltip:"Manage",onClick:function(){},text:"Manage",icon:(0,w.jsx)(m.ew,{}),color:"primary",variant:"outlined"})})}),(0,w.jsx)(y.rU,{to:"/buckets/".concat(t.name,"/browse"),style:{textDecoration:"none"},children:(0,w.jsx)(N.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,w.jsx)(m.LZ,{}),color:"primary",variant:"contained"})}),(0,w.jsx)(v.Z,{display:{xs:"none",sm:"block"},children:(0,w.jsx)("div",{style:{marginBottom:10}})})]})]})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:n.bucketStats,children:(0,w.jsxs)(u.ZP,{container:!0,justifyContent:"flex-start",spacing:4,children:[(0,w.jsx)(u.ZP,{item:!0,className:n.bucketIcon,children:(0,w.jsx)(y.rU,{to:"/buckets/".concat(t.name,"/browse"),children:(0,w.jsx)(m.wN,{})})}),(0,w.jsxs)(u.ZP,{item:!0,textAlign:"left",className:n.metric,children:[(0,w.jsx)(m.rH,{}),(0,w.jsx)("span",{className:n.metricLabel,children:"Usage"}),(0,w.jsxs)("div",{className:n.metricText,children:[c,(0,w.jsx)("span",{className:n.unit,children:l}),"0"!==d&&(0,w.jsxs)(r.Fragment,{children:[" ","/ ",h.total,(0,w.jsx)("span",{className:n.unit,children:h.unit})]})]})]}),(0,w.jsxs)(u.ZP,{item:!0,textAlign:"left",className:n.metric,children:[(0,w.jsx)(m.xp,{}),(0,w.jsx)("span",{className:n.metricLabel,children:"Objects"}),(0,w.jsx)("div",{className:n.metricText,children:t.objects?(0,b.CE)(t.objects):0})]})]})})]})})),_=t(20068),R=t(15146),T=t(98946),I=t(21435),E=t(56028),M=t(64163),F=t(28371),L=t(37516),A=t(90673),z=t(56578),D=(0,o.$j)(null,{setModalErrorSnackMessage:h.zb}),W=(0,l.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)({remoteBucketList:{display:"grid",gridTemplateColumns:"auto auto 45px",alignItems:"center",justifyContent:"stretch"},errorIcon:{color:"#C72C48"},successIcon:{color:"#42C91A"},hide:{opacity:0,transitionDuration:"0.3s"}},x.oO),x.AK))}))(D((function(e){var n=e.open,t=e.closeModalAndRefresh,s=e.classes,o=e.buckets,c=e.setModalErrorSnackMessage,l=(0,r.useState)([]),d=(0,i.Z)(l,2),m=d[0],h=d[1],x=(0,r.useState)(!1),p=(0,i.Z)(x,2),g=p[0],j=p[1],v=(0,r.useState)(!1),k=(0,i.Z)(v,2),y=k[0],C=k[1],S=(0,r.useState)(""),N=(0,i.Z)(S,2),P=N[0],B=N[1],D=(0,r.useState)(""),W=(0,i.Z)(D,2),K=W[0],U=W[1],O=(0,r.useState)(""),q=(0,i.Z)(O,2),H=q[0],G=q[1],Q=(0,r.useState)(""),V=(0,i.Z)(Q,2),Y=V[0],$=V[1],J=(0,r.useState)(!0),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,r.useState)("async"),ae=(0,i.Z)(te,2),ie=ae[0],se=ae[1],re=(0,r.useState)("100"),oe=(0,i.Z)(re,2),ce=oe[0],le=oe[1],de=(0,r.useState)("Gi"),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],xe=(0,r.useState)("60"),fe=(0,i.Z)(xe,2),pe=fe[0],ge=fe[1],Ze=(0,r.useState)([]),je=(0,i.Z)(Ze,2),ve=je[0],be=je[1],ke=(0,r.useState)([]),ye=(0,i.Z)(ke,2),Ce=ye[0],Se=ye[1],Ne=(0,r.useState)([]),Pe=(0,i.Z)(Ne,2),we=Pe[0],Be=Pe[1],_e=Ce.map((function(e){return{label:e,value:e}}));(0,r.useEffect)((function(){if(0===ve.length){var e=[],n=[];o.forEach((function(t){e.push(t),n.push("")})),be(n),h(e)}}),[o,ve.length]);var Re=function(e){var n=e.errString;switch(n){case"":return(0,w.jsx)("div",{className:s.successIcon,children:(0,w.jsx)(T.Z,{})});case"n/a":return null;default:if(n)return(0,w.jsx)("div",{className:s.errorIcon,children:(0,w.jsx)(_.Z,{title:n,placement:"top-start",children:(0,w.jsx)(R.Z,{})})})}return null},Te=function(e,n){var t=(0,a.Z)(ve);t[e]=n,be(t)},Ie=function(e){var n=(0,a.Z)(m),t=(0,a.Z)(ve);e.forEach((function(e){var a=Z()(e,"errorString","");if(!a||""===a){var i=n.indexOf(e.originBucket);n.splice(i,1),t.splice(i,1)}})),h(n),be(t)};return(0,w.jsx)(E.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Set Multiple Bucket Replication",children:(0,w.jsx)(F.Z,{loadingStep:g||y,wizardSteps:[{label:"Remote Configuration",componentRender:(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(M.Z,{label:"Local Buckets to replicate",content:m.join(", ")})}),(0,w.jsx)("h4",{children:"Remote Endpoint Configuration"}),(0,w.jsx)("span",{className:s.descriptionText,children:"Please avoid the use of root credentials for this feature"}),(0,w.jsx)("br",{}),(0,w.jsx)("br",{}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"accessKey",name:"accessKey",onChange:function(e){B(e.target.value)},label:"Access Key",value:P})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"secretKey",name:"secretKey",onChange:function(e){U(e.target.value)},label:"Secret Key",value:K})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"targetURL",name:"targetURL",onChange:function(e){G(e.target.value)},placeholder:"play.min.io:9000",label:"Target URL",value:H})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(L.Z,{checked:ee,id:"useTLS",name:"useTLS",label:"Use TLS",onChange:function(e){ne(e.target.checked)},value:"yes"})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"region",name:"region",onChange:function(e){$(e.target.value)},label:"Region",value:Y})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(A.Z,{id:"replication_mode",name:"replication_mode",onChange:function(e){se(e.target.value)},label:"Replication Mode",value:ie,options:[{label:"Asynchronous",value:"async"},{label:"Synchronous",value:"sync"}]})}),"async"===ie&&(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{type:"number",id:"bandwidth_scalar",name:"bandwidth_scalar",onChange:function(e){e.target.validity.valid&&le(e.target.value)},label:"Bandwidth",value:ce,min:"0",pattern:"[0-9]*",overlayObject:(0,w.jsx)(z.Z,{id:"quota_unit",onUnitChange:function(e){he(e)},unitSelected:me,unitsList:(0,b.zQ)(["Ki"]),disabled:!1})})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"healthCheck",name:"healthCheck",onChange:function(e){ge(e.target.value)},label:"Health Check Duration",value:pe})})]}),buttons:[{type:"custom",label:"Next",enabled:!y,action:function(e){var n={accessKey:P,secretKey:K,targetURL:H,useTLS:ee};C(!0),f.Z.invoke("POST","/api/v1/list-external-buckets",n).then((function(n){var t=Z()(n,"buckets",[]);if(t&&t.length>0){var a=t.map((function(e){return e.name}));Se(a)}e("++"),C(!1)})).catch((function(e){C(!1),c(e)}))}}]},{label:"Bucket Assignments",componentRender:(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)("h3",{children:"Remote Bucket Assignments"}),(0,w.jsx)("span",{className:s.descriptionText,children:"Please select / type the desired remote bucket were you want the local data to be replicated."}),(0,w.jsx)("div",{className:s.remoteBucketList,children:m.map((function(e,n){var t,a=function(e){if(we.length>0){var n=we.find((function(n){return n.originBucket===e}));if(n)return Z()(n,"errorString","")||""}return"n/a"}(e);return(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)("div",{className:""===a?s.hide:"",children:e}),(0,w.jsx)("div",{className:""===a?s.hide:"",children:(t=n,Ce.length>0?(0,w.jsx)(r.Fragment,{children:(0,w.jsx)(A.Z,{label:"",id:"assign-bucket-".concat(t),name:"assign-bucket-".concat(t),value:ve[t],onChange:function(e){Te(t,e.target.value)},options:_e,disabled:g})}):(0,w.jsx)(r.Fragment,{children:(0,w.jsx)(I.Z,{id:"assign-bucket-".concat(t),name:"assign-bucket-".concat(t),label:"",onChange:function(e){Te(t,e.target.value)},value:ve[t],disabled:g})}))}),(0,w.jsx)("div",{className:""===a?s.hide:"",children:we.length>0&&(0,w.jsx)(Re,{errString:a})})]},"buckets-assignation-".concat(n.toString(),"-").concat(e))}))})]}),buttons:[{type:"back",label:"Back",enabled:!0},{type:"next",label:"Create",enabled:!g,action:function(){j(!0);var e=m.map((function(e,n){return{originBucket:e,destinationBucket:ve[n]}})),n="".concat(ee?"https://":"http://").concat(H),a=parseInt(pe),i={accessKey:P,secretKey:K,targetURL:n,region:Y,bucketsRelation:e,syncMode:ie,bandwidth:"async"===ie?parseInt((0,b.Pw)(ce,me,!0)):0,healthCheckPeriod:a};f.Z.invoke("POST","/api/v1/buckets-replication",i).then((function(e){j(!1);var n=e.replicationState;Be(n),0===n.filter((function(e){return e.errorString&&""!==e.errorString})).length?t(!0):setTimeout((function(){Ie(n)}),500)})).catch((function(e){j(!1),c(e)}))}}]}],forModal:!0})})}))),K=t(23804),U=t(28789),O=t(81806),q=t(49818),H=t(2289),G=t(74794),Q=t(59114),V=t(98994),Y=t(83679),$=t(17420),J=(0,o.$j)(null,{setModalErrorSnackMessage:h.zb}),X=(0,l.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({resultGrid:{display:"grid",gridTemplateColumns:"45px auto",alignItems:"center",justifyContent:"stretch"},errorIcon:{paddingTop:5,color:"#C72C48"},successIcon:{paddingTop:5,color:"#42C91A"},hide:{opacity:0,transitionDuration:"0.3s"}},x.bK),x.ID),x.DF),x.QV))}))(J((function(e){var n=e.open,t=e.closeModalAndRefresh,a=e.classes,o=e.buckets,c=e.setModalErrorSnackMessage,l=(0,r.useState)(!1),d=(0,i.Z)(l,2),m=d[0],h=d[1],x=(0,r.useState)(!0),p=(0,i.Z)(x,2),g=p[0],j=p[1],v=(0,r.useState)([]),b=(0,i.Z)(v,2),k=b[0],y=b[1],C=(0,r.useState)(""),S=(0,i.Z)(C,2),N=S[0],P=S[1],B=(0,r.useState)(""),z=(0,i.Z)(B,2),D=z[0],W=z[1],K=(0,r.useState)(""),U=(0,i.Z)(K,2),O=U[0],q=U[1],H=(0,r.useState)(""),G=(0,i.Z)(H,2),Q=G[0],V=G[1],J=(0,r.useState)(!1),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,r.useState)("0"),ae=(0,i.Z)(te,2),ie=ae[0],se=ae[1],re=(0,r.useState)("0"),oe=(0,i.Z)(re,2),ce=oe[0],le=oe[1],de=(0,r.useState)("expiry"),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],xe=(0,r.useState)("0"),fe=(0,i.Z)(xe,2),pe=fe[0],ge=fe[1],Ze=(0,r.useState)("0"),je=(0,i.Z)(Ze,2),ve=je[0],be=je[1],ke=(0,r.useState)(!1),ye=(0,i.Z)(ke,2),Ce=ye[0],Se=ye[1],Ne=(0,r.useState)(null),Pe=(0,i.Z)(Ne,2),we=Pe[0],Be=Pe[1];(0,r.useEffect)((function(){g&&f.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=Z()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=Z()(e,"".concat(n,".name"),"");return{label:t,value:t}}));y(t),t.length>0&&q(t[0].value)}j(!1)})).catch((function(e){j(!1),c(e)}))}),[g,c]),(0,r.useEffect)((function(){var e=!0;"expiry"!==me&&""===O&&(e=!1),Se(e)}),[me,pe,ve,O]);var _e=function(e){var n=e.errString;switch(n){case"":return(0,w.jsx)("div",{className:a.successIcon,children:(0,w.jsx)(T.Z,{})});case"n/a":return null;default:if(n)return(0,w.jsx)("div",{className:a.errorIcon,children:(0,w.jsx)(_.Z,{title:n,placement:"top-start",children:(0,w.jsx)(R.Z,{})})})}return null};return(0,w.jsx)(E.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Set Lifecycle to multiple buckets",children:(0,w.jsx)(F.Z,{loadingStep:m||g,wizardSteps:[{label:"Lifecycle Configuration",componentRender:(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(M.Z,{label:"Local Buckets to replicate",content:o.join(", ")})}),(0,w.jsx)("h4",{children:"Remote Endpoint Configuration"}),(0,w.jsx)(u.ZP,{container:!0,children:(0,w.jsxs)(u.ZP,{item:!0,xs:12,className:a.formScrollable,children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsxs)("fieldset",{className:a.fieldGroup,children:[(0,w.jsx)("legend",{className:a.descriptionText,children:"Lifecycle Configuration"}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(Y.Z,{currentSelection:me,id:"quota_type",name:"quota_type",label:"ILM Rule",onChange:function(e){he(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),"expiry"===me?(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(I.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){ge(e.target.value)},label:"Expiry Days",value:pe,min:"0"})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(I.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){se(e.target.value)},label:"Non-current Expiration Days",value:ie,min:"0"})})]}):(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(I.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){be(e.target.value)},label:"Transition Days",value:ve,min:"0"})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(I.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){le(e.target.value)},label:"Non-current Transition Days",value:ce,min:"0"})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(I.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){V(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:Q})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsx)(A.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:O,onChange:function(e){q(e.target.value)},options:k})})]})]})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,w.jsxs)("fieldset",{className:a.fieldGroup,children:[(0,w.jsx)("legend",{className:a.descriptionText,children:"File Configuration"}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(I.Z,{id:"prefix",name:"prefix",onChange:function(e){P(e.target.value)},label:"Prefix",value:N})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)($.Z,{name:"tags",label:"Tags",elements:D,onChange:function(e){W(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})}),(0,w.jsx)(u.ZP,{item:!0,xs:12,children:(0,w.jsx)(L.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:ee,onChange:function(e){ne(e.target.checked)},label:"Expired Object Delete Marker"})})]})})]})})]}),buttons:[{type:"custom",label:"Create Rules",enabled:!g&&!m&&Ce,action:function(e){var n={};if("expiry"===me){var t={expiry_days:parseInt(pe)};n=(0,s.Z)((0,s.Z)({},t),{},{noncurrentversion_expiration_days:parseInt(ie)})}else{var a={transition_days:parseInt(ve)};n=(0,s.Z)((0,s.Z)({},a),{},{noncurrentversion_transition_days:parseInt(ce),noncurrentversion_transition_storage_class:Q,storage_class:O})}var i=(0,s.Z)({buckets:o,type:me,prefix:N,tags:D,expired_object_delete_marker:ee},n);f.Z.invoke("POST","/api/v1/buckets/multi-lifecycle",i).then((function(n){h(!1),Be(n),e("++")})).catch((function(e){h(!1),c(e)}))}}]},{label:"Results",componentRender:(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)("h3",{children:"Multi Bucket lifecycle Assignments Results"}),(0,w.jsx)(u.ZP,{container:!0,children:(0,w.jsxs)(u.ZP,{item:!0,xs:12,className:a.formScrollable,children:[(0,w.jsx)("h4",{children:"Buckets Results"}),null===we||void 0===we?void 0:we.results.map((function(e){return(0,w.jsxs)("div",{className:a.resultGrid,children:[_e({errString:e.error||""}),(0,w.jsx)("span",{children:e.bucketName})]})}))]})})]}),buttons:[{type:"custom",label:"Done",enabled:!m,action:function(){return t(!0)}}]}],forModal:!0})})}))),ee=t(49535),ne=(0,o.$j)(null,{setErrorSnackMessage:h.Ih})((0,l.Z)((function(e){return(0,c.Z)((0,s.Z)({bulkSelect:{marginLeft:8,"&:hover":{backgroundColor:e.palette.primary.main},"&.MuiButton-contained":{backgroundColor:e.palette.primary.main}},addBucket:{marginLeft:8},bucketList:{marginTop:25,height:"calc(100vh - 210px)"},searchField:(0,s.Z)((0,s.Z)({},x.qg.searchField),{},{minWidth:380,"@media (max-width: 900px)":{minWidth:220}})},(0,x.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.history,s=e.setErrorSnackMessage,o=(0,r.useState)([]),c=(0,i.Z)(o,2),l=c[0],h=c[1],x=(0,r.useState)(!0),g=(0,i.Z)(x,2),Z=g[0],j=g[1],v=(0,r.useState)(""),b=(0,i.Z)(v,2),k=b[0],y=b[1],P=(0,r.useState)([]),_=(0,i.Z)(P,2),R=_[0],T=_[1],I=(0,r.useState)(!1),E=(0,i.Z)(I,2),M=E[0],F=E[1],L=(0,r.useState)(!1),A=(0,i.Z)(L,2),z=A[0],D=A[1],Y=(0,r.useState)(!1),$=(0,i.Z)(Y,2),J=$[0],ne=$[1];(0,r.useEffect)((function(){if(Z){j(!0),f.Z.invoke("GET","/api/v1/buckets").then((function(e){j(!1),h(e.buckets||[])})).catch((function(e){j(!1),s(e)}))}}),[Z,s]);var te=l.filter((function(e){return""===k||e.name.indexOf(k)>=0})),ae=function(e){var n=e.target,t=n.value,i=n.checked,s=(0,a.Z)(R);return i?s.push(t):s=s.filter((function(e){return e!==t})),T(s),s},ie=(0,ee.Z)("*",[C.Ft.S3_CREATE_BUCKET]);return(0,w.jsxs)(r.Fragment,{children:[M&&(0,w.jsx)(W,{open:M,buckets:R,closeModalAndRefresh:function(e){F(!1),e&&T([])}}),z&&(0,w.jsx)(X,{buckets:R,closeModalAndRefresh:function(e){D(!1),e&&T([])},open:z}),(0,w.jsx)(p.Z,{label:"Buckets"}),(0,w.jsxs)(G.Z,{children:[(0,w.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,display:"flex",children:[(0,w.jsx)(Q.Z,{onChange:y,placeholder:"Search Buckets",overrideClass:n.searchField,value:k}),(0,w.jsxs)(u.ZP,{item:!0,xs:12,display:"flex",alignItems:"center",justifyContent:"flex-end",children:[(0,w.jsx)(N.Z,{tooltip:J?"Unselect Buckets":"Select Multiple Buckets",onClick:function(){ne(!J),T([])},text:"",icon:(0,w.jsx)(H.Z,{}),color:"primary",variant:J?"contained":"outlined"}),J&&(0,w.jsx)(N.Z,{tooltip:R.length===te.length?"Unselect All Buckets":"Select All Buckets",onClick:function(){if(R.length!==te.length){var e=te.map((function(e){return e.name}));T(e)}else T([])},text:"",icon:(0,w.jsx)(m.QQ,{}),color:"primary",variant:"outlined"}),(0,w.jsx)(N.Z,{tooltip:"Set Lifecycle",onClick:function(){D(!0)},text:"",icon:(0,w.jsx)(m.QI,{}),disabled:0===R.length,color:"primary",variant:"outlined"}),(0,w.jsx)(N.Z,{tooltip:"Set Replication",onClick:function(){F(!0)},text:"",icon:(0,w.jsx)(q.Z,{}),disabled:0===R.length,color:"primary",variant:"outlined"}),(0,w.jsx)(N.Z,{tooltip:"Refresh",onClick:function(){j(!0)},text:"",icon:(0,w.jsx)(U.default,{}),color:"primary",variant:"outlined"}),(0,w.jsx)(N.Z,{tooltip:"Create Bucket",onClick:function(){t.push("/add-bucket")},text:"Create Bucket",icon:(0,w.jsx)(m.dt,{}),color:"primary",variant:"contained",disabled:!ie})]})]}),Z&&(0,w.jsx)(d.Z,{}),!Z&&(0,w.jsxs)(u.ZP,{item:!0,xs:12,className:n.bucketList,children:[0!==te.length&&(0,w.jsx)(V.Z,{rowRenderFunction:function(e){var n=te[e]||null;return n?(0,w.jsx)(B,{bucket:n,onSelect:ae,selected:R.includes(n.name),bulkSelect:J}):null},totalItems:te.length}),0===te.length&&""!==k&&(0,w.jsx)(u.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,w.jsx)(u.ZP,{item:!0,xs:8,children:(0,w.jsx)(K.Z,{iconComponent:(0,w.jsx)(m.wN,{}),title:"No Results",help:(0,w.jsx)(r.Fragment,{children:"No buckets match the filtering condition"})})})}),0===te.length&&""===k&&(0,w.jsx)(u.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,w.jsx)(u.ZP,{item:!0,xs:8,children:(0,w.jsx)(K.Z,{iconComponent:(0,w.jsx)(m.wN,{}),title:"Buckets",help:(0,w.jsxs)(r.Fragment,{children:["MinIO uses buckets to organize objects. A bucket is similar to a folder or directory in a filesystem, where each bucket can hold an arbitrary number of objects.",(0,w.jsxs)(S.s,{scopes:[C.Ft.S3_CREATE_BUCKET],resource:C.C3,children:[(0,w.jsx)("br",{}),(0,w.jsx)("br",{}),"To get started,\xa0",(0,w.jsx)(O.Z,{onClick:function(){t.push("/add-bucket")},children:"Create a Bucket."})]})]})})})})]})]})]})})))},81806:function(e,n,t){var a=t(1413),i=t(45987),s=(t(72791),t(11135)),r=t(25787),o=t(80184),c=["classes","children"];n.Z=(0,r.Z)((function(e){return(0,s.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,s=(0,i.Z)(e,c);return(0,o.jsx)("button",(0,a.Z)((0,a.Z)({},s),{},{className:n.root,children:t}))}))},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),m=t(84570),h=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,x=void 0!==u&&u,f=e.disabled,p=void 0!==f&&f,g=e.noTopMargin,Z=void 0!==g&&g,j=e.tooltip,v=void 0===j?"":j,b=e.overrideLabelClasses,k=void 0===b?"":b,y=e.classes;return(0,h.jsx)(i.Fragment,{children:(0,h.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(y.fieldContainer," ").concat(Z?y.noTopMargin:""),children:[(0,h.jsx)("div",{children:(0,h.jsx)(r.Z,{name:d,id:l,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:x,onChange:t,checkedIcon:(0,h.jsx)("span",{className:y.checkedIcon}),icon:(0,h.jsx)("span",{className:y.unCheckedIcon}),disabled:p})}),""!==n&&(0,h.jsxs)(o.Z,{htmlFor:l,className:"".concat(y.noMinWidthLabel," ").concat(k),children:[(0,h.jsx)("span",{children:n}),""!==v&&(0,h.jsx)("div",{className:y.tooltipContainer,children:(0,h.jsx)(c.Z,{title:v,placement:"top-start",children:(0,h.jsx)("div",{className:y.tooltip,children:(0,h.jsx)(m.Z,{})})})})]})]})})}))},64163:function(e,n,t){var a=t(1413),i=t(72791),s=t(61889),r=t(11135),o=t(25787),c=t(23814),l=t(80184);n.Z=(0,o.Z)((function(e){return(0,r.Z)((0,a.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,a=void 0===t?"":t,r=e.content,o=e.multiLine,c=void 0!==o&&o;return(0,l.jsx)(i.Fragment,{children:(0,l.jsxs)(s.ZP,{className:n.prefinedContainer,children:[""!==a&&(0,l.jsx)(s.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:a}),(0,l.jsx)(s.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,l.jsx)(s.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:r})})]})})}))},17420:function(e,n,t){var a=t(93433),i=t(29439),s=t(1413),r=t(72791),o=t(26181),c=t.n(o),l=t(48573),d=t.n(l),u=t(11135),m=t(25787),h=t(61889),x=t(77961),f=t(30829),p=t(20068),g=t(23814),Z=t(21435),j=t(47919),v=t(80184);n.Z=(0,m.Z)((function(e){return(0,u.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},g.YI),g.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,l=void 0===o?"":o,u=e.keyPlaceholder,m=void 0===u?"":u,g=e.valuePlaceholder,b=void 0===g?"":g,k=e.onChange,y=e.withBorder,C=void 0!==y&&y,S=e.classes,N=(0,r.useState)([""]),P=(0,i.Z)(N,2),w=P[0],B=P[1],_=(0,r.useState)([""]),R=(0,i.Z)(_,2),T=R[0],I=R[1],E=(0,r.createRef)();(0,r.useEffect)((function(){if(1===w.length&&""===w[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(""),B(t),I(a)}}),[w,T,n]),(0,r.useEffect)((function(){var e=E.current;e&&w.length>1&&e.scrollIntoView(!1)}),[w]);var M=(0,r.useRef)(!0);(0,r.useLayoutEffect)((function(){M.current?M.current=!1:A()}),[w,T]);var F=function(e){e.persist();var n=(0,a.Z)(w);n[c()(e.target,"dataset.index",0)]=e.target.value,B(n)},L=function(e){e.persist();var n=(0,a.Z)(T);n[c()(e.target,"dataset.index",0)]=e.target.value,I(n)},A=d()((function(){var e="";w.forEach((function(n,t){if(w[t]&&T[t]){var a="".concat(n,"=").concat(T[t]);0!==t&&(a="&".concat(a)),e="".concat(e).concat(a)}})),k(e)}),500),z=T.map((function(e,n){return(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:S.lineInputBoxes,children:[(0,v.jsx)(Z.Z,{id:"".concat(t,"-key-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:w[n],onChange:F,index:n,placeholder:m}),(0,v.jsx)("span",{className:S.queryDiv,children:":"}),(0,v.jsx)(Z.Z,{id:"".concat(t,"-value-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:T[n],onChange:L,index:n,placeholder:b,overlayIcon:n===T.length-1?(0,v.jsx)(j.Z,{}):null,overlayAction:function(){!function(){if(""!==w[w.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,a.Z)(w),n=(0,a.Z)(T);e.push(""),n.push(""),B(e),I(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,v.jsx)(r.Fragment,{children:(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:S.fieldContainer,children:[(0,v.jsxs)(f.Z,{className:S.inputLabel,children:[(0,v.jsx)("span",{children:s}),""!==l&&(0,v.jsx)("div",{className:S.tooltipContainer,children:(0,v.jsx)(p.Z,{title:l,placement:"top-start",children:(0,v.jsx)(x.Z,{className:S.tooltip})})})]}),(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(C?S.inputWithBorder:""),children:[z,(0,v.jsx)("div",{ref:E})]})]})})}))},56028:function(e,n,t){var a=t(29439),i=t(1413),s=t(72791),r=t(60364),o=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),m=t(11135),h=t(25787),x=t(23814),f=t(42649),p=t(29823),g=t(28057),Z=t(80184),j=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});n.Z=(0,h.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},x.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,r=e.title,m=e.children,h=e.classes,x=e.wideLimit,f=void 0===x||x,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,k=e.titleIcon,y=void 0===k?null:k,C=(0,s.useState)(!1),S=(0,a.Z)(C,2),N=S[0],P=S[1];(0,s.useEffect)((function(){b("")}),[b]),(0,s.useEffect)((function(){if(j){if(""===j.message)return void P(!1);"error"!==j.type&&P(!0)}}),[j]);var w=f?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},B="";return j&&(B=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(B=j.message)),(0,Z.jsxs)(l.Z,(0,i.Z)((0,i.Z)({open:t,classes:h},w),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:h.root,children:[(0,Z.jsxs)(d.Z,{className:h.title,children:[(0,Z.jsxs)("div",{className:h.titleText,children:[y," ",r]}),(0,Z.jsx)("div",{className:h.closeContainer,children:(0,Z.jsx)(o.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(p.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(c.Z,{open:N,className:h.snackBarModal,onClose:function(){P(!1),b("")},message:B,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},59114:function(e,n,t){var a=t(4942),i=t(1413),s=(t(72791),t(63466)),r=t(74900),o=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,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,m=e.overrideClass,h=e.value,x=(0,a.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(s.Z,{position:d,className:i.adornment,children:(0,u.jsx)(r.Z,{})}));return(0,u.jsx)(o.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},98994:function(e,n,t){var a=t(72791),i=t(22338),s=t(79762),r=t(5171),o=t(80184),c={};n.Z=function(e){var n=e.rowRenderFunction,t=e.totalItems,l=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)(s.Z,{isItemLoaded:function(e){return!!c[e]},loadMoreItems:function(e,n){for(var t=e;t<=n;t++)c[t]=1;for(var a=e;a<=n;a++)c[a]=2},itemCount:t,children:function(e){var n=e.onItemsRendered,a=e.ref;return(0,o.jsx)(r.qj,{children:function(e){var s=e.width,r=e.height;return(0,o.jsx)(i.t7,{itemSize:l||220,height:r,itemCount:t,width:s,ref:a,onItemsRendered:n,children:d})}})}})})}}}]); +//# sourceMappingURL=9467.50ab01b6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9467.50ab01b6.chunk.js.map b/portal-ui/build/static/js/9467.50ab01b6.chunk.js.map new file mode 100644 index 000000000..40c212ed0 --- /dev/null +++ b/portal-ui/build/static/js/9467.50ab01b6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9467.50ab01b6.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/ListBuckets/BucketListItem.tsx","screens/Console/Buckets/ListBuckets/BulkReplicationModal.tsx","screens/Console/Buckets/ListBuckets/BulkLifecycleModal.tsx","screens/Console/Buckets/ListBuckets/ListBuckets.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/FormComponents/CheckboxWrapper/CheckboxWrapper.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.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 .\nimport React, { Fragment } 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 ArrowRightIcon,\n BucketsIcon,\n ReportedUsageIcon,\n SettingsIcon,\n TotalObjectsIcon,\n} from \"../../../../icons\";\nimport { Bucket } from \"../types\";\nimport { Box, Grid, Typography } from \"@mui/material\";\nimport {\n calculateBytes,\n niceBytes,\n prettyNumber,\n} from \"../../../../common/utils\";\nimport CheckboxWrapper from \"../../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport { Link } from \"react-router-dom\";\nimport {\n IAM_PERMISSIONS,\n IAM_ROLES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n marginBottom: 30,\n padding: 20,\n color: theme.palette.primary.main,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n \"& .min-icon\": {\n height: 14,\n width: 14,\n marginRight: 4,\n },\n \"& .MuiTypography-body2\": {\n fontSize: 14,\n },\n \"& .MuiCardHeader-content\": {\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n wordBreak: \"break-all\",\n font: \"normal normal bold 24px/27px Lato\",\n color: theme.palette.primary.main,\n\n \"& .MuiTypography-root\": {\n fontSize: 19,\n fontWeight: \"bold\",\n \"& .min-icon\": {\n position: \"relative\",\n top: 4,\n marginRight: 4,\n height: \"24px !important\",\n },\n },\n },\n \"& .MuiCardHeader-root\": {\n background:\n \"transparent linear-gradient(0deg, #EEF1F44E 0%, #FFFFFF 100%) 0% 0% no-repeat padding-box\",\n },\n },\n checkBoxElement: {\n width: 32,\n height: 32,\n float: \"left\",\n overflow: \"hidden\",\n \"& div\": {\n position: \"absolute\",\n },\n },\n viewButton: {\n width: 111,\n color: \"white\",\n marginLeft: 8,\n fontSize: 12,\n fontWeight: \"normal\",\n boxShadow: \"unset\",\n borderRadius: 4,\n },\n manageButton: {\n borderRadius: 4,\n width: 111,\n color: theme.palette.grey[\"700\"],\n textTransform: \"unset\",\n fontSize: 12,\n fontWeight: \"normal\",\n \"& .MuiButton-endIcon\": {\n \"& .min-icon\": {\n fontSize: 18,\n },\n },\n },\n metric: {\n \"& .min-icon\": {\n color: \"#000000\",\n width: 13,\n marginRight: 5,\n },\n },\n metricLabel: {\n fontSize: 14,\n fontWeight: \"bold\",\n color: \"#000000\",\n },\n metricText: {\n fontSize: 24,\n fontWeight: \"bold\",\n },\n unit: {\n fontSize: 12,\n fontWeight: \"normal\",\n },\n bucketName: {\n padding: 0,\n margin: 0,\n fontSize: 22,\n },\n bucketIcon: {\n \"& .min-icon\": {\n height: 48,\n width: 48,\n color: theme.palette.primary.main,\n },\n },\n bucketInfo: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column-reverse\",\n },\n },\n bucketStats: {\n marginTop: 15,\n borderTop: \"1px solid rgb(234,234,234, .7)\",\n paddingTop: 14,\n },\n bucketActionButtons: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n\n \"@media (max-width: 900px)\": {\n marginTop: \"-33px\",\n },\n },\n });\n\ninterface IBucketListItem {\n bucket: Bucket;\n classes: any;\n onSelect: (e: React.ChangeEvent) => void;\n selected: boolean;\n bulkSelect: boolean;\n}\n\nconst BucketListItem = ({\n classes,\n bucket,\n onSelect,\n selected,\n bulkSelect,\n}: IBucketListItem) => {\n const usage = niceBytes(`${bucket.size}` || \"0\");\n const usageScalar = usage.split(\" \")[0];\n const usageUnit = usage.split(\" \")[1];\n\n const quota = get(bucket, \"details.quota.quota\", \"0\");\n const quotaForString = calculateBytes(quota);\n\n const accessToStr = (bucket: Bucket): string => {\n if (bucket.rw_access?.read && !bucket.rw_access?.write) {\n return \"R\";\n } else if (!bucket.rw_access?.read && bucket.rw_access?.write) {\n return \"W\";\n } else if (bucket.rw_access?.read && bucket.rw_access?.write) {\n return \"R/W\";\n }\n return \"\";\n };\n const onCheckboxClick = (e: React.ChangeEvent) => {\n onSelect(e);\n };\n\n return (\n \n \n \n \n \n \n {bulkSelect && (\n {\n e.stopPropagation();\n }}\n >\n \n
    \n )}\n

    {bucket.name}

    \n
    \n \n \n \n \n Created: {bucket.creation_date}\n \n \n \n \n Access: {accessToStr(bucket)}\n \n \n \n \n \n \n \n \n \n {}}\n text={\"Manage\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n {}}\n text={\"Browse\"}\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 Usage\n
    \n {usageScalar}\n {usageUnit}\n {quota !== \"0\" && (\n \n {\" \"}\n / {quotaForString.total}\n {quotaForString.unit}\n \n )}\n
    \n
    \n \n \n Objects\n
    \n {bucket.objects ? prettyNumber(bucket.objects) : 0}\n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(BucketListItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { SelectChangeEvent, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { BulkReplicationItem, BulkReplicationResponse } from \"../types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport api from \"../../../../common/api\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { SelectorTypes } from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { getBytes, k8sScalarUnitsExcluding } from \"../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IBulkReplicationModal {\n open: boolean;\n closeModalAndRefresh: (clearSelection: boolean) => any;\n classes: any;\n buckets: string[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n remoteBucketList: {\n display: \"grid\",\n gridTemplateColumns: \"auto auto 45px\",\n alignItems: \"center\",\n justifyContent: \"stretch\",\n },\n errorIcon: {\n color: \"#C72C48\",\n },\n successIcon: {\n color: \"#42C91A\",\n },\n hide: {\n opacity: 0,\n transitionDuration: \"0.3s\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst AddBulkReplicationModal = ({\n open,\n closeModalAndRefresh,\n classes,\n buckets,\n setModalErrorSnackMessage,\n}: IBulkReplicationModal) => {\n const [bucketsToAlter, setBucketsToAlter] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [externalLoading, setExternalLoading] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [targetURL, setTargetURL] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [useTLS, setUseTLS] = useState(true);\n const [replicationMode, setReplicationMode] = useState(\"async\");\n const [bandwidthScalar, setBandwidthScalar] = useState(\"100\");\n const [bandwidthUnit, setBandwidthUnit] = useState(\"Gi\");\n const [healthCheck, setHealthCheck] = useState(\"60\");\n const [relationBuckets, setRelationBuckets] = useState([]);\n const [remoteBucketsOpts, setRemoteBucketOpts] = useState([]);\n const [responseItem, setResponseItem] = useState([]);\n\n const optionsForBucketsDrop: SelectorTypes[] = remoteBucketsOpts.map(\n (remoteBucketName: string) => {\n return {\n label: remoteBucketName,\n value: remoteBucketName,\n };\n }\n );\n\n useEffect(() => {\n if (relationBuckets.length === 0) {\n const bucketsAlter: string[] = [];\n const relationBucketsAlter: string[] = [];\n\n buckets.forEach((item: string) => {\n bucketsAlter.push(item);\n relationBucketsAlter.push(\"\");\n });\n\n setRelationBuckets(relationBucketsAlter);\n setBucketsToAlter(bucketsAlter);\n }\n }, [buckets, relationBuckets.length]);\n\n const addRecord = () => {\n setAddLoading(true);\n const replicate = bucketsToAlter.map((bucketName, index) => {\n return {\n originBucket: bucketName,\n destinationBucket: relationBuckets[index],\n };\n });\n\n const endURL = `${useTLS ? \"https://\" : \"http://\"}${targetURL}`;\n const hc = parseInt(healthCheck);\n\n const remoteBucketsInfo = {\n accessKey: accessKey,\n secretKey: secretKey,\n targetURL: endURL,\n region: region,\n bucketsRelation: replicate,\n syncMode: replicationMode,\n bandwidth:\n replicationMode === \"async\"\n ? parseInt(getBytes(bandwidthScalar, bandwidthUnit, true))\n : 0,\n healthCheckPeriod: hc,\n };\n\n api\n .invoke(\"POST\", \"/api/v1/buckets-replication\", remoteBucketsInfo)\n .then((response: BulkReplicationResponse) => {\n setAddLoading(false);\n\n const states = response.replicationState;\n setResponseItem(states);\n\n const filterErrors = states.filter(\n (itm) => itm.errorString && itm.errorString !== \"\"\n );\n\n if (filterErrors.length === 0) {\n closeModalAndRefresh(true);\n } else {\n setTimeout(() => {\n removeSuccessItems(states);\n }, 500);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const retrieveRemoteBuckets = (\n wizardPageJump: (page: number | string) => void\n ) => {\n const remoteConnectInfo = {\n accessKey: accessKey,\n secretKey: secretKey,\n targetURL: targetURL,\n useTLS,\n };\n setExternalLoading(true);\n\n api\n .invoke(\"POST\", \"/api/v1/list-external-buckets\", remoteConnectInfo)\n .then((dataReturn) => {\n const buckets = get(dataReturn, \"buckets\", []);\n\n if (buckets && buckets.length > 0) {\n const arrayReplaceBuckets = buckets.map((element: any) => {\n return element.name;\n });\n\n setRemoteBucketOpts(arrayReplaceBuckets);\n }\n\n wizardPageJump(\"++\");\n setExternalLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setExternalLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const stateOfItem = (initialBucket: string) => {\n if (responseItem.length > 0) {\n const bucketResponse = responseItem.find(\n (item) => item.originBucket === initialBucket\n );\n\n if (bucketResponse) {\n const errString = get(bucketResponse, \"errorString\", \"\");\n\n if (errString) {\n return errString;\n }\n\n return \"\";\n }\n }\n return \"n/a\";\n };\n\n const LogoToShow = ({ errString }: { errString: string }) => {\n switch (errString) {\n case \"\":\n return (\n
    \n \n
    \n );\n case \"n/a\":\n return null;\n default:\n if (errString) {\n return (\n
    \n \n \n \n
    \n );\n }\n }\n return null;\n };\n\n const updateItem = (indexItem: number, value: string) => {\n const updatedList = [...relationBuckets];\n updatedList[indexItem] = value;\n setRelationBuckets(updatedList);\n };\n\n const itemDisplayBulk = (indexItem: number) => {\n if (remoteBucketsOpts.length > 0) {\n return (\n \n ) => {\n updateItem(indexItem, e.target.value as string);\n }}\n options={optionsForBucketsDrop}\n disabled={addLoading}\n />\n \n );\n }\n return (\n \n ) => {\n updateItem(indexItem, event.target.value);\n }}\n value={relationBuckets[indexItem]}\n disabled={addLoading}\n />\n \n );\n };\n\n const removeSuccessItems = (responseItem: BulkReplicationItem[]) => {\n let newBucketsToAlter = [...bucketsToAlter];\n let newRelationBuckets = [...relationBuckets];\n\n responseItem.forEach((successElement) => {\n const errorString = get(successElement, \"errorString\", \"\");\n\n if (!errorString || errorString === \"\") {\n const indexToRemove = newBucketsToAlter.indexOf(\n successElement.originBucket\n );\n\n newBucketsToAlter.splice(indexToRemove, 1);\n newRelationBuckets.splice(indexToRemove, 1);\n }\n });\n\n setBucketsToAlter(newBucketsToAlter);\n setRelationBuckets(newRelationBuckets);\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Set Multiple Bucket Replication\"\n >\n \n \n \n \n

    Remote Endpoint Configuration

    \n \n Please avoid the use of root credentials for this feature\n \n
    \n
    \n \n ) => {\n setAccessKey(e.target.value);\n }}\n label=\"Access Key\"\n value={accessKey}\n />\n \n \n ) => {\n setSecretKey(e.target.value);\n }}\n label=\"Secret Key\"\n value={secretKey}\n />\n \n \n ) => {\n setTargetURL(e.target.value);\n }}\n placeholder=\"play.min.io:9000\"\n label=\"Target URL\"\n value={targetURL}\n />\n \n \n {\n setUseTLS(e.target.checked);\n }}\n value=\"yes\"\n />\n \n \n ) => {\n setRegion(e.target.value);\n }}\n label=\"Region\"\n value={region}\n />\n \n \n ) => {\n setReplicationMode(e.target.value as string);\n }}\n label=\"Replication Mode\"\n value={replicationMode}\n options={[\n { label: \"Asynchronous\", value: \"async\" },\n { label: \"Synchronous\", value: \"sync\" },\n ]}\n />\n \n {replicationMode === \"async\" && (\n \n ) => {\n if (e.target.validity.valid) {\n setBandwidthScalar(e.target.value as string);\n }\n }}\n label=\"Bandwidth\"\n value={bandwidthScalar}\n min=\"0\"\n pattern={\"[0-9]*\"}\n overlayObject={\n {\n setBandwidthUnit(newValue);\n }}\n unitSelected={bandwidthUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n />\n \n )}\n \n ) => {\n setHealthCheck(e.target.value as string);\n }}\n label=\"Health Check Duration\"\n value={healthCheck}\n />\n \n \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Next\",\n enabled: !externalLoading,\n action: retrieveRemoteBuckets,\n },\n ],\n },\n {\n label: \"Bucket Assignments\",\n componentRender: (\n \n

    Remote Bucket Assignments

    \n \n Please select / type the desired remote bucket were you want\n the local data to be replicated.\n \n
    \n {bucketsToAlter.map((bucketName: string, index: number) => {\n const errorItem = stateOfItem(bucketName);\n return (\n \n
    \n {bucketName}\n
    \n
    \n {itemDisplayBulk(index)}\n
    \n
    \n {responseItem.length > 0 && (\n \n )}\n
    \n \n );\n })}\n
    \n
    \n ),\n buttons: [\n {\n type: \"back\",\n label: \"Back\",\n enabled: true,\n },\n {\n type: \"next\",\n label: \"Create\",\n enabled: !addLoading,\n action: addRecord,\n },\n ],\n },\n ]}\n forModal\n />\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddBulkReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { SelectChangeEvent, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport api from \"../../../../common/api\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport { ITiersDropDown } from \"../BucketDetails/AddLifecycleModal\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport { MultiBucketResult } from \"../types\";\n\ninterface IBulkReplicationModal {\n open: boolean;\n closeModalAndRefresh: (clearSelection: boolean) => any;\n classes: any;\n buckets: string[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n resultGrid: {\n display: \"grid\",\n gridTemplateColumns: \"45px auto\",\n alignItems: \"center\",\n justifyContent: \"stretch\",\n },\n errorIcon: {\n paddingTop: 5,\n color: \"#C72C48\",\n },\n successIcon: {\n paddingTop: 5,\n color: \"#42C91A\",\n },\n hide: {\n opacity: 0,\n transitionDuration: \"0.3s\",\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddBulkReplicationModal = ({\n open,\n closeModalAndRefresh,\n classes,\n buckets,\n setModalErrorSnackMessage,\n}: IBulkReplicationModal) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = 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 const [results, setResults] = useState(null);\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 setModalErrorSnackMessage(err);\n });\n }\n }, [loadingTiers, setModalErrorSnackMessage]);\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 LogoToShow = ({ errString }: { errString: string }) => {\n switch (errString) {\n case \"\":\n return (\n
    \n \n
    \n );\n case \"n/a\":\n return null;\n default:\n if (errString) {\n return (\n
    \n \n \n \n
    \n );\n }\n }\n return null;\n };\n\n const createLifecycleRules = (to: any) => {\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 lifecycleInsert = {\n buckets,\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\n ...rules,\n };\n\n api\n .invoke(\"POST\", `/api/v1/buckets/multi-lifecycle`, lifecycleInsert)\n .then((res: MultiBucketResult) => {\n setAddLoading(false);\n setResults(res);\n to(\"++\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Set Lifecycle to multiple buckets\"\n >\n \n \n \n \n

    Remote Endpoint Configuration

    \n \n \n \n
    \n \n Lifecycle Configuration\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 {ilmType === \"expiry\" ? (\n \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 ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\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 ) => {\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 ) => {\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 setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n
    \n
    \n
    \n
    \n \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Create Rules\",\n enabled: !loadingTiers && !addLoading && isFormValid,\n action: createLifecycleRules,\n },\n ],\n },\n {\n label: \"Results\",\n componentRender: (\n \n

    Multi Bucket lifecycle Assignments Results

    \n \n \n

    Buckets Results

    \n {results?.results.map((resultItem) => {\n return (\n
    \n {LogoToShow({ errString: resultItem.error || \"\" })}\n {resultItem.bucketName}\n
    \n );\n })}\n
    \n
    \n
    \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Done\",\n enabled: !addLoading,\n action: () => closeModalAndRefresh(true),\n },\n ],\n },\n ]}\n forModal\n />\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddBulkReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 Grid from \"@mui/material/Grid\";\nimport { Bucket, BucketList } from \"../types\";\nimport {\n AddIcon,\n BucketsIcon,\n LifecycleConfigIcon,\n SelectAllIcon,\n} from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport BucketListItem from \"./BucketListItem\";\nimport BulkReplicationModal from \"./BulkReplicationModal\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport MultipleBucketsIcon from \"../../../../icons/MultipleBucketsIcon\";\nimport SelectMultipleIcon from \"../../../../icons/SelectMultipleIcon\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport BulkLifecycleModal from \"./BulkLifecycleModal\";\nimport hasPermission from \"../../../../common/SecureComponent/accessControl\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n bulkSelect: {\n marginLeft: 8,\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n },\n \"&.MuiButton-contained\": {\n backgroundColor: theme.palette.primary.main,\n },\n },\n addBucket: {\n marginLeft: 8,\n },\n bucketList: {\n marginTop: 25,\n height: \"calc(100vh - 210px)\",\n },\n searchField: {\n ...searchField.searchField,\n minWidth: 380,\n \"@media (max-width: 900px)\": {\n minWidth: 220,\n },\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IListBucketsProps {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListBuckets = ({\n classes,\n history,\n setErrorSnackMessage,\n}: IListBucketsProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [filterBuckets, setFilterBuckets] = useState(\"\");\n const [selectedBuckets, setSelectedBuckets] = useState([]);\n const [replicationModalOpen, setReplicationModalOpen] =\n useState(false);\n const [lifecycleModalOpen, setLifecycleModalOpen] = useState(false);\n\n const [bulkSelect, setBulkSelect] = useState(false);\n\n useEffect(() => {\n if (loading) {\n const fetchRecords = () => {\n setLoading(true);\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n setLoading(false);\n setRecords(res.buckets || []);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n };\n fetchRecords();\n }\n }, [loading, setErrorSnackMessage]);\n\n const filteredRecords = records.filter((b: Bucket) => {\n if (filterBuckets === \"\") {\n return true;\n } else {\n return b.name.indexOf(filterBuckets) >= 0;\n }\n });\n\n const selectListBuckets = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedBuckets]; // 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 setSelectedBuckets(elements);\n\n return elements;\n };\n\n const closeBulkReplicationModal = (unselectAll: boolean) => {\n setReplicationModalOpen(false);\n\n if (unselectAll) {\n setSelectedBuckets([]);\n }\n };\n\n const closeBulkLifecycleModal = (unselectAll: boolean) => {\n setLifecycleModalOpen(false);\n\n if (unselectAll) {\n setSelectedBuckets([]);\n }\n };\n\n const renderItemLine = (index: number) => {\n const bucket = filteredRecords[index] || null;\n if (bucket) {\n return (\n \n );\n }\n return null;\n };\n\n const selectAllBuckets = () => {\n if (selectedBuckets.length === filteredRecords.length) {\n setSelectedBuckets([]);\n return;\n }\n\n const selectAllBuckets = filteredRecords.map((bucket) => {\n return bucket.name;\n });\n\n setSelectedBuckets(selectAllBuckets);\n };\n\n const canCreateBucket = hasPermission(\"*\", [IAM_SCOPES.S3_CREATE_BUCKET]);\n\n return (\n \n {replicationModalOpen && (\n \n )}\n {lifecycleModalOpen && (\n \n )}\n \n \n \n \n\n \n {\n setBulkSelect(!bulkSelect);\n setSelectedBuckets([]);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={bulkSelect ? \"contained\" : \"outlined\"}\n />\n\n {bulkSelect && (\n }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n )}\n\n {\n setLifecycleModalOpen(true);\n }}\n text={\"\"}\n icon={}\n disabled={selectedBuckets.length === 0}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n setReplicationModalOpen(true);\n }}\n text={\"\"}\n icon={}\n disabled={selectedBuckets.length === 0}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n setLoading(true);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n history.push(\"/add-bucket\");\n }}\n text={\"Create Bucket\"}\n icon={}\n color={\"primary\"}\n variant={\"contained\"}\n disabled={!canCreateBucket}\n />\n \n \n\n {loading && }\n {!loading && (\n \n {filteredRecords.length !== 0 && (\n \n )}\n {filteredRecords.length === 0 && filterBuckets !== \"\" && (\n \n \n }\n title={\"No Results\"}\n help={\n \n No buckets match the filtering condition\n \n }\n />\n \n \n )}\n {filteredRecords.length === 0 && filterBuckets === \"\" && (\n \n \n }\n title={\"Buckets\"}\n help={\n \n MinIO uses buckets to organize objects. A bucket is\n similar to a folder or directory in a filesystem, where\n each bucket can hold an arbitrary number of objects.\n \n
    \n
    \n To get started, \n {\n history.push(\"/add-bucket\");\n }}\n >\n Create a Bucket.\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 connector(withStyles(styles)(ListBuckets));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React 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, { 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, {\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, { 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 .\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"],"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","padding","color","palette","primary","main","wordWrap","overflowWrap","wordBreak","font","position","top","background","checkBoxElement","float","overflow","viewButton","marginLeft","boxShadow","manageButton","grey","textTransform","metric","metricLabel","metricText","unit","bucketName","margin","bucketIcon","bucketInfo","flexFlow","bucketStats","marginTop","borderTop","bucketActionButtons","justifyContent","bucket","onSelect","selected","bulkSelect","usage","niceBytes","size","usageScalar","split","usageUnit","quota","get","quotaForString","calculateBytes","Grid","clsx","sm","onClick","e","stopPropagation","CheckboxWrapper","checked","id","name","label","onChange","value","Typography","variant","creation_date","rw_access","read","write","accessToStr","SecureComponent","scopes","IAM_PERMISSIONS","IAM_ROLES","resource","to","style","textDecoration","RBIconButton","tooltip","text","icon","Box","spacing","textAlign","Fragment","total","objects","prettyNumber","connector","connect","setModalErrorSnackMessage","remoteBucketList","gridTemplateColumns","errorIcon","successIcon","hide","opacity","transitionDuration","modalBasic","wizardCommon","open","closeModalAndRefresh","buckets","useState","bucketsToAlter","setBucketsToAlter","addLoading","setAddLoading","externalLoading","setExternalLoading","accessKey","setAccessKey","secretKey","setSecretKey","targetURL","setTargetURL","region","setRegion","useTLS","setUseTLS","replicationMode","setReplicationMode","bandwidthScalar","setBandwidthScalar","bandwidthUnit","setBandwidthUnit","healthCheck","setHealthCheck","relationBuckets","setRelationBuckets","remoteBucketsOpts","setRemoteBucketOpts","responseItem","setResponseItem","optionsForBucketsDrop","map","remoteBucketName","useEffect","length","bucketsAlter","relationBucketsAlter","forEach","push","LogoToShow","errString","CheckCircleOutline","Tooltip","placement","ErrorOutline","updateItem","indexItem","updatedList","removeSuccessItems","newBucketsToAlter","newRelationBuckets","successElement","errorString","indexToRemove","indexOf","originBucket","splice","ModalWrapper","modalOpen","onClose","GenericWizard","loadingStep","wizardSteps","componentRender","PredefinedList","content","join","descriptionText","InputBoxWrapper","target","placeholder","FormSwitchWrapper","SelectWrapper","options","type","validity","valid","min","pattern","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","buttons","enabled","action","wizardPageJump","remoteConnectInfo","api","then","dataReturn","arrayReplaceBuckets","element","catch","err","index","errorItem","initialBucket","bucketResponse","find","stateOfItem","event","toString","replicate","destinationBucket","endURL","hc","parseInt","remoteBucketsInfo","bucketsRelation","syncMode","bandwidth","getBytes","healthCheckPeriod","response","states","replicationState","filter","itm","setTimeout","forModal","resultGrid","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","loadingTiers","setLoadingTiers","tiersList","setTiersList","prefix","setPrefix","tags","setTags","storageClass","setStorageClass","NCTransitionSC","setNCTransitionSC","expiredObjectDM","setExpiredObjectDM","NCExpirationDays","setNCExpirationDays","NCTransitionDays","setNCTransitionDays","ilmType","setIlmType","expiryDays","setExpiryDays","transitionDays","setTransitionDays","isFormValid","setIsFormValid","results","setResults","res","objList","tier","tierType","formScrollable","formFieldRow","fieldGroup","RadioGroupSelector","currentSelection","selectorOptions","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","rules","expiry","expiry_days","noncurrentversion_expiration_days","transition","transition_days","noncurrentversion_transition_days","noncurrentversion_transition_storage_class","storage_class","lifecycleInsert","expired_object_delete_marker","resultItem","error","setErrorSnackMessage","addBucket","bucketList","searchField","minWidth","containerForHeader","history","records","setRecords","loading","setLoading","filterBuckets","setFilterBuckets","selectedBuckets","setSelectedBuckets","replicationModalOpen","setReplicationModalOpen","lifecycleModalOpen","setLifecycleModalOpen","setBulkSelect","filteredRecords","b","selectListBuckets","targetD","canCreateBucket","hasPermission","IAM_SCOPES","BulkReplicationModal","unselectAll","BulkLifecycleModal","PageHeader","PageLayout","actionsTray","SearchBox","overrideClass","SelectMultipleIcon","selectAllBuckets","MultipleBucketsIcon","RefreshIcon","LinearProgress","VirtualizedList","rowRenderFunction","includes","totalItems","alignContent","HelpBox","CONSOLE_UI_RESOURCE","AButton","cursor","info","fontFamily","children","rest","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","flexBasis","noTopMargin","overrideLabelClasses","inputProps","checkedIcon","unCheckedIcon","htmlFor","noMinWidthLabel","tooltipContainer","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","inputWithBorder","overflowY","lineInputBoxes","queryDiv","alignSelf","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","keys","values","splittedVals","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","onChangeValue","debounce","queryString","keyVal","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","inputLabel","ref","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","maxWidth","snackBarCommon","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","titleText","closeContainer","closeButton","disableRipple","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","adornment","adornmentPosition","disableUnderline","InputProps","itemStatusMap","defaultHeight","RenderItemLine","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","itemSize"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9467.d4860f23.chunk.js b/portal-ui/build/static/js/9467.d4860f23.chunk.js deleted file mode 100644 index ec5c4bed1..000000000 --- a/portal-ui/build/static/js/9467.d4860f23.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9467],{23804:function(e,n,t){t(72791);var a=t(11135),i=t(25787),r=t(61889),o=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,o.jsx)("div",{className:n.root,children:(0,o.jsxs)(r.ZP,{container:!0,children:[(0,o.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,o.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)),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,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,o=e.text,d=void 0===o?"":o,u=e.disabled,m=void 0!==u&&u,h=e.tooltip,x=e.icon,p=void 0===x?null:x,f=e.className,g=void 0===f?"":f,Z=(0,i.Z)(e,l);return(0,s.jsxs)(r.Z,(0,a.Z)((0,a.Z)({className:g,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"}}}},Z),{},{children:[(0,s.jsx)("span",{children:d})," ",p]}))}},89467:function(e,n,t){t.r(n),t.d(n,{default:function(){return ne}});var a=t(93433),i=t(29439),r=t(1413),o=t(72791),s=t(60364),l=t(11135),c=t(25787),d=t(40986),u=t(61889),m=t(93656),h=t(42649),x=t(23814),p=t(81207),f=t(32291),g=t(26181),Z=t.n(g),j=t(20890),v=t(64554),b=t(45248),y=t(34866),C=t(91523),k=t(56087),S=t(38442),N=t(40603),w=t(28182),P=t(80184),M=(0,c.Z)((function(e){return(0,l.Z)({root:{marginBottom:30,padding:20,color:e.palette.primary.main,border:"#E5E5E5 1px solid",borderRadius:2,"& .min-icon":{height:14,width:14,marginRight:4},"& .MuiTypography-body2":{fontSize:14},"& .MuiCardHeader-content":{wordWrap:"break-word",overflowWrap:"break-word",wordBreak:"break-all",font:"normal normal bold 24px/27px Lato",color:e.palette.primary.main,"& .MuiTypography-root":{fontSize:19,fontWeight:"bold","& .min-icon":{position:"relative",top:4,marginRight:4,height:"24px !important"}}},"& .MuiCardHeader-root":{background:"transparent linear-gradient(0deg, #EEF1F44E 0%, #FFFFFF 100%) 0% 0% no-repeat padding-box"}},checkBoxElement:{width:32,height:32,float:"left",overflow:"hidden","& div":{position:"absolute"}},viewButton:{width:111,color:"white",marginLeft:8,fontSize:12,fontWeight:"normal",boxShadow:"unset",borderRadius:4},manageButton:{borderRadius:4,width:111,color:e.palette.grey[700],textTransform:"unset",fontSize:12,fontWeight:"normal","& .MuiButton-endIcon":{"& .min-icon":{fontSize:18}}},metric:{"& .min-icon":{color:"#000000",width:13,marginRight:5}},metricLabel:{fontSize:14,fontWeight:"bold",color:"#000000"},metricText:{fontSize:24,fontWeight:"bold"},unit:{fontSize:12,fontWeight:"normal"},bucketName:{padding:0,margin:0,fontSize:22},bucketIcon:{"& .min-icon":{height:48,width:48,color:e.palette.primary.main}},bucketInfo:{display:"flex","@media (max-width: 900px)":{flexFlow:"column-reverse"}},bucketStats:{marginTop:15,borderTop:"1px solid rgb(234,234,234, .7)",paddingTop:14},bucketActionButtons:{display:"flex",alignItems:"center",justifyContent:"flex-end","@media (max-width: 900px)":{marginTop:"-33px"}}})}))((function(e){var n=e.classes,t=e.bucket,a=e.onSelect,i=e.selected,r=e.bulkSelect,s=(0,b.ae)("".concat(t.size)||"0"),l=s.split(" ")[0],c=s.split(" ")[1],d=Z()(t,"details.quota.quota","0"),h=(0,b.Am)(d);return(0,P.jsxs)(u.ZP,{container:!0,className:(0,w.Z)(n.root,"bucket-item"),children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsxs)(u.ZP,{container:!0,justifyContent:"space-between",children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,sm:7,children:(0,P.jsxs)(u.ZP,{container:!0,children:[(0,P.jsxs)(u.ZP,{item:!0,xs:12,children:[r&&(0,P.jsx)("div",{className:n.checkBoxElement,onClick:function(e){e.stopPropagation()},children:(0,P.jsx)(y.Z,{checked:i,id:"select-".concat(t.name),label:"",name:"select-".concat(t.name),onChange:function(e){a(e)},value:t.name})}),(0,P.jsx)("h1",{className:n.bucketName,children:t.name})]}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsxs)(u.ZP,{container:!0,className:n.bucketInfo,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,sm:!0,children:(0,P.jsxs)(j.Z,{variant:"body2",children:["Created: ",t.creation_date]})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,sm:!0,children:(0,P.jsxs)(j.Z,{variant:"body2",children:["Access: ",function(e){var n,t,a,i,r,o;return null===(n=e.rw_access)||void 0===n||!n.read||null!==(t=e.rw_access)&&void 0!==t&&t.write?null!==(a=e.rw_access)&&void 0!==a&&a.read||null===(i=e.rw_access)||void 0===i||!i.write?null!==(r=e.rw_access)&&void 0!==r&&r.read&&null!==(o=e.rw_access)&&void 0!==o&&o.write?"R/W":"":"W":"R"}(t)]})})]})})]})}),(0,P.jsxs)(u.ZP,{item:!0,xs:12,sm:5,className:n.bucketActionButtons,children:[(0,P.jsx)(S.s,{scopes:k.D[k.EI.BUCKET_ADMIN],resource:t.name,children:(0,P.jsx)(C.rU,{to:"/buckets/".concat(t.name,"/admin"),style:{textDecoration:"none"},children:(0,P.jsx)(N.Z,{tooltip:"Manage",onClick:function(){},text:"Manage",icon:(0,P.jsx)(m.ew,{}),color:"primary",variant:"outlined"})})}),(0,P.jsx)(C.rU,{to:"/buckets/".concat(t.name,"/browse"),style:{textDecoration:"none"},children:(0,P.jsx)(N.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,P.jsx)(m.LZ,{}),color:"primary",variant:"contained"})}),(0,P.jsx)(v.Z,{display:{xs:"none",sm:"block"},children:(0,P.jsx)("div",{style:{marginBottom:10}})})]})]})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:n.bucketStats,children:(0,P.jsxs)(u.ZP,{container:!0,justifyContent:"flex-start",spacing:4,children:[(0,P.jsx)(u.ZP,{item:!0,className:n.bucketIcon,children:(0,P.jsx)(C.rU,{to:"/buckets/".concat(t.name,"/browse"),children:(0,P.jsx)(m.wN,{})})}),(0,P.jsxs)(u.ZP,{item:!0,textAlign:"left",className:n.metric,children:[(0,P.jsx)(m.rH,{}),(0,P.jsx)("span",{className:n.metricLabel,children:"Usage"}),(0,P.jsxs)("div",{className:n.metricText,children:[l,(0,P.jsx)("span",{className:n.unit,children:c}),"0"!==d&&(0,P.jsxs)(o.Fragment,{children:[" ","/ ",h.total,(0,P.jsx)("span",{className:n.unit,children:h.unit})]})]})]}),(0,P.jsxs)(u.ZP,{item:!0,textAlign:"left",className:n.metric,children:[(0,P.jsx)(m.xp,{}),(0,P.jsx)("span",{className:n.metricLabel,children:"Objects"}),(0,P.jsx)("div",{className:n.metricText,children:t.objects?(0,b.CE)(t.objects):0})]})]})})]})})),B=t(20068),F=t(15146),E=t(98946),R=t(21435),T=t(56028),I=t(64163),L=t(28371),_=t(37516),z=t(90673),A=t(56578),O=(0,s.$j)(null,{setModalErrorSnackMessage:h.zb}),W=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)({remoteBucketList:{display:"grid",gridTemplateColumns:"auto auto 45px",alignItems:"center",justifyContent:"stretch"},errorIcon:{color:"#C72C48"},successIcon:{color:"#42C91A"},hide:{opacity:0,transitionDuration:"0.3s"}},x.oO),x.AK))}))(O((function(e){var n=e.open,t=e.closeModalAndRefresh,r=e.classes,s=e.buckets,l=e.setModalErrorSnackMessage,c=(0,o.useState)([]),d=(0,i.Z)(c,2),m=d[0],h=d[1],x=(0,o.useState)(!1),f=(0,i.Z)(x,2),g=f[0],j=f[1],v=(0,o.useState)(!1),y=(0,i.Z)(v,2),C=y[0],k=y[1],S=(0,o.useState)(""),N=(0,i.Z)(S,2),w=N[0],M=N[1],O=(0,o.useState)(""),W=(0,i.Z)(O,2),D=W[0],U=W[1],K=(0,o.useState)(""),H=(0,i.Z)(K,2),q=H[0],G=H[1],Q=(0,o.useState)(""),Y=(0,i.Z)(Q,2),V=Y[0],$=Y[1],J=(0,o.useState)(!0),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,o.useState)("async"),ae=(0,i.Z)(te,2),ie=ae[0],re=ae[1],oe=(0,o.useState)("100"),se=(0,i.Z)(oe,2),le=se[0],ce=se[1],de=(0,o.useState)("Gi"),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],xe=(0,o.useState)("60"),pe=(0,i.Z)(xe,2),fe=pe[0],ge=pe[1],Ze=(0,o.useState)([]),je=(0,i.Z)(Ze,2),ve=je[0],be=je[1],ye=(0,o.useState)([]),Ce=(0,i.Z)(ye,2),ke=Ce[0],Se=Ce[1],Ne=(0,o.useState)([]),we=(0,i.Z)(Ne,2),Pe=we[0],Me=we[1],Be=ke.map((function(e){return{label:e,value:e}}));(0,o.useEffect)((function(){if(0===ve.length){var e=[],n=[];s.forEach((function(t){e.push(t),n.push("")})),be(n),h(e)}}),[s,ve.length]);var Fe=function(e){var n=e.errString;switch(n){case"":return(0,P.jsx)("div",{className:r.successIcon,children:(0,P.jsx)(E.Z,{})});case"n/a":return null;default:if(n)return(0,P.jsx)("div",{className:r.errorIcon,children:(0,P.jsx)(B.Z,{title:n,placement:"top-start",children:(0,P.jsx)(F.Z,{})})})}return null},Ee=function(e,n){var t=(0,a.Z)(ve);t[e]=n,be(t)},Re=function(e){var n=(0,a.Z)(m),t=(0,a.Z)(ve);e.forEach((function(e){var a=Z()(e,"errorString","");if(!a||""===a){var i=n.indexOf(e.originBucket);n.splice(i,1),t.splice(i,1)}})),h(n),be(t)};return(0,P.jsx)(T.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Set Multiple Bucket Replication",children:(0,P.jsx)(L.Z,{loadingStep:g||C,wizardSteps:[{label:"Remote Configuration",componentRender:(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(I.Z,{label:"Local Buckets to replicate",content:m.join(", ")})}),(0,P.jsx)("h4",{children:"Remote Endpoint Configuration"}),(0,P.jsx)("span",{className:r.descriptionText,children:"Please avoid the use of root credentials for this feature"}),(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"accessKey",name:"accessKey",onChange:function(e){M(e.target.value)},label:"Access Key",value:w})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"secretKey",name:"secretKey",onChange:function(e){U(e.target.value)},label:"Secret Key",value:D})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"targetURL",name:"targetURL",onChange:function(e){G(e.target.value)},placeholder:"play.min.io:9000",label:"Target URL",value:q})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(_.Z,{checked:ee,id:"useTLS",name:"useTLS",label:"Use TLS",onChange:function(e){ne(e.target.checked)},value:"yes"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"region",name:"region",onChange:function(e){$(e.target.value)},label:"Region",value:V})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(z.Z,{id:"replication_mode",name:"replication_mode",onChange:function(e){re(e.target.value)},label:"Replication Mode",value:ie,options:[{label:"Asynchronous",value:"async"},{label:"Synchronous",value:"sync"}]})}),"async"===ie&&(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{type:"number",id:"bandwidth_scalar",name:"bandwidth_scalar",onChange:function(e){e.target.validity.valid&&ce(e.target.value)},label:"Bandwidth",value:le,min:"0",pattern:"[0-9]*",overlayObject:(0,P.jsx)(A.Z,{id:"quota_unit",onUnitChange:function(e){he(e)},unitSelected:me,unitsList:(0,b.zQ)(["Ki"]),disabled:!1})})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"healthCheck",name:"healthCheck",onChange:function(e){ge(e.target.value)},label:"Health Check Duration",value:fe})})]}),buttons:[{type:"custom",label:"Next",enabled:!C,action:function(e){var n={accessKey:w,secretKey:D,targetURL:q,useTLS:ee};k(!0),p.Z.invoke("POST","/api/v1/list-external-buckets",n).then((function(n){var t=Z()(n,"buckets",[]);if(t&&t.length>0){var a=t.map((function(e){return e.name}));Se(a)}e("++"),k(!1)})).catch((function(e){k(!1),l(e)}))}}]},{label:"Bucket Assignments",componentRender:(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)("h3",{children:"Remote Bucket Assignments"}),(0,P.jsx)("span",{className:r.descriptionText,children:"Please select / type the desired remote bucket were you want the local data to be replicated."}),(0,P.jsx)("div",{className:r.remoteBucketList,children:m.map((function(e,n){var t,a=function(e){if(Pe.length>0){var n=Pe.find((function(n){return n.originBucket===e}));if(n)return Z()(n,"errorString","")||""}return"n/a"}(e);return(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)("div",{className:""===a?r.hide:"",children:e}),(0,P.jsx)("div",{className:""===a?r.hide:"",children:(t=n,ke.length>0?(0,P.jsx)(o.Fragment,{children:(0,P.jsx)(z.Z,{label:"",id:"assign-bucket-".concat(t),name:"assign-bucket-".concat(t),value:ve[t],onChange:function(e){Ee(t,e.target.value)},options:Be,disabled:g})}):(0,P.jsx)(o.Fragment,{children:(0,P.jsx)(R.Z,{id:"assign-bucket-".concat(t),name:"assign-bucket-".concat(t),label:"",onChange:function(e){Ee(t,e.target.value)},value:ve[t],disabled:g})}))}),(0,P.jsx)("div",{className:""===a?r.hide:"",children:Pe.length>0&&(0,P.jsx)(Fe,{errString:a})})]},"buckets-assignation-".concat(n.toString(),"-").concat(e))}))})]}),buttons:[{type:"back",label:"Back",enabled:!0},{type:"next",label:"Create",enabled:!g,action:function(){j(!0);var e=m.map((function(e,n){return{originBucket:e,destinationBucket:ve[n]}})),n="".concat(ee?"https://":"http://").concat(q),a=parseInt(fe),i={accessKey:w,secretKey:D,targetURL:n,region:V,bucketsRelation:e,syncMode:ie,bandwidth:"async"===ie?parseInt((0,b.Pw)(le,me,!0)):0,healthCheckPeriod:a};p.Z.invoke("POST","/api/v1/buckets-replication",i).then((function(e){j(!1);var n=e.replicationState;Me(n),0===n.filter((function(e){return e.errorString&&""!==e.errorString})).length?t(!0):setTimeout((function(){Re(n)}),500)})).catch((function(e){j(!1),l(e)}))}}]}],forModal:!0})})}))),D=t(23804),U=t(28789),K=t(81806),H=t(49818),q=t(2289),G=t(74794),Q=t(59114),Y=t(98994),V=t(83679),$=t(17420),J=(0,s.$j)(null,{setModalErrorSnackMessage:h.zb}),X=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({resultGrid:{display:"grid",gridTemplateColumns:"45px auto",alignItems:"center",justifyContent:"stretch"},errorIcon:{paddingTop:5,color:"#C72C48"},successIcon:{paddingTop:5,color:"#42C91A"},hide:{opacity:0,transitionDuration:"0.3s"}},x.bK),x.ID),x.DF),x.QV))}))(J((function(e){var n=e.open,t=e.closeModalAndRefresh,a=e.classes,s=e.buckets,l=e.setModalErrorSnackMessage,c=(0,o.useState)(!1),d=(0,i.Z)(c,2),m=d[0],h=d[1],x=(0,o.useState)(!0),f=(0,i.Z)(x,2),g=f[0],j=f[1],v=(0,o.useState)([]),b=(0,i.Z)(v,2),y=b[0],C=b[1],k=(0,o.useState)(""),S=(0,i.Z)(k,2),N=S[0],w=S[1],M=(0,o.useState)(""),A=(0,i.Z)(M,2),O=A[0],W=A[1],D=(0,o.useState)(""),U=(0,i.Z)(D,2),K=U[0],H=U[1],q=(0,o.useState)(""),G=(0,i.Z)(q,2),Q=G[0],Y=G[1],J=(0,o.useState)(!1),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],te=(0,o.useState)("0"),ae=(0,i.Z)(te,2),ie=ae[0],re=ae[1],oe=(0,o.useState)("0"),se=(0,i.Z)(oe,2),le=se[0],ce=se[1],de=(0,o.useState)("expiry"),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],xe=(0,o.useState)("0"),pe=(0,i.Z)(xe,2),fe=pe[0],ge=pe[1],Ze=(0,o.useState)("0"),je=(0,i.Z)(Ze,2),ve=je[0],be=je[1],ye=(0,o.useState)(!1),Ce=(0,i.Z)(ye,2),ke=Ce[0],Se=Ce[1],Ne=(0,o.useState)(null),we=(0,i.Z)(Ne,2),Pe=we[0],Me=we[1];(0,o.useEffect)((function(){g&&p.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=Z()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=Z()(e,"".concat(n,".name"),"");return{label:t,value:t}}));C(t),t.length>0&&H(t[0].value)}j(!1)})).catch((function(e){j(!1),l(e)}))}),[g,l]),(0,o.useEffect)((function(){var e=!0;"expiry"!==me&&""===K&&(e=!1),Se(e)}),[me,fe,ve,K]);var Be=function(e){var n=e.errString;switch(n){case"":return(0,P.jsx)("div",{className:a.successIcon,children:(0,P.jsx)(E.Z,{})});case"n/a":return null;default:if(n)return(0,P.jsx)("div",{className:a.errorIcon,children:(0,P.jsx)(B.Z,{title:n,placement:"top-start",children:(0,P.jsx)(F.Z,{})})})}return null};return(0,P.jsx)(T.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Set Lifecycle to multiple buckets",children:(0,P.jsx)(L.Z,{loadingStep:m||g,wizardSteps:[{label:"Lifecycle Configuration",componentRender:(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(I.Z,{label:"Local Buckets to replicate",content:s.join(", ")})}),(0,P.jsx)("h4",{children:"Remote Endpoint Configuration"}),(0,P.jsx)(u.ZP,{container:!0,children:(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:a.formScrollable,children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsxs)("fieldset",{className:a.fieldGroup,children:[(0,P.jsx)("legend",{className:a.descriptionText,children:"Lifecycle Configuration"}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(V.Z,{currentSelection:me,id:"quota_type",name:"quota_type",label:"ILM Rule",onChange:function(e){he(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),"expiry"===me?(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(R.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){ge(e.target.value)},label:"Expiry Days",value:fe,min:"0"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(R.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){re(e.target.value)},label:"Non-current Expiration Days",value:ie,min:"0"})})]}):(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(R.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){be(e.target.value)},label:"Transition Days",value:ve,min:"0"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(R.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){ce(e.target.value)},label:"Non-current Transition Days",value:le,min:"0"})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(R.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){Y(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:Q})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsx)(z.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:K,onChange:function(e){H(e.target.value)},options:y})})]})]})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.formFieldRow,children:(0,P.jsxs)("fieldset",{className:a.fieldGroup,children:[(0,P.jsx)("legend",{className:a.descriptionText,children:"File Configuration"}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(R.Z,{id:"prefix",name:"prefix",onChange:function(e){w(e.target.value)},label:"Prefix",value:N})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)($.Z,{name:"tags",label:"Tags",elements:O,onChange:function(e){W(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,children:(0,P.jsx)(_.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:ee,onChange:function(e){ne(e.target.checked)},label:"Expired Object Delete Marker"})})]})})]})})]}),buttons:[{type:"custom",label:"Create Rules",enabled:!g&&!m&&ke,action:function(e){var n={};if("expiry"===me){var t={expiry_days:parseInt(fe)};n=(0,r.Z)((0,r.Z)({},t),{},{noncurrentversion_expiration_days:parseInt(ie)})}else{var a={transition_days:parseInt(ve)};n=(0,r.Z)((0,r.Z)({},a),{},{noncurrentversion_transition_days:parseInt(le),noncurrentversion_transition_storage_class:Q,storage_class:K})}var i=(0,r.Z)({buckets:s,type:me,prefix:N,tags:O,expired_object_delete_marker:ee},n);p.Z.invoke("POST","/api/v1/buckets/multi-lifecycle",i).then((function(n){h(!1),Me(n),e("++")})).catch((function(e){h(!1),l(e)}))}}]},{label:"Results",componentRender:(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)("h3",{children:"Multi Bucket lifecycle Assignments Results"}),(0,P.jsx)(u.ZP,{container:!0,children:(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:a.formScrollable,children:[(0,P.jsx)("h4",{children:"Buckets Results"}),null===Pe||void 0===Pe?void 0:Pe.results.map((function(e){return(0,P.jsxs)("div",{className:a.resultGrid,children:[Be({errString:e.error||""}),(0,P.jsx)("span",{children:e.bucketName})]})}))]})})]}),buttons:[{type:"custom",label:"Done",enabled:!m,action:function(){return t(!0)}}]}],forModal:!0})})}))),ee=t(49535),ne=(0,s.$j)(null,{setErrorSnackMessage:h.Ih})((0,c.Z)((function(e){return(0,l.Z)((0,r.Z)({bulkSelect:{marginLeft:8,"&:hover":{backgroundColor:e.palette.primary.main},"&.MuiButton-contained":{backgroundColor:e.palette.primary.main}},addBucket:{marginLeft:8},bucketList:{marginTop:25,height:"calc(100vh - 210px)"},searchField:(0,r.Z)((0,r.Z)({},x.qg.searchField),{},{minWidth:380,"@media (max-width: 900px)":{minWidth:220}})},(0,x.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.history,r=e.setErrorSnackMessage,s=(0,o.useState)([]),l=(0,i.Z)(s,2),c=l[0],h=l[1],x=(0,o.useState)(!0),g=(0,i.Z)(x,2),Z=g[0],j=g[1],v=(0,o.useState)(""),b=(0,i.Z)(v,2),y=b[0],C=b[1],w=(0,o.useState)([]),B=(0,i.Z)(w,2),F=B[0],E=B[1],R=(0,o.useState)(!1),T=(0,i.Z)(R,2),I=T[0],L=T[1],_=(0,o.useState)(!1),z=(0,i.Z)(_,2),A=z[0],O=z[1],V=(0,o.useState)(!1),$=(0,i.Z)(V,2),J=$[0],ne=$[1];(0,o.useEffect)((function(){if(Z){j(!0),p.Z.invoke("GET","/api/v1/buckets").then((function(e){j(!1),h(e.buckets||[])})).catch((function(e){j(!1),r(e)}))}}),[Z,r]);var te=c.filter((function(e){return""===y||e.name.indexOf(y)>=0})),ae=function(e){var n=e.target,t=n.value,i=n.checked,r=(0,a.Z)(F);return i?r.push(t):r=r.filter((function(e){return e!==t})),E(r),r},ie=(0,ee.Z)("*",[k.Ft.S3_CREATE_BUCKET]);return(0,P.jsxs)(o.Fragment,{children:[I&&(0,P.jsx)(W,{open:I,buckets:F,closeModalAndRefresh:function(e){L(!1),e&&E([])}}),A&&(0,P.jsx)(X,{buckets:F,closeModalAndRefresh:function(e){O(!1),e&&E([])},open:A}),(0,P.jsx)(f.Z,{label:"Buckets"}),(0,P.jsxs)(G.Z,{children:[(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,display:"flex",children:[(0,P.jsx)(Q.Z,{onChange:C,placeholder:"Search Buckets",overrideClass:n.searchField,value:y}),(0,P.jsxs)(u.ZP,{item:!0,xs:12,display:"flex",alignItems:"center",justifyContent:"flex-end",children:[(0,P.jsx)(N.Z,{tooltip:J?"Unselect Buckets":"Select Multiple Buckets",onClick:function(){ne(!J),E([])},text:"",icon:(0,P.jsx)(q.Z,{}),color:"primary",variant:J?"contained":"outlined"}),J&&(0,P.jsx)(N.Z,{tooltip:F.length===te.length?"Unselect All Buckets":"Select All Buckets",onClick:function(){if(F.length!==te.length){var e=te.map((function(e){return e.name}));E(e)}else E([])},text:"",icon:(0,P.jsx)(m.QQ,{}),color:"primary",variant:"outlined"}),(0,P.jsx)(N.Z,{tooltip:"Set Lifecycle",onClick:function(){O(!0)},text:"",icon:(0,P.jsx)(m.QI,{}),disabled:0===F.length,color:"primary",variant:"outlined"}),(0,P.jsx)(N.Z,{tooltip:"Set Replication",onClick:function(){L(!0)},text:"",icon:(0,P.jsx)(H.Z,{}),disabled:0===F.length,color:"primary",variant:"outlined"}),(0,P.jsx)(N.Z,{tooltip:"Refresh",onClick:function(){j(!0)},text:"",icon:(0,P.jsx)(U.default,{}),color:"primary",variant:"outlined"}),(0,P.jsx)(N.Z,{tooltip:"Create Bucket",onClick:function(){t.push("/add-bucket")},text:"Create Bucket",icon:(0,P.jsx)(m.dt,{}),color:"primary",variant:"contained",disabled:!ie})]})]}),Z&&(0,P.jsx)(d.Z,{}),!Z&&(0,P.jsxs)(u.ZP,{item:!0,xs:12,className:n.bucketList,children:[0!==te.length&&(0,P.jsx)(Y.Z,{rowRenderFunction:function(e){var n=te[e]||null;return n?(0,P.jsx)(M,{bucket:n,onSelect:ae,selected:F.includes(n.name),bulkSelect:J}):null},totalItems:te.length}),0===te.length&&""!==y&&(0,P.jsx)(u.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,P.jsx)(u.ZP,{item:!0,xs:8,children:(0,P.jsx)(D.Z,{iconComponent:(0,P.jsx)(m.wN,{}),title:"No Results",help:(0,P.jsx)(o.Fragment,{children:"No buckets match the filtering condition"})})})}),0===te.length&&""===y&&(0,P.jsx)(u.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,P.jsx)(u.ZP,{item:!0,xs:8,children:(0,P.jsx)(D.Z,{iconComponent:(0,P.jsx)(m.wN,{}),title:"Buckets",help:(0,P.jsxs)(o.Fragment,{children:["MinIO uses buckets to organize objects. A bucket is similar to a folder or directory in a filesystem, where each bucket can hold an arbitrary number of objects.",(0,P.jsxs)(S.s,{scopes:[k.Ft.S3_CREATE_BUCKET],resource:k.C3,children:[(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"To get started,\xa0",(0,P.jsx)(K.Z,{onClick:function(){t.push("/add-bucket")},children:"Create a Bucket."})]})]})})})})]})]})]})})))},81806:function(e,n,t){var a=t(1413),i=t(45987),r=(t(72791),t(11135)),o=t(25787),s=t(80184),l=["classes","children"];n.Z=(0,o.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,s.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),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,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"===s)),children:t}));return h&&""!==h?(0,u.jsx)(c.Z,{title:h,children:(0,u.jsx)("span",{children:p})}):p}))},34866:function(e,n,t){var a=t(1413),i=t(72791),r=t(61889),o=t(94454),s=t(30829),l=t(20068),c=t(11135),d=t(25787),u=t(23814),m=t(84570),h=t(80184);n.Z=(0,d.Z)((function(e){return(0,c.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,c=e.id,d=e.name,u=e.checked,x=void 0!==u&&u,p=e.disabled,f=void 0!==p&&p,g=e.noTopMargin,Z=void 0!==g&&g,j=e.tooltip,v=void 0===j?"":j,b=e.overrideLabelClasses,y=void 0===b?"":b,C=e.classes;return(0,h.jsx)(i.Fragment,{children:(0,h.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(C.fieldContainer," ").concat(Z?C.noTopMargin:""),children:[(0,h.jsx)("div",{children:(0,h.jsx)(o.Z,{name:d,id:c,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:x,onChange:t,checkedIcon:(0,h.jsx)("span",{className:C.checkedIcon}),icon:(0,h.jsx)("span",{className:C.unCheckedIcon}),disabled:f})}),""!==n&&(0,h.jsxs)(s.Z,{htmlFor:c,className:"".concat(C.noMinWidthLabel," ").concat(y),children:[(0,h.jsx)("span",{children:n}),""!==v&&(0,h.jsx)("div",{className:C.tooltipContainer,children:(0,h.jsx)(l.Z,{title:v,placement:"top-start",children:(0,h.jsx)("div",{className:C.tooltip,children:(0,h.jsx)(m.Z,{})})})})]})]})})}))},64163:function(e,n,t){var a=t(1413),i=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,a.Z)({},l.xx))}))((function(e){var n=e.classes,t=e.label,a=void 0===t?"":t,o=e.content,s=e.multiLine,l=void 0!==s&&s;return(0,c.jsx)(i.Fragment,{children:(0,c.jsxs)(r.ZP,{className:n.prefinedContainer,children:[""!==a&&(0,c.jsx)(r.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:a}),(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})})]})})}))},17420:function(e,n,t){var a=t(93433),i=t(29439),r=t(1413),o=t(72791),s=t(26181),l=t.n(s),c=t(48573),d=t.n(c),u=t(11135),m=t(25787),h=t(61889),x=t(77961),p=t(30829),f=t(20068),g=t(23814),Z=t(21435),j=t(47919),v=t(80184);n.Z=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},g.YI),g.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,r=e.label,s=e.tooltip,c=void 0===s?"":s,u=e.keyPlaceholder,m=void 0===u?"":u,g=e.valuePlaceholder,b=void 0===g?"":g,y=e.onChange,C=e.withBorder,k=void 0!==C&&C,S=e.classes,N=(0,o.useState)([""]),w=(0,i.Z)(N,2),P=w[0],M=w[1],B=(0,o.useState)([""]),F=(0,i.Z)(B,2),E=F[0],R=F[1],T=(0,o.createRef)();(0,o.useEffect)((function(){if(1===P.length&&""===P[0]&&1===E.length&&""===E[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(""),M(t),R(a)}}),[P,E,n]),(0,o.useEffect)((function(){var e=T.current;e&&P.length>1&&e.scrollIntoView(!1)}),[P]);var I=(0,o.useRef)(!0);(0,o.useLayoutEffect)((function(){I.current?I.current=!1:z()}),[P,E]);var L=function(e){e.persist();var n=(0,a.Z)(P);n[l()(e.target,"dataset.index",0)]=e.target.value,M(n)},_=function(e){e.persist();var n=(0,a.Z)(E);n[l()(e.target,"dataset.index",0)]=e.target.value,R(n)},z=d()((function(){var e="";P.forEach((function(n,t){if(P[t]&&E[t]){var a="".concat(n,"=").concat(E[t]);0!==t&&(a="&".concat(a)),e="".concat(e).concat(a)}})),y(e)}),500),A=E.map((function(e,n){return(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:S.lineInputBoxes,children:[(0,v.jsx)(Z.Z,{id:"".concat(t,"-key-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:P[n],onChange:L,index:n,placeholder:m}),(0,v.jsx)("span",{className:S.queryDiv,children:":"}),(0,v.jsx)(Z.Z,{id:"".concat(t,"-value-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:E[n],onChange:_,index:n,placeholder:b,overlayIcon:n===E.length-1?(0,v.jsx)(j.Z,{}):null,overlayAction:function(){!function(){if(""!==P[P.length-1].trim()&&""!==E[E.length-1].trim()){var e=(0,a.Z)(P),n=(0,a.Z)(E);e.push(""),n.push(""),M(e),R(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,v.jsx)(o.Fragment,{children:(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:S.fieldContainer,children:[(0,v.jsxs)(p.Z,{className:S.inputLabel,children:[(0,v.jsx)("span",{children:r}),""!==c&&(0,v.jsx)("div",{className:S.tooltipContainer,children:(0,v.jsx)(f.Z,{title:c,placement:"top-start",children:(0,v.jsx)(x.Z,{className:S.tooltip})})})]}),(0,v.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(k?S.inputWithBorder:""),children:[A,(0,v.jsx)("div",{ref:T})]})]})})}))},83679:function(e,n,t){var a=t(4942),i=t(1413),r=(t(72791),t(28182)),o=t(61889),s=t(10765),l=t(85523),c=t(61419),d=t(30829),u=t(20068),m=t(11135),h=t(25787),x=t(72455),p=t(23814),f=t(84570),g=t(80184),Z=(0,x.Z)((0,i.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),j=function(e){var n=Z();return(0,g.jsx)(c.Z,(0,i.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,h.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,h=e.name,x=e.onChange,p=e.tooltip,Z=void 0===p?"":p,v=e.disableOptions,b=void 0!==v&&v,y=e.classes,C=e.displayInColumn,k=void 0!==C&&C;return(0,g.jsxs)(o.ZP,{container:!0,alignItems:"center",children:[(0,g.jsx)(o.ZP,{item:!0,xs:!0,children:(0,g.jsxs)(d.Z,{htmlFor:m,className:y.inputLabel,children:[(0,g.jsx)("span",{children:c}),""!==Z&&(0,g.jsx)("div",{className:y.tooltipContainer,children:(0,g.jsx)(u.Z,{title:Z,placement:"top-start",children:(0,g.jsx)("div",{children:(0,g.jsx)(f.Z,{})})})})]})}),(0,g.jsx)(o.ZP,{item:!0,xs:!0,className:y.radioOptionsLayout,children:(0,g.jsx)(s.Z,{"aria-label":m,id:m,name:h,value:i,onChange:x,row:!k,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,g.jsx)(l.Z,{value:e.value,control:(0,g.jsx)(j,{}),label:e.label,disabled:b,className:(0,r.Z)(y.optionLabel,(0,a.Z)({},y.checkedOption,e.value===i))},"rd-".concat(h,"-").concat(e.value))}))})})]})}))},28371:function(e,n,t){t.d(n,{Z:function(){return p}});var a=t(29439),i=t(72791),r=t(11135),o=t(25787),s=t(40986),l=t(36151),c=t(80184),d=(0,o.Z)((function(e){return(0,r.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,r=e.forModal;return(0,c.jsxs)("div",{className:n.wizardStepContainer,children:[(0,c.jsx)("div",{className:r?n.wizardModal:n.wizardComponent,children:t.componentRender}),i&&(0,c.jsx)("div",{children:(0,c.jsx)(s.Z,{})}),(0,c.jsx)("div",{className:"".concat(n.buttonsContainer," ").concat(r?"forModal":""),children:(0,c.jsx)("div",{className:n.buttonInnerContainer,children:t.buttons.map((function(e){return(0,c.jsx)(l.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),h=t(15021),x=t(49900),p=(0,o.Z)((function(e){return(0,r.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,r=e.loadingStep,o=e.forModal,s=(0,i.useState)(0),l=(0,a.Z)(s,2),p=l[0],f=l[1],g=function(e){var n=t.length-1;if("++"===e){var a=p+1;a>n&&(a=n),f(a)}if("--"===e){var i=p-1;i<0&&(i=0),f(i)}if("number"===typeof e){var r=e;e<0&&(r=0),e>n&&(r=n),f(r)}};if(0===t.length)return null;return(0,c.jsxs)(m.ZP,{container:!0,className:o?n.wizFromModal:n.wizFromContainer,children:[o?(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 g(t)},disabled:t>p,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)(h.ZP,{id:"wizard-step-"+e.label.toLowerCase().replaceAll(" ","-"),button:!0,disableRipple:!0,onClick:function(){return g(t)},selected:p===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:o?12:10,md:o?12:10,lg:o?12:10,xl:o?12:10,className:o?"":n.paddedContentGrid,children:(0,c.jsx)(d,{page:t[p],pageChange:g,loadingStep:r,forModal:o})})]})}))},56028:function(e,n,t){var a=t(29439),i=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),h=t(25787),x=t(23814),p=t(42649),f=t(29823),g=t(28057),Z=t(80184),j=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,h.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},x.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,o=e.title,m=e.children,h=e.classes,x=e.wideLimit,p=void 0===x||x,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,y=e.titleIcon,C=void 0===y?null:y,k=(0,r.useState)(!1),S=(0,a.Z)(k,2),N=S[0],w=S[1];(0,r.useEffect)((function(){b("")}),[b]),(0,r.useEffect)((function(){if(j){if(""===j.message)return void w(!1);"error"!==j.type&&w(!0)}}),[j]);var P=p?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},M="";return j&&(M=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(M=j.message)),(0,Z.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:h},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:h.root,children:[(0,Z.jsxs)(d.Z,{className:h.title,children:[(0,Z.jsxs)("div",{className:h.titleText,children:[C," ",o]}),(0,Z.jsx)("div",{className:h.closeContainer,children:(0,Z.jsx)(s.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(l.Z,{open:N,className:h.snackBarModal,onClose:function(){w(!1),b("")},message:M,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},32291:function(e,n,t){var a=t(72791),i=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),h=t(93656),x=t(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);n.Z=f((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,i=e.actions,o=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,p=e.toggleList,f=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:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!o&&(0,x.jsx)("div",{className:n.logo,children:s?(0,x.jsx)(d.Z,{}):(0,x.jsx)(u.Z,{})}),(0,x.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),f&&(0,x.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,x.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?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)),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,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)(o.Z,{})}));return(0,u.jsx)(s.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),o=t(5171),s=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,s.jsx)("div",{style:a,children:n(t)})};return(0,s.jsx)(a.Fragment,{children:(0,s.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,s.jsx)(o.qj,{children:function(e){var r=e.width,o=e.height;return(0,s.jsx)(i.t7,{itemSize:c||220,height:o,itemCount:t,width:r,ref:a,onItemsRendered:n,children:d})}})}})})}},98946:function(e,n,t){var a=t(95318);n.Z=void 0;var i=a(t(45649)),r=t(80184),o=(0,i.default)((0,r.jsx)("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline");n.Z=o},15146:function(e,n,t){var a=t(95318);n.Z=void 0;var i=a(t(45649)),r=t(80184),o=(0,i.default)((0,r.jsx)("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline");n.Z=o},45987:function(e,n,t){t.d(n,{Z:function(){return i}});var a=t(63366);function i(e,n){if(null==e)return{};var t,i,r=(0,a.Z)(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}}}]); -//# sourceMappingURL=9467.d4860f23.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9467.d4860f23.chunk.js.map b/portal-ui/build/static/js/9467.d4860f23.chunk.js.map deleted file mode 100644 index ff715a46f..000000000 --- a/portal-ui/build/static/js/9467.d4860f23.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9467.d4860f23.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Buckets/ListBuckets/BucketListItem.tsx","screens/Console/Buckets/ListBuckets/BulkReplicationModal.tsx","screens/Console/Buckets/ListBuckets/BulkLifecycleModal.tsx","screens/Console/Buckets/ListBuckets/ListBuckets.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/FormComponents/CheckboxWrapper/CheckboxWrapper.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/GenericWizard/WizardPage.tsx","screens/Console/Common/GenericWizard/GenericWizard.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.tsx","../node_modules/@mui/icons-material/CheckCircleOutline.js","../node_modules/@mui/icons-material/ErrorOutline.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 { 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 .\nimport React, { Fragment } 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 ArrowRightIcon,\n BucketsIcon,\n ReportedUsageIcon,\n SettingsIcon,\n TotalObjectsIcon,\n} from \"../../../../icons\";\nimport { Bucket } from \"../types\";\nimport { Box, Grid, Typography } from \"@mui/material\";\nimport {\n calculateBytes,\n niceBytes,\n prettyNumber,\n} from \"../../../../common/utils\";\nimport CheckboxWrapper from \"../../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport { Link } from \"react-router-dom\";\nimport {\n IAM_PERMISSIONS,\n IAM_ROLES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n marginBottom: 30,\n padding: 20,\n color: theme.palette.primary.main,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n \"& .min-icon\": {\n height: 14,\n width: 14,\n marginRight: 4,\n },\n \"& .MuiTypography-body2\": {\n fontSize: 14,\n },\n \"& .MuiCardHeader-content\": {\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n wordBreak: \"break-all\",\n font: \"normal normal bold 24px/27px Lato\",\n color: theme.palette.primary.main,\n\n \"& .MuiTypography-root\": {\n fontSize: 19,\n fontWeight: \"bold\",\n \"& .min-icon\": {\n position: \"relative\",\n top: 4,\n marginRight: 4,\n height: \"24px !important\",\n },\n },\n },\n \"& .MuiCardHeader-root\": {\n background:\n \"transparent linear-gradient(0deg, #EEF1F44E 0%, #FFFFFF 100%) 0% 0% no-repeat padding-box\",\n },\n },\n checkBoxElement: {\n width: 32,\n height: 32,\n float: \"left\",\n overflow: \"hidden\",\n \"& div\": {\n position: \"absolute\",\n },\n },\n viewButton: {\n width: 111,\n color: \"white\",\n marginLeft: 8,\n fontSize: 12,\n fontWeight: \"normal\",\n boxShadow: \"unset\",\n borderRadius: 4,\n },\n manageButton: {\n borderRadius: 4,\n width: 111,\n color: theme.palette.grey[\"700\"],\n textTransform: \"unset\",\n fontSize: 12,\n fontWeight: \"normal\",\n \"& .MuiButton-endIcon\": {\n \"& .min-icon\": {\n fontSize: 18,\n },\n },\n },\n metric: {\n \"& .min-icon\": {\n color: \"#000000\",\n width: 13,\n marginRight: 5,\n },\n },\n metricLabel: {\n fontSize: 14,\n fontWeight: \"bold\",\n color: \"#000000\",\n },\n metricText: {\n fontSize: 24,\n fontWeight: \"bold\",\n },\n unit: {\n fontSize: 12,\n fontWeight: \"normal\",\n },\n bucketName: {\n padding: 0,\n margin: 0,\n fontSize: 22,\n },\n bucketIcon: {\n \"& .min-icon\": {\n height: 48,\n width: 48,\n color: theme.palette.primary.main,\n },\n },\n bucketInfo: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column-reverse\",\n },\n },\n bucketStats: {\n marginTop: 15,\n borderTop: \"1px solid rgb(234,234,234, .7)\",\n paddingTop: 14,\n },\n bucketActionButtons: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n\n \"@media (max-width: 900px)\": {\n marginTop: \"-33px\",\n },\n },\n });\n\ninterface IBucketListItem {\n bucket: Bucket;\n classes: any;\n onSelect: (e: React.ChangeEvent) => void;\n selected: boolean;\n bulkSelect: boolean;\n}\n\nconst BucketListItem = ({\n classes,\n bucket,\n onSelect,\n selected,\n bulkSelect,\n}: IBucketListItem) => {\n const usage = niceBytes(`${bucket.size}` || \"0\");\n const usageScalar = usage.split(\" \")[0];\n const usageUnit = usage.split(\" \")[1];\n\n const quota = get(bucket, \"details.quota.quota\", \"0\");\n const quotaForString = calculateBytes(quota);\n\n const accessToStr = (bucket: Bucket): string => {\n if (bucket.rw_access?.read && !bucket.rw_access?.write) {\n return \"R\";\n } else if (!bucket.rw_access?.read && bucket.rw_access?.write) {\n return \"W\";\n } else if (bucket.rw_access?.read && bucket.rw_access?.write) {\n return \"R/W\";\n }\n return \"\";\n };\n const onCheckboxClick = (e: React.ChangeEvent) => {\n onSelect(e);\n };\n\n return (\n \n \n \n \n \n \n {bulkSelect && (\n {\n e.stopPropagation();\n }}\n >\n \n
    \n )}\n

    {bucket.name}

    \n
    \n \n \n \n \n Created: {bucket.creation_date}\n \n \n \n \n Access: {accessToStr(bucket)}\n \n \n \n \n \n \n \n \n \n {}}\n text={\"Manage\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n {}}\n text={\"Browse\"}\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 Usage\n
    \n {usageScalar}\n {usageUnit}\n {quota !== \"0\" && (\n \n {\" \"}\n / {quotaForString.total}\n {quotaForString.unit}\n \n )}\n
    \n
    \n \n \n Objects\n
    \n {bucket.objects ? prettyNumber(bucket.objects) : 0}\n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(BucketListItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { SelectChangeEvent, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { BulkReplicationItem, BulkReplicationResponse } from \"../types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport api from \"../../../../common/api\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { SelectorTypes } from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { getBytes, k8sScalarUnitsExcluding } from \"../../../../common/utils\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IBulkReplicationModal {\n open: boolean;\n closeModalAndRefresh: (clearSelection: boolean) => any;\n classes: any;\n buckets: string[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n remoteBucketList: {\n display: \"grid\",\n gridTemplateColumns: \"auto auto 45px\",\n alignItems: \"center\",\n justifyContent: \"stretch\",\n },\n errorIcon: {\n color: \"#C72C48\",\n },\n successIcon: {\n color: \"#42C91A\",\n },\n hide: {\n opacity: 0,\n transitionDuration: \"0.3s\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst AddBulkReplicationModal = ({\n open,\n closeModalAndRefresh,\n classes,\n buckets,\n setModalErrorSnackMessage,\n}: IBulkReplicationModal) => {\n const [bucketsToAlter, setBucketsToAlter] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [externalLoading, setExternalLoading] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [targetURL, setTargetURL] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [useTLS, setUseTLS] = useState(true);\n const [replicationMode, setReplicationMode] = useState(\"async\");\n const [bandwidthScalar, setBandwidthScalar] = useState(\"100\");\n const [bandwidthUnit, setBandwidthUnit] = useState(\"Gi\");\n const [healthCheck, setHealthCheck] = useState(\"60\");\n const [relationBuckets, setRelationBuckets] = useState([]);\n const [remoteBucketsOpts, setRemoteBucketOpts] = useState([]);\n const [responseItem, setResponseItem] = useState([]);\n\n const optionsForBucketsDrop: SelectorTypes[] = remoteBucketsOpts.map(\n (remoteBucketName: string) => {\n return {\n label: remoteBucketName,\n value: remoteBucketName,\n };\n }\n );\n\n useEffect(() => {\n if (relationBuckets.length === 0) {\n const bucketsAlter: string[] = [];\n const relationBucketsAlter: string[] = [];\n\n buckets.forEach((item: string) => {\n bucketsAlter.push(item);\n relationBucketsAlter.push(\"\");\n });\n\n setRelationBuckets(relationBucketsAlter);\n setBucketsToAlter(bucketsAlter);\n }\n }, [buckets, relationBuckets.length]);\n\n const addRecord = () => {\n setAddLoading(true);\n const replicate = bucketsToAlter.map((bucketName, index) => {\n return {\n originBucket: bucketName,\n destinationBucket: relationBuckets[index],\n };\n });\n\n const endURL = `${useTLS ? \"https://\" : \"http://\"}${targetURL}`;\n const hc = parseInt(healthCheck);\n\n const remoteBucketsInfo = {\n accessKey: accessKey,\n secretKey: secretKey,\n targetURL: endURL,\n region: region,\n bucketsRelation: replicate,\n syncMode: replicationMode,\n bandwidth:\n replicationMode === \"async\"\n ? parseInt(getBytes(bandwidthScalar, bandwidthUnit, true))\n : 0,\n healthCheckPeriod: hc,\n };\n\n api\n .invoke(\"POST\", \"/api/v1/buckets-replication\", remoteBucketsInfo)\n .then((response: BulkReplicationResponse) => {\n setAddLoading(false);\n\n const states = response.replicationState;\n setResponseItem(states);\n\n const filterErrors = states.filter(\n (itm) => itm.errorString && itm.errorString !== \"\"\n );\n\n if (filterErrors.length === 0) {\n closeModalAndRefresh(true);\n } else {\n setTimeout(() => {\n removeSuccessItems(states);\n }, 500);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const retrieveRemoteBuckets = (\n wizardPageJump: (page: number | string) => void\n ) => {\n const remoteConnectInfo = {\n accessKey: accessKey,\n secretKey: secretKey,\n targetURL: targetURL,\n useTLS,\n };\n setExternalLoading(true);\n\n api\n .invoke(\"POST\", \"/api/v1/list-external-buckets\", remoteConnectInfo)\n .then((dataReturn) => {\n const buckets = get(dataReturn, \"buckets\", []);\n\n if (buckets && buckets.length > 0) {\n const arrayReplaceBuckets = buckets.map((element: any) => {\n return element.name;\n });\n\n setRemoteBucketOpts(arrayReplaceBuckets);\n }\n\n wizardPageJump(\"++\");\n setExternalLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setExternalLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const stateOfItem = (initialBucket: string) => {\n if (responseItem.length > 0) {\n const bucketResponse = responseItem.find(\n (item) => item.originBucket === initialBucket\n );\n\n if (bucketResponse) {\n const errString = get(bucketResponse, \"errorString\", \"\");\n\n if (errString) {\n return errString;\n }\n\n return \"\";\n }\n }\n return \"n/a\";\n };\n\n const LogoToShow = ({ errString }: { errString: string }) => {\n switch (errString) {\n case \"\":\n return (\n
    \n \n
    \n );\n case \"n/a\":\n return null;\n default:\n if (errString) {\n return (\n
    \n \n \n \n
    \n );\n }\n }\n return null;\n };\n\n const updateItem = (indexItem: number, value: string) => {\n const updatedList = [...relationBuckets];\n updatedList[indexItem] = value;\n setRelationBuckets(updatedList);\n };\n\n const itemDisplayBulk = (indexItem: number) => {\n if (remoteBucketsOpts.length > 0) {\n return (\n \n ) => {\n updateItem(indexItem, e.target.value as string);\n }}\n options={optionsForBucketsDrop}\n disabled={addLoading}\n />\n \n );\n }\n return (\n \n ) => {\n updateItem(indexItem, event.target.value);\n }}\n value={relationBuckets[indexItem]}\n disabled={addLoading}\n />\n \n );\n };\n\n const removeSuccessItems = (responseItem: BulkReplicationItem[]) => {\n let newBucketsToAlter = [...bucketsToAlter];\n let newRelationBuckets = [...relationBuckets];\n\n responseItem.forEach((successElement) => {\n const errorString = get(successElement, \"errorString\", \"\");\n\n if (!errorString || errorString === \"\") {\n const indexToRemove = newBucketsToAlter.indexOf(\n successElement.originBucket\n );\n\n newBucketsToAlter.splice(indexToRemove, 1);\n newRelationBuckets.splice(indexToRemove, 1);\n }\n });\n\n setBucketsToAlter(newBucketsToAlter);\n setRelationBuckets(newRelationBuckets);\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Set Multiple Bucket Replication\"\n >\n \n \n \n \n

    Remote Endpoint Configuration

    \n \n Please avoid the use of root credentials for this feature\n \n
    \n
    \n \n ) => {\n setAccessKey(e.target.value);\n }}\n label=\"Access Key\"\n value={accessKey}\n />\n \n \n ) => {\n setSecretKey(e.target.value);\n }}\n label=\"Secret Key\"\n value={secretKey}\n />\n \n \n ) => {\n setTargetURL(e.target.value);\n }}\n placeholder=\"play.min.io:9000\"\n label=\"Target URL\"\n value={targetURL}\n />\n \n \n {\n setUseTLS(e.target.checked);\n }}\n value=\"yes\"\n />\n \n \n ) => {\n setRegion(e.target.value);\n }}\n label=\"Region\"\n value={region}\n />\n \n \n ) => {\n setReplicationMode(e.target.value as string);\n }}\n label=\"Replication Mode\"\n value={replicationMode}\n options={[\n { label: \"Asynchronous\", value: \"async\" },\n { label: \"Synchronous\", value: \"sync\" },\n ]}\n />\n \n {replicationMode === \"async\" && (\n \n ) => {\n if (e.target.validity.valid) {\n setBandwidthScalar(e.target.value as string);\n }\n }}\n label=\"Bandwidth\"\n value={bandwidthScalar}\n min=\"0\"\n pattern={\"[0-9]*\"}\n overlayObject={\n {\n setBandwidthUnit(newValue);\n }}\n unitSelected={bandwidthUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n />\n \n )}\n \n ) => {\n setHealthCheck(e.target.value as string);\n }}\n label=\"Health Check Duration\"\n value={healthCheck}\n />\n \n \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Next\",\n enabled: !externalLoading,\n action: retrieveRemoteBuckets,\n },\n ],\n },\n {\n label: \"Bucket Assignments\",\n componentRender: (\n \n

    Remote Bucket Assignments

    \n \n Please select / type the desired remote bucket were you want\n the local data to be replicated.\n \n
    \n {bucketsToAlter.map((bucketName: string, index: number) => {\n const errorItem = stateOfItem(bucketName);\n return (\n \n
    \n {bucketName}\n
    \n
    \n {itemDisplayBulk(index)}\n
    \n
    \n {responseItem.length > 0 && (\n \n )}\n
    \n \n );\n })}\n
    \n
    \n ),\n buttons: [\n {\n type: \"back\",\n label: \"Back\",\n enabled: true,\n },\n {\n type: \"next\",\n label: \"Create\",\n enabled: !addLoading,\n action: addRecord,\n },\n ],\n },\n ]}\n forModal\n />\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddBulkReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { SelectChangeEvent, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport api from \"../../../../common/api\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport { ITiersDropDown } from \"../BucketDetails/AddLifecycleModal\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport { MultiBucketResult } from \"../types\";\n\ninterface IBulkReplicationModal {\n open: boolean;\n closeModalAndRefresh: (clearSelection: boolean) => any;\n classes: any;\n buckets: string[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n resultGrid: {\n display: \"grid\",\n gridTemplateColumns: \"45px auto\",\n alignItems: \"center\",\n justifyContent: \"stretch\",\n },\n errorIcon: {\n paddingTop: 5,\n color: \"#C72C48\",\n },\n successIcon: {\n paddingTop: 5,\n color: \"#42C91A\",\n },\n hide: {\n opacity: 0,\n transitionDuration: \"0.3s\",\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddBulkReplicationModal = ({\n open,\n closeModalAndRefresh,\n classes,\n buckets,\n setModalErrorSnackMessage,\n}: IBulkReplicationModal) => {\n const [addLoading, setAddLoading] = useState(false);\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = 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 const [results, setResults] = useState(null);\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 setModalErrorSnackMessage(err);\n });\n }\n }, [loadingTiers, setModalErrorSnackMessage]);\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 LogoToShow = ({ errString }: { errString: string }) => {\n switch (errString) {\n case \"\":\n return (\n
    \n \n
    \n );\n case \"n/a\":\n return null;\n default:\n if (errString) {\n return (\n
    \n \n \n \n
    \n );\n }\n }\n return null;\n };\n\n const createLifecycleRules = (to: any) => {\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 lifecycleInsert = {\n buckets,\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\n ...rules,\n };\n\n api\n .invoke(\"POST\", `/api/v1/buckets/multi-lifecycle`, lifecycleInsert)\n .then((res: MultiBucketResult) => {\n setAddLoading(false);\n setResults(res);\n to(\"++\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Set Lifecycle to multiple buckets\"\n >\n \n \n \n \n

    Remote Endpoint Configuration

    \n \n \n \n
    \n \n Lifecycle Configuration\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 {ilmType === \"expiry\" ? (\n \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 ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\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 ) => {\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 ) => {\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 setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n
    \n
    \n
    \n
    \n \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Create Rules\",\n enabled: !loadingTiers && !addLoading && isFormValid,\n action: createLifecycleRules,\n },\n ],\n },\n {\n label: \"Results\",\n componentRender: (\n \n

    Multi Bucket lifecycle Assignments Results

    \n \n \n

    Buckets Results

    \n {results?.results.map((resultItem) => {\n return (\n
    \n {LogoToShow({ errString: resultItem.error || \"\" })}\n {resultItem.bucketName}\n
    \n );\n })}\n
    \n
    \n
    \n ),\n buttons: [\n {\n type: \"custom\",\n label: \"Done\",\n enabled: !addLoading,\n action: () => closeModalAndRefresh(true),\n },\n ],\n },\n ]}\n forModal\n />\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddBulkReplicationModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 Grid from \"@mui/material/Grid\";\nimport { Bucket, BucketList } from \"../types\";\nimport {\n AddIcon,\n BucketsIcon,\n LifecycleConfigIcon,\n SelectAllIcon,\n} from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport BucketListItem from \"./BucketListItem\";\nimport BulkReplicationModal from \"./BulkReplicationModal\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport MultipleBucketsIcon from \"../../../../icons/MultipleBucketsIcon\";\nimport SelectMultipleIcon from \"../../../../icons/SelectMultipleIcon\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport BulkLifecycleModal from \"./BulkLifecycleModal\";\nimport hasPermission from \"../../../../common/SecureComponent/accessControl\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n bulkSelect: {\n marginLeft: 8,\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n },\n \"&.MuiButton-contained\": {\n backgroundColor: theme.palette.primary.main,\n },\n },\n addBucket: {\n marginLeft: 8,\n },\n bucketList: {\n marginTop: 25,\n height: \"calc(100vh - 210px)\",\n },\n searchField: {\n ...searchField.searchField,\n minWidth: 380,\n \"@media (max-width: 900px)\": {\n minWidth: 220,\n },\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IListBucketsProps {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListBuckets = ({\n classes,\n history,\n setErrorSnackMessage,\n}: IListBucketsProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [filterBuckets, setFilterBuckets] = useState(\"\");\n const [selectedBuckets, setSelectedBuckets] = useState([]);\n const [replicationModalOpen, setReplicationModalOpen] =\n useState(false);\n const [lifecycleModalOpen, setLifecycleModalOpen] = useState(false);\n\n const [bulkSelect, setBulkSelect] = useState(false);\n\n useEffect(() => {\n if (loading) {\n const fetchRecords = () => {\n setLoading(true);\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n setLoading(false);\n setRecords(res.buckets || []);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n };\n fetchRecords();\n }\n }, [loading, setErrorSnackMessage]);\n\n const filteredRecords = records.filter((b: Bucket) => {\n if (filterBuckets === \"\") {\n return true;\n } else {\n return b.name.indexOf(filterBuckets) >= 0;\n }\n });\n\n const selectListBuckets = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedBuckets]; // 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 setSelectedBuckets(elements);\n\n return elements;\n };\n\n const closeBulkReplicationModal = (unselectAll: boolean) => {\n setReplicationModalOpen(false);\n\n if (unselectAll) {\n setSelectedBuckets([]);\n }\n };\n\n const closeBulkLifecycleModal = (unselectAll: boolean) => {\n setLifecycleModalOpen(false);\n\n if (unselectAll) {\n setSelectedBuckets([]);\n }\n };\n\n const renderItemLine = (index: number) => {\n const bucket = filteredRecords[index] || null;\n if (bucket) {\n return (\n \n );\n }\n return null;\n };\n\n const selectAllBuckets = () => {\n if (selectedBuckets.length === filteredRecords.length) {\n setSelectedBuckets([]);\n return;\n }\n\n const selectAllBuckets = filteredRecords.map((bucket) => {\n return bucket.name;\n });\n\n setSelectedBuckets(selectAllBuckets);\n };\n\n const canCreateBucket = hasPermission(\"*\", [IAM_SCOPES.S3_CREATE_BUCKET]);\n\n return (\n \n {replicationModalOpen && (\n \n )}\n {lifecycleModalOpen && (\n \n )}\n \n \n \n \n\n \n {\n setBulkSelect(!bulkSelect);\n setSelectedBuckets([]);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={bulkSelect ? \"contained\" : \"outlined\"}\n />\n\n {bulkSelect && (\n }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n )}\n\n {\n setLifecycleModalOpen(true);\n }}\n text={\"\"}\n icon={}\n disabled={selectedBuckets.length === 0}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n setReplicationModalOpen(true);\n }}\n text={\"\"}\n icon={}\n disabled={selectedBuckets.length === 0}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n setLoading(true);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n\n {\n history.push(\"/add-bucket\");\n }}\n text={\"Create Bucket\"}\n icon={}\n color={\"primary\"}\n variant={\"contained\"}\n disabled={!canCreateBucket}\n />\n \n \n\n {loading && }\n {!loading && (\n \n {filteredRecords.length !== 0 && (\n \n )}\n {filteredRecords.length === 0 && filterBuckets !== \"\" && (\n \n \n }\n title={\"No Results\"}\n help={\n \n No buckets match the filtering condition\n \n }\n />\n \n \n )}\n {filteredRecords.length === 0 && filterBuckets === \"\" && (\n \n \n }\n title={\"Buckets\"}\n help={\n \n MinIO uses buckets to organize objects. A bucket is\n similar to a folder or directory in a filesystem, where\n each bucket can hold an arbitrary number of objects.\n \n
    \n
    \n To get started, \n {\n history.push(\"/add-bucket\");\n }}\n >\n Create a Bucket.\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 connector(withStyles(styles)(ListBuckets));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 .\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, { 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, {\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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","\"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.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'CheckCircleOutline');\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 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');\n\nexports.default = _default;","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","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","wordWrap","overflowWrap","wordBreak","font","position","top","background","checkBoxElement","float","overflow","viewButton","boxShadow","manageButton","grey","textTransform","metric","metricLabel","metricText","unit","bucketName","margin","bucketIcon","bucketInfo","flexFlow","bucketStats","marginTop","borderTop","bucketActionButtons","justifyContent","bucket","onSelect","selected","bulkSelect","usage","niceBytes","usageScalar","split","usageUnit","quota","get","quotaForString","calculateBytes","Grid","clsx","sm","e","stopPropagation","CheckboxWrapper","checked","id","name","label","onChange","value","Typography","creation_date","rw_access","read","write","accessToStr","SecureComponent","scopes","IAM_PERMISSIONS","IAM_ROLES","resource","to","style","textDecoration","RBIconButton","Box","spacing","textAlign","Fragment","total","objects","prettyNumber","connector","connect","setModalErrorSnackMessage","remoteBucketList","gridTemplateColumns","errorIcon","successIcon","hide","opacity","transitionDuration","modalBasic","wizardCommon","open","closeModalAndRefresh","buckets","useState","bucketsToAlter","setBucketsToAlter","addLoading","setAddLoading","externalLoading","setExternalLoading","accessKey","setAccessKey","secretKey","setSecretKey","targetURL","setTargetURL","region","setRegion","useTLS","setUseTLS","replicationMode","setReplicationMode","bandwidthScalar","setBandwidthScalar","bandwidthUnit","setBandwidthUnit","healthCheck","setHealthCheck","relationBuckets","setRelationBuckets","remoteBucketsOpts","setRemoteBucketOpts","responseItem","setResponseItem","optionsForBucketsDrop","map","remoteBucketName","useEffect","length","bucketsAlter","relationBucketsAlter","forEach","push","LogoToShow","errString","CheckCircleOutline","Tooltip","placement","ErrorOutline","updateItem","indexItem","updatedList","removeSuccessItems","newBucketsToAlter","newRelationBuckets","successElement","errorString","indexToRemove","indexOf","originBucket","splice","ModalWrapper","modalOpen","onClose","GenericWizard","loadingStep","wizardSteps","componentRender","PredefinedList","content","join","descriptionText","InputBoxWrapper","target","placeholder","FormSwitchWrapper","SelectWrapper","options","type","validity","valid","min","pattern","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","buttons","enabled","action","wizardPageJump","remoteConnectInfo","api","then","dataReturn","arrayReplaceBuckets","element","catch","err","index","errorItem","initialBucket","bucketResponse","find","stateOfItem","event","toString","replicate","destinationBucket","endURL","hc","parseInt","remoteBucketsInfo","bucketsRelation","syncMode","bandwidth","getBytes","healthCheckPeriod","response","states","replicationState","filter","itm","setTimeout","forModal","resultGrid","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","loadingTiers","setLoadingTiers","tiersList","setTiersList","prefix","setPrefix","tags","setTags","storageClass","setStorageClass","NCTransitionSC","setNCTransitionSC","expiredObjectDM","setExpiredObjectDM","NCExpirationDays","setNCExpirationDays","NCTransitionDays","setNCTransitionDays","ilmType","setIlmType","expiryDays","setExpiryDays","transitionDays","setTransitionDays","isFormValid","setIsFormValid","results","setResults","res","objList","tier","tierType","formScrollable","formFieldRow","fieldGroup","RadioGroupSelector","currentSelection","selectorOptions","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","rules","expiry","expiry_days","noncurrentversion_expiration_days","transition","transition_days","noncurrentversion_transition_days","noncurrentversion_transition_storage_class","storage_class","lifecycleInsert","expired_object_delete_marker","resultItem","error","setErrorSnackMessage","addBucket","bucketList","searchField","minWidth","containerForHeader","history","records","setRecords","loading","setLoading","filterBuckets","setFilterBuckets","selectedBuckets","setSelectedBuckets","replicationModalOpen","setReplicationModalOpen","lifecycleModalOpen","setLifecycleModalOpen","setBulkSelect","filteredRecords","b","selectListBuckets","targetD","canCreateBucket","hasPermission","IAM_SCOPES","BulkReplicationModal","unselectAll","BulkLifecycleModal","PageHeader","PageLayout","actionsTray","SearchBox","overrideClass","SelectMultipleIcon","selectAllBuckets","MultipleBucketsIcon","RefreshIcon","LinearProgress","VirtualizedList","rowRenderFunction","includes","totalItems","alignContent","HelpBox","CONSOLE_UI_RESOURCE","AButton","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","contained","dark","light","button","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","flexBasis","noTopMargin","overrideLabelClasses","inputProps","checkedIcon","unCheckedIcon","htmlFor","noMinWidthLabel","tooltipContainer","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","inputWithBorder","overflowY","lineInputBoxes","queryDiv","alignSelf","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","keys","values","splittedVals","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","onChangeValue","debounce","queryString","keyVal","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","inputLabel","ref","radioStyles","radioIcons","RadioButton","disableRipple","radioSelectedIcon","radioUnselectedIcon","optionLabel","checkedOption","disableOptions","displayInColumn","radioOptionsLayout","row","selectorOption","control","wizardStepContainer","flexDirection","flex","wizardComponent","minHeight","wizardModal","buttonsContainer","buttonInnerContainer","page","pageChange","btn","Button","toPage","buttonAction","wizFromContainer","wizFromModal","modalWizardSteps","borderBottom","listStyle","buttonList","outline","paddedContentGrid","stepsLabel","stepsMasterContainer","maxHeight","verticalSteps","borderRight","stepsContainer","stepItem","currentStep","setCurrentStep","toElement","lastPage","nextPage","prevPage","pg","step","md","lg","xl","List","component","dense","ListItem","toLowerCase","replaceAll","ListItemText","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","maxWidth","snackBarCommon","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","left","labelStyle","rightMenu","logo","fill","middleComponent","actions","direction","adornment","adornmentPosition","disableUnderline","InputProps","itemStatusMap","defaultHeight","RenderItemLine","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","itemSize","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_objectWithoutProperties","source","excluded","key","i","Object","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9605.e2f1ac95.chunk.js b/portal-ui/build/static/js/9605.e2f1ac95.chunk.js deleted file mode 100644 index 234fda66f..000000000 --- a/portal-ui/build/static/js/9605.e2f1ac95.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9605],{69605:function(e,t,n){n.r(t),n.d(t,{default:function(){return L}});var a=n(29439),s=n(1413),l=n(72791),i=n(60364),r=n(11135),o=n(25787),c=n(23814),d=n(61889),u=n(51691),m=n(10703),h=n(81207),g=n(93656),x=n(42649),b=n(93433),v=n(56028),j=n(36151),p=n(32509),Z=n(21435),f=n(40968),N=n(84741),C=n(56578),S=n(80184),R=(0,o.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.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}},c.oO),c.ID),c.DF))}))((function(e){var t=e.tenant,n=e.classes,s=e.open,i=e.onClose,r=e.image,o=e.labels,c=e.annotations,u=e.nodeSelector,m=e.diskCapacityGB,g=e.serviceAccountName,R=e.dbLabels,q=e.dbAnnotations,A=e.dbNodeSelector,y=e.dbImage,P=e.dbServiceAccountName,k=e.cpuRequest,w=e.memRequest,D=e.dbCPURequest,L=e.dbMemRequest,M=(0,l.useState)({}),I=(0,a.Z)(M,2),B=I[0],G=I[1],z=(0,l.useState)(o.length>0?(0,b.Z)(o):[{key:"",value:""}]),F=(0,a.Z)(z,2),E=F[0],U=F[1],O=(0,l.useState)(c.length>0?(0,b.Z)(c):[{key:"",value:""}]),T=(0,a.Z)(O,2),V=T[0],$=T[1],K=(0,l.useState)(u.length>0?(0,b.Z)(u):[{key:"",value:""}]),_=(0,a.Z)(K,2),W=_[0],Y=_[1],H=(0,l.useState)(r),J=(0,a.Z)(H,2),Q=J[0],X=J[1],ee=(0,l.useState)(m),te=(0,a.Z)(ee,2),ne=te[0],ae=te[1],se=(0,l.useState)(null!=g?g:""),le=(0,a.Z)(se,2),ie=le[0],re=le[1],oe=(0,l.useState)(R.length>0?(0,b.Z)(R):[{key:"",value:""}]),ce=(0,a.Z)(oe,2),de=ce[0],ue=ce[1],me=(0,l.useState)(q.length>0?(0,b.Z)(q):[{key:"",value:""}]),he=(0,a.Z)(me,2),ge=he[0],xe=he[1],be=(0,l.useState)(A.length>0?(0,b.Z)(A):[{key:"",value:""}]),ve=(0,a.Z)(be,2),je=ve[0],pe=ve[1],Ze=(0,l.useState)(y),fe=(0,a.Z)(Ze,2),Ne=fe[0],Ce=fe[1],Se=(0,l.useState)(null!=P?P:""),Re=(0,a.Z)(Se,2),qe=Re[0],Ae=Re[1],ye=(0,l.useState)({}),Pe=(0,a.Z)(ye,2),ke=Pe[0],we=Pe[1],De=(0,l.useState)({}),Le=(0,a.Z)(De,2),Me=Le[0],Ie=Le[1],Be=(0,l.useState)({}),Ge=(0,a.Z)(Be,2),ze=Ge[0],Fe=Ge[1],Ee=(0,l.useState)({}),Ue=(0,a.Z)(Ee,2),Oe=Ue[0],Te=Ue[1],Ve=(0,l.useState)({}),$e=(0,a.Z)(Ve,2),Ke=$e[0],_e=$e[1],We=(0,l.useState)({}),Ye=(0,a.Z)(We,2),He=Ye[0],Je=Ye[1],Qe=(0,l.useState)(k),Xe=(0,a.Z)(Qe,2),et=Xe[0],tt=Xe[1],nt=(0,l.useState)(w?Math.floor(parseInt(w,10)/1e9).toString():"0"),at=(0,a.Z)(nt,2),st=at[0],lt=at[1],it=(0,l.useState)(D),rt=(0,a.Z)(it,2),ot=rt[0],ct=rt[1],dt=(0,l.useState)(L?Math.floor(parseInt(L,10)/1e9).toString():"0"),ut=(0,a.Z)(dt,2),mt=ut[0],ht=ut[1],gt=function(e){for(var t=[],n=0;n0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Labels"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.labels.length>0?N.labels:[],recordName:"Labels"})})})]}),null!=(null===N||void 0===N?void 0:N.annotations)&&N.annotations.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Annotations"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.annotations.length>0?N.annotations:[],recordName:"Annotations"})})})]}),null!=(null===N||void 0===N?void 0:N.nodeSelector)&&N.nodeSelector.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Node Selector"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.nodeSelector.length>0?N.nodeSelector:[],recordName:"Node Selector"})})})]})]})})}),(0,S.jsx)("h2",{children:"Database Details"}),(0,S.jsx)("hr",{className:i.hrClass}),(0,S.jsx)("table",{width:"100%",children:(0,S.jsx)("tbody",{children:c?(0,S.jsx)("tr",{children:(0,S.jsx)("td",{className:i.centerAlign,colSpan:4,children:(0,S.jsx)(w.Z,{})})}):(0,S.jsxs)(l.Fragment,{children:[null!=(null===N||void 0===N?void 0:N.logDBCPURequest)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"DB CPU Request:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.logDBCPURequest})]}),null!=(null===N||void 0===N?void 0:N.logDBMemRequest)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"DB Memory Request:"}),(0,S.jsx)("td",{children:(0,k.ae)(null===N||void 0===N?void 0:N.logDBMemRequest,!0)})]}),null!=(null===N||void 0===N?void 0:N.dbImage)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"Postgres Image:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.dbImage})]}),null!=(null===N||void 0===N?void 0:N.dbServiceAccountName)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"Service Account:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.dbServiceAccountName})]}),null!=(null===N||void 0===N?void 0:N.dbLabels)&&N.dbLabels.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Labels"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(t=N.dbLabels)||void 0===t?void 0:t.length)>0?N.dbLabels:[],recordName:"labels"})})})]}),null!=(null===N||void 0===N?void 0:N.annotations)&&N.dbAnnotations.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Annotations"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(n=N.dbAnnotations)||void 0===n?void 0:n.length)>0?N.dbAnnotations:[],recordName:"annotations"})})})]}),null!=(null===N||void 0===N?void 0:N.nodeSelector)&&N.dbNodeSelector.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Node Selector "})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(s=N.dbNodeSelector)||void 0===s?void 0:s.length)>0?N.dbNodeSelector:[],recordName:"node selectors"})})})]})]})})})]})})})]})})))}}]); -//# sourceMappingURL=9605.e2f1ac95.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9605.e2f1ac95.chunk.js.map b/portal-ui/build/static/js/9605.e2f1ac95.chunk.js.map deleted file mode 100644 index fb9e040be..000000000 --- a/portal-ui/build/static/js/9605.e2f1ac95.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9605.e2f1ac95.chunk.js","mappings":"+YA8kBA,GAAeA,EAAAA,EAAAA,IA/gBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wBACXC,gBAAiB,CACfC,UAAW,SAEbC,eAAgB,CACdC,QAAS,OACTC,WAAY,SACZC,eAAgB,cAElBC,oBAAqB,CACnBC,WAAY,GAEdC,gBAAiB,CACfL,QAAS,OACTM,SAAU,EACVL,WAAY,SACZ,QAAS,CACPK,SAAU,EACVC,MAAO,SAGXC,eAAgB,CACdR,QAAS,OACTE,eAAgB,cAElBO,WAAY,CACVC,SAAU,GACVC,WAAY,IACZb,UAAW,UAEbc,gBAAiB,CACfF,SAAU,GACVG,MAAO,OACPf,UAAW,UAEbgB,UAAW,CACTC,oBAAqB,sBACrBf,QAAS,OACTgB,QAAS,KAERC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OAoeP,EAje4B,SAAC,GAoBA,IAnB3BC,EAmB0B,EAnB1BA,OACAC,EAkB0B,EAlB1BA,QACAC,EAiB0B,EAjB1BA,KACAC,EAgB0B,EAhB1BA,QACAC,EAe0B,EAf1BA,MACAC,EAc0B,EAd1BA,OACAC,EAa0B,EAb1BA,YACAC,EAY0B,EAZ1BA,aACAC,EAW0B,EAX1BA,eACAC,EAU0B,EAV1BA,mBACAC,EAS0B,EAT1BA,SACAC,EAQ0B,EAR1BA,cACAC,EAO0B,EAP1BA,eACAC,EAM0B,EAN1BA,QACAC,EAK0B,EAL1BA,qBACAC,EAI0B,EAJ1BA,WACAC,EAG0B,EAH1BA,WACAC,EAE0B,EAF1BA,aACAC,EAC0B,EAD1BA,aAEA,GAAgDC,EAAAA,EAAAA,UAAc,IAA9D,eAAOC,EAAP,KAAyBC,EAAzB,KACA,GAAkCF,EAAAA,EAAAA,UAChCd,EAAOiB,OAAS,GAAhB,OAAwBjB,GAAU,CAAC,CAAEkB,IAAK,GAAIC,MAAO,MADvD,eAAOC,EAAP,KAAkBC,EAAlB,KAGA,GAA4CP,EAAAA,EAAAA,UAC1Cb,EAAYgB,OAAS,GAArB,OAA6BhB,GAAe,CAAC,CAAEiB,IAAK,GAAIC,MAAO,MADjE,eAAOG,EAAP,KAAuBC,EAAvB,KAGA,GAA8CT,EAAAA,EAAAA,UAC5CZ,EAAae,OAAS,GAAtB,OAA8Bf,GAAgB,CAAC,CAAEgB,IAAK,GAAIC,MAAO,MADnE,eAAOK,EAAP,KAAwBC,EAAxB,KAGA,GAAgCX,EAAAA,EAAAA,UAAiBf,GAAjD,eAAO2B,EAAP,KAAiBC,EAAjB,KACA,IACEb,EAAAA,EAAAA,UAAiBX,GADnB,iBAAOyB,GAAP,MAA0BC,GAA1B,MAEA,IAA0Df,EAAAA,EAAAA,UAClC,MAAtBV,EAA6BA,EAAqB,IADpD,iBAAO0B,GAAP,MAA8BC,GAA9B,MAGA,IAAsCjB,EAAAA,EAAAA,UACpCT,EAASY,OAAS,GAAlB,OAA0BZ,GAAY,CAAC,CAAEa,IAAK,GAAIC,MAAO,MAD3D,iBAAOa,GAAP,MAAoBC,GAApB,MAGA,IAAgDnB,EAAAA,EAAAA,UAC9CR,EAAcW,OAAS,GAAvB,OAA+BX,GAAiB,CAAC,CAAEY,IAAK,GAAIC,MAAO,MADrE,iBAAOe,GAAP,MAAyBC,GAAzB,MAGA,IAAkDrB,EAAAA,EAAAA,UAChDP,EAAeU,OAAS,GAAxB,OAAgCV,GAAkB,CAAC,CAAEW,IAAK,GAAIC,MAAO,MADvE,iBAAOiB,GAAP,MAA0BC,GAA1B,MAGA,IAAoCvB,EAAAA,EAAAA,UAAiBN,GAArD,iBAAO8B,GAAP,MAAmBC,GAAnB,MACA,IACEzB,EAAAA,EAAAA,UAAyC,MAAxBL,EAA+BA,EAAuB,IADzE,iBAAO+B,GAAP,MAAgCC,GAAhC,MAEA,IAAsC3B,EAAAA,EAAAA,UAAc,IAApD,iBAAO4B,GAAP,MAAoBC,GAApB,MACA,IAAgD7B,EAAAA,EAAAA,UAAc,IAA9D,iBAAO8B,GAAP,MAAyBC,GAAzB,MACA,IAAkD/B,EAAAA,EAAAA,UAAc,IAAhE,iBAAOgC,GAAP,MAA0BC,GAA1B,MACA,IAA0CjC,EAAAA,EAAAA,UAAc,IAAxD,iBAAOkC,GAAP,MAAsBC,GAAtB,MACA,IAAoDnC,EAAAA,EAAAA,UAAc,IAAlE,iBAAOoC,GAAP,MAA2BC,GAA3B,MACA,IAAsDrC,EAAAA,EAAAA,UAAc,IAApE,iBAAOsC,GAAP,MAA4BC,GAA5B,MACA,IAA0CvC,EAAAA,EAAAA,UAAiBJ,GAA3D,iBAAO4C,GAAP,MAAsBC,GAAtB,MACA,IAA0CzC,EAAAA,EAAAA,UACxCH,EACI6C,KAAKC,MAAMC,SAAS/C,EAAY,IAAM,KAAYgD,WAClD,KAHN,iBAAOC,GAAP,MAAsBC,GAAtB,MAKA,IAA8C/C,EAAAA,EAAAA,UAAiBF,GAA/D,iBAAOkD,GAAP,MAAwBC,GAAxB,MACA,IAA8CjD,EAAAA,EAAAA,UAC5CD,EACI2C,KAAKC,MAAMC,SAAS7C,EAAc,IAAM,KAAY8C,WACpD,KAHN,iBAAOK,GAAP,MAAwBC,GAAxB,MAMMC,GAAO,SAACC,GAEZ,IADA,IAAIC,EAAsB,GACjBC,EAAI,EAAGA,EAAIF,EAAElD,OAAQoD,IACX,KAAbF,EAAEE,GAAGnD,KACPkD,EAAOE,KAAKH,EAAEE,IAGlB,OAAOD,GAGHG,GAAkB,SAACC,GACvBxD,GAAoByD,EAAAA,EAAAA,GAAqB1D,EAAkByD,MAG7DE,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAAqC,GAEzCA,EAAoBL,KAAK,CACvBM,SAAS,QACTC,UAAU,EACV1D,MAAOO,EACPoD,QACE,wIACFC,qBAAsB,kBAExBJ,EAAoBL,KAAK,CACvBM,SAAS,UACTC,UAAU,EACV1D,MAAOmB,GACPwC,QACE,wIACFC,qBAAsB,kBAExBJ,EAAoBL,KAAK,CACvBM,SAAS,iBACTC,UAAU,EACV1D,MAAOS,GACPkD,QAAS,WACTC,qBAAsB,wCAExBJ,EAAoBL,KAAK,CACvBM,SAAS,qBACTC,UAAU,EACV1D,MAAOW,GACPgD,QAAS,yBACTC,qBAAsB,iCAExBJ,EAAoBL,KAAK,CACvBM,SAAS,uBACTC,UAAU,EACV1D,MAAOqB,GACPsC,QAAS,yBACTC,qBAAsB,iCAExBJ,EAAoBL,KAAK,CACvBM,SAAS,aACTC,UAAU,EACV1D,MAAOmC,GACPwB,QAAS,WACTC,qBACE,+DAEJJ,EAAoBL,KAAK,CACvBM,SAAS,aACTC,UAAU,EACV1D,MAAOyC,GACPkB,QAAS,WACTC,qBACE,4DAEJJ,EAAoBL,KAAK,CACvBM,SAAS,eACTC,UAAU,EACV1D,MAAO2C,GACPgB,QAAS,WACTC,qBACE,mEAEJJ,EAAoBL,KAAK,CACvBM,SAAS,eACTC,UAAU,EACV1D,MAAO6C,GACPc,QAAS,WACTC,qBACE,+DAGJ,IAAMC,GAAYC,EAAAA,EAAAA,GAAqBN,GACvC3D,EAAoBgE,KACnB,CACDtD,EACAY,GACAV,GACAE,GACAU,GACAc,GACAM,GACAE,GACAE,GACAhD,IAGF,IAAMkE,GAAa,WACjB,OAC2C,IAAzCC,OAAOC,KAAKrE,GAAkBE,QACM,IAApCkE,OAAOC,KAAK1C,IAAazB,QACgB,IAAzCkE,OAAOC,KAAKxC,IAAkB3B,QACY,IAA1CkE,OAAOC,KAAKtC,IAAmB7B,QACO,IAAtCkE,OAAOC,KAAKpC,IAAe/B,QACgB,IAA3CkE,OAAOC,KAAKlC,IAAoBjC,QACY,IAA5CkE,OAAOC,KAAKhC,IAAqBnC,QAQrC,OACE,SAACoE,EAAA,EAAD,CACEvF,QAAS,kBAAMA,GAAQ,IACvBwF,UAAWzF,EACX0F,MAAM,eAHR,UAKE,iBACEC,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,GACTA,EAAEC,iBACGV,KAMHW,EAAAA,EAAAA,OAEI,MAFJ,6BAG0BlG,EAAOmG,UAHjC,oBAGsDnG,EAAOoG,KAH7D,QAII,CACE/F,OAAQkE,GAAK9C,GACbnB,YAAaiE,GAAK5C,GAClBpB,aAAcgE,GAAK1C,GACnBzB,MAAO2B,EACPvB,eAAgByB,GAChBxB,mBAAoB0B,GACpBzB,SAAU6D,GAAKlC,IACf1B,cAAe4D,GAAKhC,IACpB3B,eAAgB2D,GAAK9B,IACrB5B,QAAS8B,GACT7B,qBAAsB+B,GACtBwD,cAAe1C,GACf2C,cAAerC,GAAgB,KAC/BsC,gBAAiBpC,GACjBqC,gBAAiBnC,GAAkB,OAGtCoC,MAAK,WACJtG,GAAQ,MAETuG,OAAM,SAACC,QA9BVC,EAAAA,EAAAA,IAA0B,CACxBC,aAAc,kCACdC,cAAe,MARvB,UAwCE,UAACC,EAAA,GAAD,CAAMC,WAAS,EAAf,WACE,UAACD,EAAA,GAAD,CAAME,GAAI,GAAIC,UAAWjH,EAAQkH,oBAAjC,WACE,SAACJ,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,4CAEF,SAACN,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,QACFC,MAAO,QACPC,YAAa,QACbrB,KAAI,QACJ5E,MAAOO,EACP2F,SAAU,SAAC1B,GACThE,EAAYgE,EAAE2B,OAAOnG,OACrBoD,GAAgB,UAGlBgD,MAAOxG,EAAgB,OAAa,IAXtC,YAcF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,iBACFC,MAAO,gBACPC,YAAa,gBACbrB,KAAI,iBACJ5E,MAAOS,GACPyF,SAAU,SAAC1B,GACT9D,GAAqB8D,EAAE2B,OAAOnG,OAC9BoD,GAAgB,mBAGlBgD,MAAOxG,EAAgB,gBAAsB,GAC7CyG,eACE,SAACC,EAAA,EAAD,CACEP,GAAI,YACJQ,aAAc,aACdC,aAAc,KACdC,UAAW,CAAC,CAAET,MAAO,KAAMhG,MAAO,OAClC0G,UAAU,KAlBhB,qBAuBF,SAACnB,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,qBACFC,MAAO,kBACPC,YAAa,uBACbrB,KAAI,qBACJ5E,MAAOW,GACPuF,SAAU,SAAC1B,GACT5D,GAAyB4D,EAAE2B,OAAOnG,OAClCoD,GAAgB,uBAGlBgD,MAAOxG,EAAgB,oBAA0B,IAXnD,yBAeF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,aACFC,MAAO,cACPC,YAAa,cACbrB,KAAI,aACJ5E,MAAOmC,GACP+D,SAAU,SAAC1B,GACTpC,GAAiBoC,EAAE2B,OAAOnG,OAC1BoD,GAAgB,eAGlBgD,MAAOxG,EAAgB,YAAkB,IAX3C,iBAcF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,aACFC,MAAO,iBACPC,YAAa,iBACbrB,KAAI,aACJ5E,MAAOyC,GACPyD,SAAU,SAAC1B,GACT9B,GAAiB8B,EAAE2B,OAAOnG,OAC1BoD,GAAgB,eAGlBgD,MAAOxG,EAAgB,YAAkB,GACzCyG,eACE,SAACC,EAAA,EAAD,CACEP,GAAI,YACJQ,aAAc,aACdC,aAAc,KACdC,UAAW,CAAC,CAAET,MAAO,KAAMhG,MAAO,OAClC0G,UAAU,KAlBhB,iBAwBF,UAACnB,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,qBACA,SAACC,EAAA,EAAD,CACEC,UAAW5G,EACX6G,aAAc5G,EACd6G,UAAW,SACXX,MAAO7E,GACPyF,SAAUxF,SAGd,UAAC+D,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,0BACA,SAACC,EAAA,EAAD,CACEC,UAAW1G,EACX2G,aAAc1G,EACd2G,UAAW,cACXX,MAAO3E,GACPuF,SAAUtF,SAGd,UAAC6D,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,4BACA,SAACC,EAAA,EAAD,CACEC,UAAWxG,EACXyG,aAAcxG,EACdyG,UAAW,gBACXX,MAAOzE,GACPqF,SAAUpF,SAGd,SAAC2D,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,uDAEF,SAACN,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,UACFC,MAAO,iBACPC,YAAa,WACbrB,KAAI,UACJ5E,MAAOmB,GACP+E,SAAU,SAAC1B,GACTpD,GAAcoD,EAAE2B,OAAOnG,OACvBoD,GAAgB,YAGlBgD,MAAOxG,EAAgB,SAAe,IAXxC,cAcF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,uBACFC,MAAO,kBACPC,YAAa,0BACbrB,KAAI,uBACJ5E,MAAOqB,GACP6E,SAAU,SAAC1B,GACTlD,GAA2BkD,EAAE2B,OAAOnG,OACpCoD,GAAgB,yBAGlBgD,MAAOxG,EAAgB,sBAA4B,IAXrD,2BAcF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,eACFC,MAAO,iBACPC,YAAa,iBACbrB,KAAI,eACJ5E,MAAO2C,GACPuD,SAAU,SAAC1B,GACT5B,GAAmB4B,EAAE2B,OAAOnG,OAC5BoD,GAAgB,iBAGlBgD,MAAOxG,EAAgB,cAAoB,IAX7C,mBAcF,SAAC2F,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEC,GAAE,eACFC,MAAO,oBACPC,YAAa,oBACbrB,KAAI,eACJ5E,MAAO6C,GACPqD,SAAU,SAAC1B,GACT1B,GAAmB0B,EAAE2B,OAAOnG,OAC5BoD,GAAgB,iBAGlBgD,MAAOxG,EAAgB,cAAoB,GAC3CyG,eACE,SAACC,EAAA,EAAD,CACEP,GAAI,YACJQ,aAAc,aACdC,aAAc,KACdC,UAAW,CAAC,CAAET,MAAO,KAAMhG,MAAO,OAClC0G,UAAU,KAlBhB,mBAuBF,UAACnB,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,qBACA,SAACC,EAAA,EAAD,CACEC,UAAWhG,GACXiG,aAAchG,GACdiG,UAAW,YACXX,MAAOvE,GACPmF,SAAUlF,SAGd,UAACyD,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,0BACA,SAACC,EAAA,EAAD,CACEC,UAAW9F,GACX+F,aAAc9F,GACd+F,UAAW,iBACXX,MAAOrE,GACPiF,SAAUhF,SAGd,UAACuD,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAIC,UAAWjH,EAAQoH,aAAtC,WACE,iBAAMH,UAAWjH,EAAQkI,WAAzB,4BACA,SAACC,EAAA,EAAD,CACEC,UAAW5F,GACX6F,aAAc5F,GACd6F,UAAW,kBACXX,MAAOnE,GACP+E,SAAU9E,YAIhB,SAACqD,EAAA,GAAD,CAAME,GAAI,GAAIC,UAAWjH,EAAQxB,gBAAjC,UACE,SAACgK,EAAA,EAAD,CACEC,KAAK,SACLC,QAAQ,YACRlJ,MAAM,UACNyI,UAAW3C,KAJb,8B,kECxFNqD,GAAYC,EAAAA,EAAAA,KAND,SAACC,GAAD,MAAsB,CACrCC,cAAeD,EAAME,QAAQC,cAAcF,cAC3CG,eAAgBJ,EAAME,QAAQC,cAAcE,cAC5CnJ,OAAQ8I,EAAME,QAAQC,cAAcG,cAGF,MAEpC,GAAe9K,EAAAA,EAAAA,IArbA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kCACR6K,EAAAA,IADO,IAEVC,YAAa,CACXhK,SAAU,GACVC,WAAY,IACZE,MAAO,OACP8J,UAAW,GAEbC,cAAe,CACbC,eAAgB,OAChBhK,MAAO,SAETiK,aAAc,CACZC,OAAQ,uBAEVC,eAAgB,CACdC,QAAS,wBAERC,EAAAA,IACAC,EAAAA,KACAC,EAAAA,EAAAA,IAAmBzL,EAAM0L,QAAQ,QAgaxC,CAAkCrB,GA7ZZ,SAAC,GAKH,IAAD,MAJjB3I,EAIiB,EAJjBA,QACAiK,EAGiB,EAHjBA,MACAlK,EAEiB,EAFjBA,OACA+I,EACiB,EADjBA,cAEA,GAAkD5H,EAAAA,EAAAA,WAAkB,GAApE,eAAOgJ,EAAP,KAA0BC,EAA1B,KACA,GAA8BjJ,EAAAA,EAAAA,YAA9B,eAAOkJ,EAAP,KAAgBC,EAAhB,KACA,GAAwBnJ,EAAAA,EAAAA,WAAkB,GAA1C,eAAOoJ,EAAP,KAAaC,EAAb,KACA,GAAgCrJ,EAAAA,EAAAA,WAAkB,GAAlD,eAAO+G,EAAP,KAAiBuC,EAAjB,KACA,GAAsCtJ,EAAAA,EAAAA,WAAkB,GAAxD,eAAOuJ,EAAP,KAAoBC,EAApB,KACA,GAAkDxJ,EAAAA,EAAAA,WAAkB,GAApE,eAAOyJ,EAAP,KAA0BC,EAA1B,KACA,GAAgD1J,EAAAA,EAAAA,WAAkB,GAAlE,eAAO2J,EAAP,KAAyBC,EAAzB,KAEMC,EAAad,EAAMe,OAAN,WACbC,EAAkBhB,EAAMe,OAAN,iBAExBlG,EAAAA,EAAAA,YAAU,WACJoF,GACFjE,EAAAA,EAAAA,OAEI,MAFJ,6BAG0BgF,EAH1B,oBAGqDF,EAHrD,SAKGvE,MAAK,SAAC0E,GACLb,EAAWa,GACXR,EAAeQ,EAAOjD,UACtBuC,EAAYU,EAAOjD,UACnBkC,GAAqB,MAEtB1D,OAAM,SAACC,IACNyE,EAAAA,EAAAA,IAAqB,CACnBvE,aAAc,4BACdC,cAAeH,EAAIG,qBAI1B,CAACkE,EAAYE,EAAiBf,EAAmBM,EAAavC,IAEjE,IAAMmD,GAAwB,WAC5BR,GAAqB,GACrBL,GAAQ,GACRJ,GAAqB,IASvB,OACE,UAAC,EAAAkB,SAAD,YACE,SAACC,EAAA,EAAD,CACE3F,MAAM,mBACN4F,YAAY,UACZC,OAAQb,EACRc,UAAW,WACTxF,EAAAA,EAAAA,OAEI,OAFJ,6BAG0BgF,EAH1B,oBAGqDF,EAHrD,qBAKGvE,MAAK,WACJkE,GAAe,GACfF,GAAY,MAEb/D,OAAM,SAACC,IACNyE,EAAAA,EAAAA,IAAqB,CACnBvE,aAAc,0BACdC,cAAeH,EAAIG,mBAGzBuE,MAEFlL,QAAS,kBAAM0K,GAAqB,IACpCc,qBACE,SAACC,EAAA,EAAD,mGAMJ,SAACL,EAAA,EAAD,CACE3F,MAAM,kBACN4F,YAAY,SACZC,OAAQX,EACRY,UAAW,WACTxF,EAAAA,EAAAA,OAEI,OAFJ,6BAG0BgF,EAH1B,oBAGqDF,EAHrD,oBAKGvE,MAAK,WACJkE,GAAe,MAEhBjE,OAAM,SAACC,IACNyE,EAAAA,EAAAA,IAAqB,CACnBvE,aAAc,yBACdC,cAAeH,EAAIG,mBArD/BiE,GAAoB,GACpBN,GAAY,GACZL,GAAqB,IAwDjBjK,QAAS,kBAAM4K,GAAoB,IACnCY,qBACE,SAACC,EAAA,EAAD,4DAKHrB,GAAmB,OAAXvK,GAA8B,MAAXqK,IAAoBnC,IAC9C,SAAC,EAAD,CACEhI,KAAMqK,EACNpK,QAASkL,GACTrL,OAAQA,EACRI,MAAOiK,EAAQjK,MACfC,OAAQgK,EAAQhK,OAChBC,YAAa+J,EAAQ/J,YACrBC,aAAc8J,EAAQ9J,aACtBC,eAAgB6J,EAAQ7J,eACxBC,mBAAoB4J,EAAQ5J,mBAC5BI,QAASwJ,EAAQxJ,QACjBH,SAAU2J,EAAQ3J,SAClBC,cAAe0J,EAAQ1J,cACvBC,eAAgByJ,EAAQzJ,eACxBE,qBAAsBuJ,EAAQvJ,qBAC9BC,WAAYsJ,EAAQhE,cACpBrF,WAAYqJ,EAAQ/D,cACpBrF,aAAcoJ,EAAQ9D,gBACtBrF,aAAcmJ,EAAQ7D,mBAG1B,eAAIU,UAAWjH,EAAQ4L,aAAvB,sBACA,iBAAK3E,UAAWjH,EAAQ6J,YAAxB,WACE,SAACgC,EAAA,EAAD,CACEtK,MAAM,gBACN+F,GAAG,gBACHnB,KAAK,gBACL2F,SAAUrB,EACVhD,SAAU,SAAC1B,GACOA,EAAE2B,OACMoE,QAEtBhB,GAAoB,GAEpBF,GAAqB,IAGzBrD,MAAO,UACPwE,gBAAiB,CAAC,UAAW,eAE7B9D,IAAaiC,IACb,SAAC8B,EAAA,EAAD,CACEC,QAAS,6BACTC,KAAM,OACNC,QAAS,WACP5B,GAAQ,IAEV6B,MAAM,SAAC,KAAD,IACN5M,MAAM,UACNkJ,QAAS,kBAIbT,IAAaiC,IACb,SAACmC,EAAA,EAAD,CAAOpF,UAAWjH,EAAQ2J,eAA1B,UACE,SAAC7C,EAAA,GAAD,CAAMC,WAAS,EAAf,UACE,UAACD,EAAA,GAAD,CAAMK,MAAI,EAACH,GAAI,GAAf,WACE,yDACA,eAAIC,UAAWjH,EAAQsM,WACvB,kBAAOpN,MAAO,OAAd,UACE,2BACG4J,GACC,yBACE,eAAI7B,UAAWjH,EAAQuM,YAAaC,QAAS,EAA7C,UACE,SAACC,EAAA,EAAD,SAIJ,UAAC,EAAApB,SAAD,WAC6B,OAAnB,OAAPjB,QAAO,IAAPA,OAAA,EAAAA,EAAShE,iBACR,2BACE,eAAIa,UAAWjH,EAAQ0M,SAAvB,2BACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAAShE,mBAGS,OAAnB,OAAPgE,QAAO,IAAPA,OAAA,EAAAA,EAAS/D,iBACR,2BACE,eAAIY,UAAWjH,EAAQ0M,SAAvB,8BACA,yBAAKC,EAAAA,EAAAA,IAAS,OAACvC,QAAD,IAACA,OAAD,EAACA,EAAS/D,eAAe,QAGxB,OAAX,OAAP+D,QAAO,IAAPA,OAAA,EAAAA,EAASjK,SACR,2BACE,eAAI8G,UAAWjH,EAAQ0M,SAAvB,qBACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAASjK,WAGU,OAApB,OAAPiK,QAAO,IAAPA,OAAA,EAAAA,EAAS7J,kBACR,2BACE,eAAI0G,UAAWjH,EAAQ0M,SAAvB,kCAGA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAAS7J,oBAGc,OAAxB,OAAP6J,QAAO,IAAPA,OAAA,EAAAA,EAAS5J,sBACR,2BACE,eAAIyG,UAAWjH,EAAQ0M,SAAvB,+BACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAAS5J,wBAGE,OAAZ,OAAP4J,QAAO,IAAPA,OAAA,EAAAA,EAAShK,SAAkBgK,EAAQhK,OAAOiB,OAAS,IAClD,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,wCAGJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,GAAmBA,EAAQhK,OAAOiB,OAAS,EACvC+I,EAAQhK,OACR,GAEN0M,WAAW,kBAMI,OAAjB,OAAP1C,QAAO,IAAPA,OAAA,EAAAA,EAAS/J,cACR+J,EAAQ/J,YAAYgB,OAAS,IAC3B,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,6CAGJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,GACAA,EAAQ/J,YAAYgB,OAAS,EACzB+I,EAAQ/J,YACR,GAENyM,WAAW,uBAMG,OAAlB,OAAP1C,QAAO,IAAPA,OAAA,EAAAA,EAAS9J,eACR8J,EAAQ9J,aAAae,OAAS,IAC5B,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,+CAGJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,GACAA,EAAQ9J,aAAae,OAAS,EAC1B+I,EAAQ9J,aACR,GAENwM,WAAW,iCAW/B,8CACA,eAAI7F,UAAWjH,EAAQsM,WACvB,kBAAOpN,MAAO,OAAd,UACE,2BACG4J,GACC,yBACE,eAAI7B,UAAWjH,EAAQuM,YAAaC,QAAS,EAA7C,UACE,SAACC,EAAA,EAAD,SAIJ,UAAC,EAAApB,SAAD,WAC+B,OAArB,OAAPjB,QAAO,IAAPA,OAAA,EAAAA,EAAS9D,mBACR,2BACE,eAAIW,UAAWjH,EAAQ0M,SAAvB,8BACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAAS9D,qBAGW,OAArB,OAAP8D,QAAO,IAAPA,OAAA,EAAAA,EAAS7D,mBACR,2BACE,eAAIU,UAAWjH,EAAQ0M,SAAvB,iCAGA,yBAAKC,EAAAA,EAAAA,IAAS,OAACvC,QAAD,IAACA,OAAD,EAACA,EAAS7D,iBAAiB,QAGxB,OAAb,OAAP6D,QAAO,IAAPA,OAAA,EAAAA,EAASxJ,WACR,2BACE,eAAIqG,UAAWjH,EAAQ0M,SAAvB,8BACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAASxJ,aAGgB,OAA1B,OAAPwJ,QAAO,IAAPA,OAAA,EAAAA,EAASvJ,wBACR,2BACE,eAAIoG,UAAWjH,EAAQ0M,SAAvB,+BACA,+BAAKtC,QAAL,IAAKA,OAAL,EAAKA,EAASvJ,0BAGI,OAAd,OAAPuJ,QAAO,IAAPA,OAAA,EAAAA,EAAS3J,WACR2J,EAAQ3J,SAASY,OAAS,IACxB,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,wCAIJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,IACA,UAAAA,EAAQ3J,gBAAR,eAAkBY,QAAS,EACvB+I,EAAQ3J,SACR,GAENqM,WAAW,kBAME,OAAjB,OAAP1C,QAAO,IAAPA,OAAA,EAAAA,EAAS/J,cACR+J,EAAQ1J,cAAcW,OAAS,IAC7B,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,6CAGJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,IACA,UAAAA,EAAQ1J,qBAAR,eAAuBW,QAAS,EAC5B+I,EAAQ1J,cACR,GAENoM,WAAW,uBAMG,OAAlB,OAAP1C,QAAO,IAAPA,OAAA,EAAAA,EAAS9J,eACR8J,EAAQzJ,eAAeU,OAAS,IAC9B,UAAC,EAAAgK,SAAD,YACE,yBACE,yBACE,gDAGJ,yBACE,yBACE,SAACuB,EAAA,EAAD,CACEC,QACa,MAAXzC,IACA,UAAAA,EAAQzJ,sBAAR,eAAwBU,QAAS,EAC7B+I,EAAQzJ,eACR,GAENmM,WAAW","sources":["screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx","screens/Console/Tenants/TenantDetails/TenantLogging.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport KeyPairEdit from \"./KeyPairEdit\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../utils\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IEditTenantLogsProps {\n tenant: ITenant;\n classes: any;\n open: boolean;\n onClose: (shouldReload: boolean) => void;\n image: string;\n labels: IKeyValue[];\n annotations: IKeyValue[];\n nodeSelector: IKeyValue[];\n diskCapacityGB: number;\n serviceAccountName: string;\n dbImage: string;\n dbLabels: IKeyValue[];\n dbAnnotations: IKeyValue[];\n dbNodeSelector: IKeyValue[];\n dbServiceAccountName: string;\n cpuRequest: string;\n memRequest: string;\n dbCPURequest: string;\n dbMemRequest: string;\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 },\n ...modalBasic,\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst EditTenantLogsModal = ({\n tenant,\n classes,\n open,\n onClose,\n image,\n labels,\n annotations,\n nodeSelector,\n diskCapacityGB,\n serviceAccountName,\n dbLabels,\n dbAnnotations,\n dbNodeSelector,\n dbImage,\n dbServiceAccountName,\n cpuRequest,\n memRequest,\n dbCPURequest,\n dbMemRequest,\n}: IEditTenantLogsProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [newLabels, setNewLabels] = useState(\n labels.length > 0 ? [...labels] : [{ key: \"\", value: \"\" }]\n );\n const [newAnnotations, setNewAnnotations] = useState(\n annotations.length > 0 ? [...annotations] : [{ key: \"\", value: \"\" }]\n );\n const [newNodeSelector, setNewNodeSelector] = useState(\n nodeSelector.length > 0 ? [...nodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newImage, setNewImage] = useState(image);\n const [newDiskCapacityGB, setNewDiskCapacityGB] =\n useState(diskCapacityGB);\n const [newServiceAccountName, setNewServiceAccountName] = useState(\n serviceAccountName != null ? serviceAccountName : \"\"\n );\n const [newDbLabels, setNewDbLabels] = useState(\n dbLabels.length > 0 ? [...dbLabels] : [{ key: \"\", value: \"\" }]\n );\n const [newDbAnnotations, setNewDbAnnotations] = useState(\n dbAnnotations.length > 0 ? [...dbAnnotations] : [{ key: \"\", value: \"\" }]\n );\n const [newDbNodeSelector, setNewDbNodeSelector] = useState(\n dbNodeSelector.length > 0 ? [...dbNodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newDbImage, setNewDbImage] = useState(dbImage);\n const [newDbServiceAccountName, setNewDbServiceAccountName] =\n useState(dbServiceAccountName != null ? dbServiceAccountName : \"\");\n const [labelsError, setLabelsError] = useState({});\n const [annotationsError, setAnnotationsError] = useState({});\n const [nodeSelectorError, setNodeSelectorError] = useState({});\n const [dbLabelsError, setDbLabelsError] = useState({});\n const [dbAnnotationsError, setDbAnnotationsError] = useState({});\n const [dbNodeSelectorError, setDbNodeSelectorError] = useState({});\n const [newCPURequest, setNewCPURequest] = useState(cpuRequest);\n const [newMemRequest, setNewMemRequest] = useState(\n memRequest\n ? Math.floor(parseInt(memRequest, 10) / 1000000000).toString()\n : \"0\"\n );\n const [newDBCPURequest, setNewDBCPURequest] = useState(dbCPURequest);\n const [newDBMemRequest, setNewDBMemRequest] = useState(\n dbMemRequest\n ? Math.floor(parseInt(dbMemRequest, 10) / 1000000000).toString()\n : \"0\"\n );\n\n const trim = (x: IKeyValue[]): IKeyValue[] => {\n let retval: IKeyValue[] = [];\n for (let i = 0; i < x.length; i++) {\n if (x[i].key !== \"\") {\n retval.push(x[i]);\n }\n }\n return retval;\n };\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n useEffect(() => {\n let tenantLogValidation: IValidation[] = [];\n\n tenantLogValidation.push({\n fieldKey: `image`,\n required: false,\n value: newImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantLogValidation.push({\n fieldKey: `dbImage`,\n required: false,\n value: newDbImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantLogValidation.push({\n fieldKey: `diskCapacityGB`,\n required: true,\n value: newDiskCapacityGB as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantLogValidation.push({\n fieldKey: `serviceAccountName`,\n required: false,\n value: newServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantLogValidation.push({\n fieldKey: `dbServiceAccountName`,\n required: false,\n value: newDbServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantLogValidation.push({\n fieldKey: `cpuRequest`,\n required: true,\n value: newCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value for number of CPUs requested\",\n });\n tenantLogValidation.push({\n fieldKey: `memRequest`,\n required: true,\n value: newMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value (Gi) for memory requested\",\n });\n tenantLogValidation.push({\n fieldKey: `dbCPURequest`,\n required: true,\n value: newDBCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value for number of DB CPUs requested\",\n });\n tenantLogValidation.push({\n fieldKey: `dbMemRequest`,\n required: true,\n value: newDBMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value (Gi) for DB memory requested\",\n });\n\n const commonVal = commonFormValidation(tenantLogValidation);\n setValidationErrors(commonVal);\n }, [\n newImage,\n newDbImage,\n newDiskCapacityGB,\n newServiceAccountName,\n newDbServiceAccountName,\n newCPURequest,\n newMemRequest,\n newDBCPURequest,\n newDBMemRequest,\n setValidationErrors,\n ]);\n\n const checkValid = (): boolean => {\n if (\n Object.keys(validationErrors).length !== 0 ||\n Object.keys(labelsError).length !== 0 ||\n Object.keys(annotationsError).length !== 0 ||\n Object.keys(nodeSelectorError).length !== 0 ||\n Object.keys(dbLabelsError).length !== 0 ||\n Object.keys(dbAnnotationsError).length !== 0 ||\n Object.keys(dbNodeSelectorError).length !== 0\n ) {\n return false;\n } else {\n return true;\n }\n };\n\n return (\n onClose(true)}\n modalOpen={open}\n title=\"Edit Logging\"\n >\n ) => {\n e.preventDefault();\n if (!checkValid()) {\n setModalErrorSnackMessage({\n errorMessage: \"Some fields have invalid values\",\n detailedError: \"\",\n });\n } else {\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant.namespace}/tenants/${tenant.name}/log`,\n {\n labels: trim(newLabels),\n annotations: trim(newAnnotations),\n nodeSelector: trim(newNodeSelector),\n image: newImage,\n diskCapacityGB: newDiskCapacityGB,\n serviceAccountName: newServiceAccountName,\n dbLabels: trim(newDbLabels),\n dbAnnotations: trim(newDbAnnotations),\n dbNodeSelector: trim(newDbNodeSelector),\n dbImage: newDbImage,\n dbServiceAccountName: newDbServiceAccountName,\n logCPURequest: newCPURequest,\n logMemRequest: newMemRequest + \"Gi\",\n logDBCPURequest: newDBCPURequest,\n logDBMemRequest: newDBMemRequest + \"Gi\",\n }\n )\n .then(() => {\n onClose(true);\n })\n .catch((err: ErrorResponseHandler) => {});\n }\n }}\n >\n \n \n \n

    Logging API

    \n
    \n \n {\n setNewImage(e.target.value);\n cleanValidation(`image`);\n }}\n key={`image`}\n error={validationErrors[`image`] || \"\"}\n />\n \n \n {\n setNewDiskCapacityGB(e.target.value as any as number);\n cleanValidation(`diskCapacityGB`);\n }}\n key={`diskCapacityGB`}\n error={validationErrors[`diskCapacityGB`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n {\n setNewServiceAccountName(e.target.value);\n cleanValidation(`serviceAccountName`);\n }}\n key={`serviceAccountName`}\n error={validationErrors[`serviceAccountName`] || \"\"}\n />\n \n\n \n {\n setNewCPURequest(e.target.value as any as string);\n cleanValidation(`cpuRequest`);\n }}\n key={`cpuRequest`}\n error={validationErrors[`cpuRequest`] || \"\"}\n />\n \n \n {\n setNewMemRequest(e.target.value as any as string);\n cleanValidation(`memRequest`);\n }}\n key={`memRequest`}\n error={validationErrors[`memRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n\n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n \n

    Database Configuration

    \n
    \n \n {\n setNewDbImage(e.target.value);\n cleanValidation(`dbImage`);\n }}\n key={`dbImage`}\n error={validationErrors[`dbImage`] || \"\"}\n />\n \n \n {\n setNewDbServiceAccountName(e.target.value);\n cleanValidation(`dbServiceAccountName`);\n }}\n key={`dbServiceAccountName`}\n error={validationErrors[`dbServiceAccountName`] || \"\"}\n />\n \n \n {\n setNewDBCPURequest(e.target.value as any as string);\n cleanValidation(`dbCpuRequest`);\n }}\n key={`dbCpuRequest`}\n error={validationErrors[`dbCpuRequest`] || \"\"}\n />\n \n \n {\n setNewDBMemRequest(e.target.value as any as string);\n cleanValidation(`dbMemRequest`);\n }}\n key={`dbMemRequest`}\n error={validationErrors[`dbMemRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n
    \n \n \n Save\n \n \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(EditTenantLogsModal);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { DialogContentText } from \"@mui/material\";\nimport Paper from \"@mui/material/Paper\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { EditIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport EditTenantLogsModal from \"./EditTenantLogsModal\";\nimport KeyPairView from \"./KeyPairView\";\nimport { ITenantLogsStruct } from \"../ListTenants/types\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantLogs {\n classes: any;\n match: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n headerLabel: {\n fontSize: 22,\n fontWeight: 600,\n color: \"#000\",\n marginTop: 4,\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n tableWrapper: {\n height: \"calc(100vh - 267px)\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantLogging = ({\n classes,\n match,\n tenant,\n loadingTenant,\n}: ITenantLogs) => {\n const [loadingTenantLogs, setLoadingTenantLogs] = useState(true);\n const [logInfo, setLogInfo] = useState();\n const [edit, setEdit] = useState(false);\n const [disabled, setDisabled] = useState(false);\n const [preDisabled, setPreDisabled] = useState(false);\n const [disableDialogOpen, setDisableDialogOpen] = useState(false);\n const [enableDialogOpen, setEnableDialogOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loadingTenantLogs) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/log`\n )\n .then((result: ITenantLogsStruct) => {\n setLogInfo(result);\n setPreDisabled(result.disabled);\n setDisabled(result.disabled);\n setLoadingTenantLogs(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error getting tenant logs\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [tenantName, tenantNamespace, loadingTenantLogs, setDisabled, disabled]);\n\n const onCloseEditAndRefresh = () => {\n setDisableDialogOpen(false);\n setEdit(false);\n setLoadingTenantLogs(true);\n };\n\n const onCloseEnableAndRefresh = () => {\n setEnableDialogOpen(false);\n setDisabled(false);\n setLoadingTenantLogs(true);\n };\n\n return (\n \n {\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/disable-logging`\n )\n .then(() => {\n setPreDisabled(true);\n setDisabled(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error disabling logging\",\n detailedError: err.detailedError,\n });\n });\n onCloseEditAndRefresh();\n }}\n onClose={() => setDisableDialogOpen(false)}\n confirmationContent={\n \n Disabling logging will erase any custom values you have used to\n configure logging\n \n }\n />\n {\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/enable-logging`\n )\n .then(() => {\n setPreDisabled(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error enabling logging\",\n detailedError: err.detailedError,\n });\n });\n onCloseEnableAndRefresh();\n }}\n onClose={() => setEnableDialogOpen(false)}\n confirmationContent={\n \n Logging will be enabled with default values\n \n }\n />\n {edit && tenant !== null && logInfo != null && !disabled && (\n \n )}\n

    Logging

    \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n if (checked) {\n setEnableDialogOpen(true);\n } else {\n setDisableDialogOpen(true);\n }\n }}\n label={\"Logging\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n {!disabled && !loadingTenantLogs && (\n {\n setEdit(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n )}\n
    \n {!disabled && !loadingTenantLogs && (\n \n \n \n

    Logging API Service Details

    \n
    \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {logInfo?.logCPURequest != null && (\n \n \n \n \n )}\n {logInfo?.logMemRequest != null && (\n \n \n \n \n )}\n {logInfo?.image != null && (\n \n \n \n \n )}\n {logInfo?.diskCapacityGB != null && (\n \n \n \n \n )}\n {logInfo?.serviceAccountName != null && (\n \n \n \n \n )}\n {logInfo?.labels != null && logInfo.labels.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.annotations != null &&\n logInfo.annotations.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.nodeSelector != null &&\n logInfo.nodeSelector.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n \n )}\n \n
    \n \n
    CPU Request:{logInfo?.logCPURequest}
    Memory Request:{niceBytes(logInfo?.logMemRequest, true)}
    Image:{logInfo?.image}
    \n Disk Capacity (GB):\n {logInfo?.diskCapacityGB}
    Service Account:{logInfo?.serviceAccountName}
    \n

    Labels

    \n
    \n 0\n ? logInfo.labels\n : []\n }\n recordName=\"Labels\"\n />\n
    \n

    Annotations

    \n
    \n 0\n ? logInfo.annotations\n : []\n }\n recordName=\"Annotations\"\n />\n
    \n

    Node Selector

    \n
    \n 0\n ? logInfo.nodeSelector\n : []\n }\n recordName=\"Node Selector\"\n />\n
    \n\n

    Database Details

    \n
    \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {logInfo?.logDBCPURequest != null && (\n \n \n \n \n )}\n {logInfo?.logDBMemRequest != null && (\n \n \n \n \n )}\n {logInfo?.dbImage != null && (\n \n \n \n \n )}\n {logInfo?.dbServiceAccountName != null && (\n \n \n \n \n )}\n {logInfo?.dbLabels != null &&\n logInfo.dbLabels.length > 0 && (\n \n \n \n \n\n \n \n \n \n )}\n {logInfo?.annotations != null &&\n logInfo.dbAnnotations.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.nodeSelector != null &&\n logInfo.dbNodeSelector.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n \n )}\n \n
    \n \n
    DB CPU Request:{logInfo?.logDBCPURequest}
    \n DB Memory Request:\n {niceBytes(logInfo?.logDBMemRequest, true)}
    Postgres Image:{logInfo?.dbImage}
    Service Account:{logInfo?.dbServiceAccountName}
    \n

    Labels

    \n
    \n 0\n ? logInfo.dbLabels\n : []\n }\n recordName=\"labels\"\n />\n
    \n

    Annotations

    \n
    \n 0\n ? logInfo.dbAnnotations\n : []\n }\n recordName=\"annotations\"\n />\n
    \n

    Node Selector

    \n
    \n 0\n ? logInfo.dbNodeSelector\n : []\n }\n recordName=\"node selectors\"\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, null);\n\nexport default withStyles(styles)(connector(TenantLogging));\n"],"names":["withStyles","theme","createStyles","buttonContainer","textAlign","multiContainer","display","alignItems","justifyContent","sizeFactorContainer","marginLeft","bottomContainer","flexGrow","width","factorElements","sizeNumber","fontSize","fontWeight","sizeDescription","color","shortened","gridTemplateColumns","gridGap","modalBasic","modalStyleUtils","formFieldStyles","tenant","classes","open","onClose","image","labels","annotations","nodeSelector","diskCapacityGB","serviceAccountName","dbLabels","dbAnnotations","dbNodeSelector","dbImage","dbServiceAccountName","cpuRequest","memRequest","dbCPURequest","dbMemRequest","useState","validationErrors","setValidationErrors","length","key","value","newLabels","setNewLabels","newAnnotations","setNewAnnotations","newNodeSelector","setNewNodeSelector","newImage","setNewImage","newDiskCapacityGB","setNewDiskCapacityGB","newServiceAccountName","setNewServiceAccountName","newDbLabels","setNewDbLabels","newDbAnnotations","setNewDbAnnotations","newDbNodeSelector","setNewDbNodeSelector","newDbImage","setNewDbImage","newDbServiceAccountName","setNewDbServiceAccountName","labelsError","setLabelsError","annotationsError","setAnnotationsError","nodeSelectorError","setNodeSelectorError","dbLabelsError","setDbLabelsError","dbAnnotationsError","setDbAnnotationsError","dbNodeSelectorError","setDbNodeSelectorError","newCPURequest","setNewCPURequest","Math","floor","parseInt","toString","newMemRequest","setNewMemRequest","newDBCPURequest","setNewDBCPURequest","newDBMemRequest","setNewDBMemRequest","trim","x","retval","i","push","cleanValidation","fieldName","clearValidationError","useEffect","tenantLogValidation","fieldKey","required","pattern","customPatternMessage","commonVal","commonFormValidation","checkValid","Object","keys","ModalWrapper","modalOpen","title","noValidate","autoComplete","onSubmit","e","preventDefault","api","namespace","name","logCPURequest","logMemRequest","logDBCPURequest","logDBMemRequest","then","catch","err","setModalErrorSnackMessage","errorMessage","detailedError","Grid","container","xs","className","modalFormScrollable","item","formFieldRow","InputBoxWrapper","id","label","placeholder","onChange","target","error","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","inputLabel","KeyPairEdit","newValues","setNewValues","paramName","setError","Button","type","variant","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenantInfo","tenantDetailsStyles","headerLabel","marginTop","breadcrumLink","textDecoration","tableWrapper","height","paperContainer","padding","actionsTray","searchField","containerForHeader","spacing","match","loadingTenantLogs","setLoadingTenantLogs","logInfo","setLogInfo","edit","setEdit","setDisabled","preDisabled","setPreDisabled","disableDialogOpen","setDisableDialogOpen","enableDialogOpen","setEnableDialogOpen","tenantName","params","tenantNamespace","result","setErrorSnackMessage","onCloseEditAndRefresh","Fragment","ConfirmDialog","confirmText","isOpen","onConfirm","confirmationContent","DialogContentText","sectionTitle","FormSwitchWrapper","checked","indicatorLabels","RBIconButton","tooltip","text","onClick","icon","Paper","hrClass","centerAlign","colSpan","Loader","titleCol","niceBytes","KeyPairView","records","recordName"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9605.fd87a53e.chunk.js b/portal-ui/build/static/js/9605.fd87a53e.chunk.js new file mode 100644 index 000000000..37b0ae119 --- /dev/null +++ b/portal-ui/build/static/js/9605.fd87a53e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9605],{69605:function(e,t,n){n.r(t),n.d(t,{default:function(){return L}});var a=n(29439),s=n(1413),l=n(72791),i=n(60364),r=n(11135),o=n(25787),c=n(23814),d=n(61889),u=n(51691),m=n(10703),h=n(81207),g=n(93656),x=n(42649),j=n(93433),b=n(56028),v=n(36151),Z=n(32509),p=n(21435),f=n(40968),N=n(84741),C=n(56578),S=n(80184),R=(0,o.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.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}},c.oO),c.ID),c.DF))}))((function(e){var t=e.tenant,n=e.classes,s=e.open,i=e.onClose,r=e.image,o=e.labels,c=e.annotations,u=e.nodeSelector,m=e.diskCapacityGB,g=e.serviceAccountName,R=e.dbLabels,q=e.dbAnnotations,A=e.dbNodeSelector,P=e.dbImage,y=e.dbServiceAccountName,k=e.cpuRequest,w=e.memRequest,D=e.dbCPURequest,L=e.dbMemRequest,M=(0,l.useState)({}),I=(0,a.Z)(M,2),B=I[0],G=I[1],z=(0,l.useState)(o.length>0?(0,j.Z)(o):[{key:"",value:""}]),F=(0,a.Z)(z,2),E=F[0],U=F[1],O=(0,l.useState)(c.length>0?(0,j.Z)(c):[{key:"",value:""}]),T=(0,a.Z)(O,2),V=T[0],$=T[1],K=(0,l.useState)(u.length>0?(0,j.Z)(u):[{key:"",value:""}]),_=(0,a.Z)(K,2),W=_[0],Y=_[1],H=(0,l.useState)(r),J=(0,a.Z)(H,2),Q=J[0],X=J[1],ee=(0,l.useState)(m),te=(0,a.Z)(ee,2),ne=te[0],ae=te[1],se=(0,l.useState)(null!=g?g:""),le=(0,a.Z)(se,2),ie=le[0],re=le[1],oe=(0,l.useState)(R.length>0?(0,j.Z)(R):[{key:"",value:""}]),ce=(0,a.Z)(oe,2),de=ce[0],ue=ce[1],me=(0,l.useState)(q.length>0?(0,j.Z)(q):[{key:"",value:""}]),he=(0,a.Z)(me,2),ge=he[0],xe=he[1],je=(0,l.useState)(A.length>0?(0,j.Z)(A):[{key:"",value:""}]),be=(0,a.Z)(je,2),ve=be[0],Ze=be[1],pe=(0,l.useState)(P),fe=(0,a.Z)(pe,2),Ne=fe[0],Ce=fe[1],Se=(0,l.useState)(null!=y?y:""),Re=(0,a.Z)(Se,2),qe=Re[0],Ae=Re[1],Pe=(0,l.useState)({}),ye=(0,a.Z)(Pe,2),ke=ye[0],we=ye[1],De=(0,l.useState)({}),Le=(0,a.Z)(De,2),Me=Le[0],Ie=Le[1],Be=(0,l.useState)({}),Ge=(0,a.Z)(Be,2),ze=Ge[0],Fe=Ge[1],Ee=(0,l.useState)({}),Ue=(0,a.Z)(Ee,2),Oe=Ue[0],Te=Ue[1],Ve=(0,l.useState)({}),$e=(0,a.Z)(Ve,2),Ke=$e[0],_e=$e[1],We=(0,l.useState)({}),Ye=(0,a.Z)(We,2),He=Ye[0],Je=Ye[1],Qe=(0,l.useState)(k),Xe=(0,a.Z)(Qe,2),et=Xe[0],tt=Xe[1],nt=(0,l.useState)(w?Math.floor(parseInt(w,10)/1e9).toString():"0"),at=(0,a.Z)(nt,2),st=at[0],lt=at[1],it=(0,l.useState)(D),rt=(0,a.Z)(it,2),ot=rt[0],ct=rt[1],dt=(0,l.useState)(L?Math.floor(parseInt(L,10)/1e9).toString():"0"),ut=(0,a.Z)(dt,2),mt=ut[0],ht=ut[1],gt=function(e){for(var t=[],n=0;n0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Labels"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.labels.length>0?N.labels:[],recordName:"Labels"})})})]}),null!=(null===N||void 0===N?void 0:N.annotations)&&N.annotations.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Annotations"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.annotations.length>0?N.annotations:[],recordName:"Annotations"})})})]}),null!=(null===N||void 0===N?void 0:N.nodeSelector)&&N.nodeSelector.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Node Selector"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&N.nodeSelector.length>0?N.nodeSelector:[],recordName:"Node Selector"})})})]})]})})}),(0,S.jsx)("h2",{children:"Database Details"}),(0,S.jsx)("hr",{className:i.hrClass}),(0,S.jsx)("table",{width:"100%",children:(0,S.jsx)("tbody",{children:c?(0,S.jsx)("tr",{children:(0,S.jsx)("td",{className:i.centerAlign,colSpan:4,children:(0,S.jsx)(w.Z,{})})}):(0,S.jsxs)(l.Fragment,{children:[null!=(null===N||void 0===N?void 0:N.logDBCPURequest)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"DB CPU Request:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.logDBCPURequest})]}),null!=(null===N||void 0===N?void 0:N.logDBMemRequest)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"DB Memory Request:"}),(0,S.jsx)("td",{children:(0,k.ae)(null===N||void 0===N?void 0:N.logDBMemRequest,!0)})]}),null!=(null===N||void 0===N?void 0:N.dbImage)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"Postgres Image:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.dbImage})]}),null!=(null===N||void 0===N?void 0:N.dbServiceAccountName)&&(0,S.jsxs)("tr",{children:[(0,S.jsx)("td",{className:i.titleCol,children:"Service Account:"}),(0,S.jsx)("td",{children:null===N||void 0===N?void 0:N.dbServiceAccountName})]}),null!=(null===N||void 0===N?void 0:N.dbLabels)&&N.dbLabels.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Labels"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(t=N.dbLabels)||void 0===t?void 0:t.length)>0?N.dbLabels:[],recordName:"labels"})})})]}),null!=(null===N||void 0===N?void 0:N.annotations)&&N.dbAnnotations.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Annotations"})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(n=N.dbAnnotations)||void 0===n?void 0:n.length)>0?N.dbAnnotations:[],recordName:"annotations"})})})]}),null!=(null===N||void 0===N?void 0:N.nodeSelector)&&N.dbNodeSelector.length>0&&(0,S.jsxs)(l.Fragment,{children:[(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)("h4",{children:"Node Selector "})})}),(0,S.jsx)("tr",{children:(0,S.jsx)("td",{children:(0,S.jsx)(q.Z,{records:null!=N&&(null===(s=N.dbNodeSelector)||void 0===s?void 0:s.length)>0?N.dbNodeSelector:[],recordName:"node selectors"})})})]})]})})})]})]})})]})})))}}]); +//# sourceMappingURL=9605.fd87a53e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9605.fd87a53e.chunk.js.map b/portal-ui/build/static/js/9605.fd87a53e.chunk.js.map new file mode 100644 index 000000000..817052b5f --- /dev/null +++ b/portal-ui/build/static/js/9605.fd87a53e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9605.fd87a53e.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx","screens/Console/Tenants/TenantDetails/TenantLogging.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport KeyPairEdit from \"./KeyPairEdit\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../utils\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IEditTenantLogsProps {\n tenant: ITenant;\n classes: any;\n open: boolean;\n onClose: (shouldReload: boolean) => void;\n image: string;\n labels: IKeyValue[];\n annotations: IKeyValue[];\n nodeSelector: IKeyValue[];\n diskCapacityGB: number;\n serviceAccountName: string;\n dbImage: string;\n dbLabels: IKeyValue[];\n dbAnnotations: IKeyValue[];\n dbNodeSelector: IKeyValue[];\n dbServiceAccountName: string;\n cpuRequest: string;\n memRequest: string;\n dbCPURequest: string;\n dbMemRequest: string;\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 },\n ...modalBasic,\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst EditTenantLogsModal = ({\n tenant,\n classes,\n open,\n onClose,\n image,\n labels,\n annotations,\n nodeSelector,\n diskCapacityGB,\n serviceAccountName,\n dbLabels,\n dbAnnotations,\n dbNodeSelector,\n dbImage,\n dbServiceAccountName,\n cpuRequest,\n memRequest,\n dbCPURequest,\n dbMemRequest,\n}: IEditTenantLogsProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [newLabels, setNewLabels] = useState(\n labels.length > 0 ? [...labels] : [{ key: \"\", value: \"\" }]\n );\n const [newAnnotations, setNewAnnotations] = useState(\n annotations.length > 0 ? [...annotations] : [{ key: \"\", value: \"\" }]\n );\n const [newNodeSelector, setNewNodeSelector] = useState(\n nodeSelector.length > 0 ? [...nodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newImage, setNewImage] = useState(image);\n const [newDiskCapacityGB, setNewDiskCapacityGB] =\n useState(diskCapacityGB);\n const [newServiceAccountName, setNewServiceAccountName] = useState(\n serviceAccountName != null ? serviceAccountName : \"\"\n );\n const [newDbLabels, setNewDbLabels] = useState(\n dbLabels.length > 0 ? [...dbLabels] : [{ key: \"\", value: \"\" }]\n );\n const [newDbAnnotations, setNewDbAnnotations] = useState(\n dbAnnotations.length > 0 ? [...dbAnnotations] : [{ key: \"\", value: \"\" }]\n );\n const [newDbNodeSelector, setNewDbNodeSelector] = useState(\n dbNodeSelector.length > 0 ? [...dbNodeSelector] : [{ key: \"\", value: \"\" }]\n );\n const [newDbImage, setNewDbImage] = useState(dbImage);\n const [newDbServiceAccountName, setNewDbServiceAccountName] =\n useState(dbServiceAccountName != null ? dbServiceAccountName : \"\");\n const [labelsError, setLabelsError] = useState({});\n const [annotationsError, setAnnotationsError] = useState({});\n const [nodeSelectorError, setNodeSelectorError] = useState({});\n const [dbLabelsError, setDbLabelsError] = useState({});\n const [dbAnnotationsError, setDbAnnotationsError] = useState({});\n const [dbNodeSelectorError, setDbNodeSelectorError] = useState({});\n const [newCPURequest, setNewCPURequest] = useState(cpuRequest);\n const [newMemRequest, setNewMemRequest] = useState(\n memRequest\n ? Math.floor(parseInt(memRequest, 10) / 1000000000).toString()\n : \"0\"\n );\n const [newDBCPURequest, setNewDBCPURequest] = useState(dbCPURequest);\n const [newDBMemRequest, setNewDBMemRequest] = useState(\n dbMemRequest\n ? Math.floor(parseInt(dbMemRequest, 10) / 1000000000).toString()\n : \"0\"\n );\n\n const trim = (x: IKeyValue[]): IKeyValue[] => {\n let retval: IKeyValue[] = [];\n for (let i = 0; i < x.length; i++) {\n if (x[i].key !== \"\") {\n retval.push(x[i]);\n }\n }\n return retval;\n };\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n useEffect(() => {\n let tenantLogValidation: IValidation[] = [];\n\n tenantLogValidation.push({\n fieldKey: `image`,\n required: false,\n value: newImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantLogValidation.push({\n fieldKey: `dbImage`,\n required: false,\n value: newDbImage,\n pattern:\n /^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,\n customPatternMessage: \"Invalid image\",\n });\n tenantLogValidation.push({\n fieldKey: `diskCapacityGB`,\n required: true,\n value: newDiskCapacityGB as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage: \"Must be an integer between 0 and 10\",\n });\n tenantLogValidation.push({\n fieldKey: `serviceAccountName`,\n required: false,\n value: newServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantLogValidation.push({\n fieldKey: `dbServiceAccountName`,\n required: false,\n value: newDbServiceAccountName,\n pattern: /^[a-zA-Z0-9-.]{1,253}$/,\n customPatternMessage: \"Invalid service account name\",\n });\n tenantLogValidation.push({\n fieldKey: `cpuRequest`,\n required: true,\n value: newCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value for number of CPUs requested\",\n });\n tenantLogValidation.push({\n fieldKey: `memRequest`,\n required: true,\n value: newMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value (Gi) for memory requested\",\n });\n tenantLogValidation.push({\n fieldKey: `dbCPURequest`,\n required: true,\n value: newDBCPURequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value for number of DB CPUs requested\",\n });\n tenantLogValidation.push({\n fieldKey: `dbMemRequest`,\n required: true,\n value: newDBMemRequest as any as string,\n pattern: /^[0-9]*$/,\n customPatternMessage:\n \"Please enter an integer value (Gi) for DB memory requested\",\n });\n\n const commonVal = commonFormValidation(tenantLogValidation);\n setValidationErrors(commonVal);\n }, [\n newImage,\n newDbImage,\n newDiskCapacityGB,\n newServiceAccountName,\n newDbServiceAccountName,\n newCPURequest,\n newMemRequest,\n newDBCPURequest,\n newDBMemRequest,\n setValidationErrors,\n ]);\n\n const checkValid = (): boolean => {\n if (\n Object.keys(validationErrors).length !== 0 ||\n Object.keys(labelsError).length !== 0 ||\n Object.keys(annotationsError).length !== 0 ||\n Object.keys(nodeSelectorError).length !== 0 ||\n Object.keys(dbLabelsError).length !== 0 ||\n Object.keys(dbAnnotationsError).length !== 0 ||\n Object.keys(dbNodeSelectorError).length !== 0\n ) {\n return false;\n } else {\n return true;\n }\n };\n\n return (\n onClose(true)}\n modalOpen={open}\n title=\"Edit Logging\"\n >\n ) => {\n e.preventDefault();\n if (!checkValid()) {\n setModalErrorSnackMessage({\n errorMessage: \"Some fields have invalid values\",\n detailedError: \"\",\n });\n } else {\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant.namespace}/tenants/${tenant.name}/log`,\n {\n labels: trim(newLabels),\n annotations: trim(newAnnotations),\n nodeSelector: trim(newNodeSelector),\n image: newImage,\n diskCapacityGB: newDiskCapacityGB,\n serviceAccountName: newServiceAccountName,\n dbLabels: trim(newDbLabels),\n dbAnnotations: trim(newDbAnnotations),\n dbNodeSelector: trim(newDbNodeSelector),\n dbImage: newDbImage,\n dbServiceAccountName: newDbServiceAccountName,\n logCPURequest: newCPURequest,\n logMemRequest: newMemRequest + \"Gi\",\n logDBCPURequest: newDBCPURequest,\n logDBMemRequest: newDBMemRequest + \"Gi\",\n }\n )\n .then(() => {\n onClose(true);\n })\n .catch((err: ErrorResponseHandler) => {});\n }\n }}\n >\n \n \n \n

    Logging API

    \n
    \n \n {\n setNewImage(e.target.value);\n cleanValidation(`image`);\n }}\n key={`image`}\n error={validationErrors[`image`] || \"\"}\n />\n \n \n {\n setNewDiskCapacityGB(e.target.value as any as number);\n cleanValidation(`diskCapacityGB`);\n }}\n key={`diskCapacityGB`}\n error={validationErrors[`diskCapacityGB`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n {\n setNewServiceAccountName(e.target.value);\n cleanValidation(`serviceAccountName`);\n }}\n key={`serviceAccountName`}\n error={validationErrors[`serviceAccountName`] || \"\"}\n />\n \n\n \n {\n setNewCPURequest(e.target.value as any as string);\n cleanValidation(`cpuRequest`);\n }}\n key={`cpuRequest`}\n error={validationErrors[`cpuRequest`] || \"\"}\n />\n \n \n {\n setNewMemRequest(e.target.value as any as string);\n cleanValidation(`memRequest`);\n }}\n key={`memRequest`}\n error={validationErrors[`memRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n\n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n \n

    Database Configuration

    \n
    \n \n {\n setNewDbImage(e.target.value);\n cleanValidation(`dbImage`);\n }}\n key={`dbImage`}\n error={validationErrors[`dbImage`] || \"\"}\n />\n \n \n {\n setNewDbServiceAccountName(e.target.value);\n cleanValidation(`dbServiceAccountName`);\n }}\n key={`dbServiceAccountName`}\n error={validationErrors[`dbServiceAccountName`] || \"\"}\n />\n \n \n {\n setNewDBCPURequest(e.target.value as any as string);\n cleanValidation(`dbCpuRequest`);\n }}\n key={`dbCpuRequest`}\n error={validationErrors[`dbCpuRequest`] || \"\"}\n />\n \n \n {\n setNewDBMemRequest(e.target.value as any as string);\n cleanValidation(`dbMemRequest`);\n }}\n key={`dbMemRequest`}\n error={validationErrors[`dbMemRequest`] || \"\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n Labels\n \n \n \n Annotations\n \n \n \n Node Selector\n \n \n
    \n \n \n Save\n \n \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(EditTenantLogsModal);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { DialogContentText } from \"@mui/material\";\nimport Paper from \"@mui/material/Paper\";\nimport api from \"../../../../common/api\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { EditIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport EditTenantLogsModal from \"./EditTenantLogsModal\";\nimport KeyPairView from \"./KeyPairView\";\nimport { ITenantLogsStruct } from \"../ListTenants/types\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport Loader from \"../../Common/Loader/Loader\";\n\ninterface ITenantLogs {\n classes: any;\n match: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n headerLabel: {\n fontSize: 22,\n fontWeight: 600,\n color: \"#000\",\n marginTop: 4,\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n tableWrapper: {\n height: \"calc(100vh - 267px)\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst TenantLogging = ({\n classes,\n match,\n tenant,\n loadingTenant,\n}: ITenantLogs) => {\n const [loadingTenantLogs, setLoadingTenantLogs] = useState(true);\n const [logInfo, setLogInfo] = useState();\n const [edit, setEdit] = useState(false);\n const [disabled, setDisabled] = useState(false);\n const [preDisabled, setPreDisabled] = useState(false);\n const [disableDialogOpen, setDisableDialogOpen] = useState(false);\n const [enableDialogOpen, setEnableDialogOpen] = useState(false);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n useEffect(() => {\n if (loadingTenantLogs) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/log`\n )\n .then((result: ITenantLogsStruct) => {\n setLogInfo(result);\n setPreDisabled(result.disabled);\n setDisabled(result.disabled);\n setLoadingTenantLogs(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error getting tenant logs\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [tenantName, tenantNamespace, loadingTenantLogs, setDisabled, disabled]);\n\n const onCloseEditAndRefresh = () => {\n setDisableDialogOpen(false);\n setEdit(false);\n setLoadingTenantLogs(true);\n };\n\n const onCloseEnableAndRefresh = () => {\n setEnableDialogOpen(false);\n setDisabled(false);\n setLoadingTenantLogs(true);\n };\n\n return (\n \n {\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/disable-logging`\n )\n .then(() => {\n setPreDisabled(true);\n setDisabled(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error disabling logging\",\n detailedError: err.detailedError,\n });\n });\n onCloseEditAndRefresh();\n }}\n onClose={() => setDisableDialogOpen(false)}\n confirmationContent={\n \n Disabling logging will erase any custom values you have used to\n configure logging\n \n }\n />\n {\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/enable-logging`\n )\n .then(() => {\n setPreDisabled(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error enabling logging\",\n detailedError: err.detailedError,\n });\n });\n onCloseEnableAndRefresh();\n }}\n onClose={() => setEnableDialogOpen(false)}\n confirmationContent={\n \n Logging will be enabled with default values\n \n }\n />\n {edit && tenant !== null && logInfo != null && !disabled && (\n \n )}\n \n \n

    Logging

    \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n if (checked) {\n setEnableDialogOpen(true);\n } else {\n setDisableDialogOpen(true);\n }\n }}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n \n
    \n {!disabled && !loadingTenantLogs && (\n \n \n \n \n \n

    Configuration

    \n
    \n \n {\n setEdit(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n
    \n
    \n \n
    \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {logInfo?.logCPURequest != null && (\n \n \n \n \n )}\n {logInfo?.logMemRequest != null && (\n \n \n \n \n )}\n {logInfo?.image != null && (\n \n \n \n \n )}\n {logInfo?.diskCapacityGB != null && (\n \n \n \n \n )}\n {logInfo?.serviceAccountName != null && (\n \n \n \n \n )}\n {logInfo?.labels != null && logInfo.labels.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.annotations != null &&\n logInfo.annotations.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.nodeSelector != null &&\n logInfo.nodeSelector.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n \n )}\n \n
    \n \n
    CPU Request:{logInfo?.logCPURequest}
    Memory Request:{niceBytes(logInfo?.logMemRequest, true)}
    Image:{logInfo?.image}
    \n Disk Capacity (GB):\n {logInfo?.diskCapacityGB}
    Service Account:{logInfo?.serviceAccountName}
    \n

    Labels

    \n
    \n 0\n ? logInfo.labels\n : []\n }\n recordName=\"Labels\"\n />\n
    \n

    Annotations

    \n
    \n 0\n ? logInfo.annotations\n : []\n }\n recordName=\"Annotations\"\n />\n
    \n

    Node Selector

    \n
    \n 0\n ? logInfo.nodeSelector\n : []\n }\n recordName=\"Node Selector\"\n />\n
    \n\n

    Database Details

    \n
    \n \n \n {loadingTenant ? (\n \n \n \n ) : (\n \n {logInfo?.logDBCPURequest != null && (\n \n \n \n \n )}\n {logInfo?.logDBMemRequest != null && (\n \n \n \n \n )}\n {logInfo?.dbImage != null && (\n \n \n \n \n )}\n {logInfo?.dbServiceAccountName != null && (\n \n \n \n \n )}\n {logInfo?.dbLabels != null &&\n logInfo.dbLabels.length > 0 && (\n \n \n \n \n\n \n \n \n \n )}\n {logInfo?.annotations != null &&\n logInfo.dbAnnotations.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n {logInfo?.nodeSelector != null &&\n logInfo.dbNodeSelector.length > 0 && (\n \n \n \n \n \n \n \n \n )}\n \n )}\n \n
    \n \n
    DB CPU Request:{logInfo?.logDBCPURequest}
    \n DB Memory Request:\n {niceBytes(logInfo?.logDBMemRequest, true)}
    Postgres Image:{logInfo?.dbImage}
    Service Account:{logInfo?.dbServiceAccountName}
    \n

    Labels

    \n
    \n 0\n ? logInfo.dbLabels\n : []\n }\n recordName=\"labels\"\n />\n
    \n

    Annotations

    \n
    \n 0\n ? logInfo.dbAnnotations\n : []\n }\n recordName=\"annotations\"\n />\n
    \n

    Node Selector

    \n
    \n 0\n ? logInfo.dbNodeSelector\n : []\n }\n recordName=\"node selectors\"\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, null);\n\nexport default withStyles(styles)(connector(TenantLogging));\n"],"names":["withStyles","theme","createStyles","buttonContainer","textAlign","multiContainer","display","alignItems","justifyContent","sizeFactorContainer","marginLeft","bottomContainer","flexGrow","width","factorElements","sizeNumber","fontSize","fontWeight","sizeDescription","color","shortened","gridTemplateColumns","gridGap","modalBasic","modalStyleUtils","formFieldStyles","tenant","classes","open","onClose","image","labels","annotations","nodeSelector","diskCapacityGB","serviceAccountName","dbLabels","dbAnnotations","dbNodeSelector","dbImage","dbServiceAccountName","cpuRequest","memRequest","dbCPURequest","dbMemRequest","useState","validationErrors","setValidationErrors","length","key","value","newLabels","setNewLabels","newAnnotations","setNewAnnotations","newNodeSelector","setNewNodeSelector","newImage","setNewImage","newDiskCapacityGB","setNewDiskCapacityGB","newServiceAccountName","setNewServiceAccountName","newDbLabels","setNewDbLabels","newDbAnnotations","setNewDbAnnotations","newDbNodeSelector","setNewDbNodeSelector","newDbImage","setNewDbImage","newDbServiceAccountName","setNewDbServiceAccountName","labelsError","setLabelsError","annotationsError","setAnnotationsError","nodeSelectorError","setNodeSelectorError","dbLabelsError","setDbLabelsError","dbAnnotationsError","setDbAnnotationsError","dbNodeSelectorError","setDbNodeSelectorError","newCPURequest","setNewCPURequest","Math","floor","parseInt","toString","newMemRequest","setNewMemRequest","newDBCPURequest","setNewDBCPURequest","newDBMemRequest","setNewDBMemRequest","trim","x","retval","i","push","cleanValidation","fieldName","clearValidationError","useEffect","tenantLogValidation","fieldKey","required","pattern","customPatternMessage","commonVal","commonFormValidation","checkValid","Object","keys","ModalWrapper","modalOpen","title","noValidate","autoComplete","onSubmit","e","preventDefault","api","namespace","name","logCPURequest","logMemRequest","logDBCPURequest","logDBMemRequest","then","catch","err","setModalErrorSnackMessage","errorMessage","detailedError","Grid","container","xs","className","modalFormScrollable","item","formFieldRow","InputBoxWrapper","id","label","placeholder","onChange","target","error","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","inputLabel","KeyPairEdit","newValues","setNewValues","paramName","setError","Button","type","variant","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenantInfo","tenantDetailsStyles","headerLabel","marginTop","breadcrumLink","textDecoration","tableWrapper","height","paperContainer","padding","actionsTray","searchField","containerForHeader","spacing","match","loadingTenantLogs","setLoadingTenantLogs","logInfo","setLogInfo","edit","setEdit","setDisabled","preDisabled","setPreDisabled","disableDialogOpen","setDisableDialogOpen","enableDialogOpen","setEnableDialogOpen","tenantName","params","tenantNamespace","result","setErrorSnackMessage","onCloseEditAndRefresh","Fragment","ConfirmDialog","confirmText","isOpen","onConfirm","confirmationContent","DialogContentText","sectionTitle","FormSwitchWrapper","checked","indicatorLabels","Paper","RBIconButton","tooltip","text","onClick","icon","hrClass","centerAlign","colSpan","Loader","titleCol","niceBytes","KeyPairView","records","recordName"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9611.30185102.chunk.js b/portal-ui/build/static/js/9611.30185102.chunk.js deleted file mode 100644 index 54025c0ee..000000000 --- a/portal-ui/build/static/js/9611.30185102.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9611],{23804:function(e,n,t){t(72791);var i=t(11135),s=t(25787),r=t(61889),a=t(80184);n.Z=(0,s.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,s=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:s})]})})}))},60937:function(e,n,t){t.d(n,{Z:function(){return m}});var i=t(32291),s=t(72791),r=t(61889),a=t(64554),o=t(23804),l=t(80184),c=function(e){var n=e.iconComponent,t=void 0===n?null:n,i=e.title,s=void 0===i?"":i,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)(o.Z,{title:s,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),m=function(e){var n=e.pageHeaderText,t=void 0===n?"":n,r=e.icon,a=void 0===r?null:r,o=e.title,m=void 0===o?"":o,x=e.message,u=void 0===x?null:x;return(0,l.jsxs)(s.Fragment,{children:[(0,l.jsx)(i.Z,{label:t}),(0,l.jsx)(d.Z,{children:(0,l.jsx)(c,{iconComponent:a,title:m,message:u})})]})}},74794:function(e,n,t){var i=t(1413),s=(t(72791),t(61889)),r=t(11135),a=t(25787),o=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)((0,i.Z)({},o.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)(s.ZP,{container:!0,children:(0,l.jsx)(s.ZP,{item:!0,xs:12,className:i,children:r})})})}))},32291:function(e,n,t){var i=t(72791),s=t(60364),r=t(61889),a=t(11135),o=t(25787),l=t(20890),c=t(13400),d=t(95466),m=t(84683),x=t(3925),u=t(93656),g=t(80184),p={toggleList:x.kQ},f=(0,s.$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=f((0,o.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,s=e.actions,a=e.sidebarOpen,o=e.operatorMode,x=e.managerObjects,p=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(i.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:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,g.jsx)("div",{className:n.logo,children:o?(0,g.jsx)(d.Z,{}):(0,g.jsx)(m.Z,{})}),(0,g.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),f&&(0,g.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,g.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.rightMenu,children:[s&&s,x&&x.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)(u.gx,{})})]})]})})))},65655:function(e,n,t){t.r(n);t(72791);var i=t(25183),s=t(60937),r=t(80184);n.default=function(){return(0,r.jsx)(s.Z,{icon:(0,r.jsx)(i.lx,{}),pageHeaderText:"Health",title:"Health",message:(0,r.jsx)("div",{children:"This feature is currently not available"})})}}}]); -//# sourceMappingURL=9611.30185102.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9611.30185102.chunk.js.map b/portal-ui/build/static/js/9611.30185102.chunk.js.map deleted file mode 100644 index 0621330f5..000000000 --- a/portal-ui/build/static/js/9611.30185102.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9611.30185102.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/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Health.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { 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","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","import React from \"react\";\nimport { HealthMenuIcon } from \"../../icons/SidebarMenus\";\nimport FeatureNotAvailablePage from \"./Common/Components/FeatureNotAvailablePage\";\n\nconst Health = () => {\n return (\n }\n pageHeaderText={\"Health\"}\n title={\"Health\"}\n message={
    This feature is currently not available
    }\n />\n );\n};\n\nexport default Health;\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","message","Grid","HelpBox","Box","sx","flexFlow","md","color","colors","link","textDecoration","pageHeaderText","icon","PageHeader","label","PageLayout","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"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9611.c217768e.chunk.js b/portal-ui/build/static/js/9611.c217768e.chunk.js new file mode 100644 index 000000000..8bd97a1a2 --- /dev/null +++ b/portal-ui/build/static/js/9611.c217768e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9611],{23804:function(e,n,t){t(72791);var i=t(11135),o=t(25787),l=t(61889),r=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,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(l.ZP,{container:!0,children:[(0,r.jsxs)(l.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,i]}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:n.helpText,children:o})]})})}))},60937:function(e,n,t){t.d(n,{Z:function(){return u}});var i=t(32291),o=t(72791),l=t(61889),r=t(64554),s=t(23804),a=t(80184),d=function(e){var n=e.iconComponent,t=void 0===n?null:n,i=e.title,o=void 0===i?"":i,d=e.message,c=void 0===d?"":d;return(0,a.jsx)(l.ZP,{container:!0,alignItems:"center",children:(0,a.jsx)(l.ZP,{item:!0,xs:12,children:(0,a.jsx)(s.Z,{title:o,iconComponent:t,help:(0,a.jsx)(r.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:c})})})})},c=t(74794),u=function(e){var n=e.pageHeaderText,t=void 0===n?"":n,l=e.icon,r=void 0===l?null:l,s=e.title,u=void 0===s?"":s,x=e.message,h=void 0===x?null:x;return(0,a.jsxs)(o.Fragment,{children:[(0,a.jsx)(i.Z,{label:t}),(0,a.jsx)(c.Z,{children:(0,a.jsx)(d,{iconComponent:r,title:u,message:h})})]})}},65655:function(e,n,t){t.r(n);t(72791);var i=t(25183),o=t(60937),l=t(80184);n.default=function(){return(0,l.jsx)(o.Z,{icon:(0,l.jsx)(i.lx,{}),pageHeaderText:"Health",title:"Health",message:(0,l.jsx)("div",{children:"This feature is currently not available"})})}}}]); +//# sourceMappingURL=9611.c217768e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9611.c217768e.chunk.js.map b/portal-ui/build/static/js/9611.c217768e.chunk.js.map new file mode 100644 index 000000000..05a4cba14 --- /dev/null +++ b/portal-ui/build/static/js/9611.c217768e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9611.c217768e.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,4HCJX,EApC4B,SAAC,GAIA,IAAD,IAH1BF,cAAAA,OAG0B,MAHV,KAGU,MAF1BC,MAAAA,OAE0B,MAFlB,GAEkB,MAD1BM,QAAAA,OAC0B,MADhB,GACgB,EAC1B,OACE,SAACC,EAAA,GAAD,CAAMJ,WAAS,EAACV,WAAY,SAA5B,UACE,SAACc,EAAA,GAAD,CAAMH,MAAI,EAACC,GAAI,GAAf,UACE,SAACG,EAAA,EAAD,CACER,MAAOA,EACPD,cAAeA,EACfE,MACE,SAACQ,EAAA,EAAD,CACEC,GAAI,CACFrB,SAAU,OACVG,QAAS,OACTX,OAAQ,OACR8B,SAAU,CACRN,GAAI,SACJO,GAAI,OAEN,MAAO,CACLC,MAAO,SAACnC,GAAD,OAAWA,EAAMoC,OAAOC,MAC/BC,eAAgB,cAXtB,SAeGV,W,WCxBf,EAzBgC,SAAC,GAU1B,IAAD,IATJW,eAAAA,OASI,MATa,GASb,MARJC,KAAAA,OAQI,MARG,KAQH,MAPJlB,MAAAA,OAOI,MAPI,GAOJ,MANJM,QAAAA,OAMI,MANM,KAMN,EACJ,OACE,UAAC,WAAD,YACE,SAACa,EAAA,EAAD,CAAYC,MAAOH,KACnB,SAACI,EAAA,EAAD,WACE,SAAC,EAAD,CACEtB,cAAemB,EACflB,MAAOA,EACPM,QAASA,W,2ECRnB,UAXe,WACb,OACE,SAAC,IAAD,CACEY,MAAM,SAAC,KAAD,IACND,eAAgB,SAChBjB,MAAO,SACPM,SAAS","sources":["common/HelpBox.tsx","screens/Console/Common/Components/FeatureNotAvailable.tsx","screens/Console/Common/Components/FeatureNotAvailablePage.tsx","screens/Console/Health.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { 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","import React from \"react\";\nimport { HealthMenuIcon } from \"../../icons/SidebarMenus\";\nimport FeatureNotAvailablePage from \"./Common/Components/FeatureNotAvailablePage\";\n\nconst Health = () => {\n return (\n }\n pageHeaderText={\"Health\"}\n title={\"Health\"}\n message={
    This feature is currently not available
    }\n />\n );\n};\n\nexport default Health;\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","message","Grid","HelpBox","Box","sx","flexFlow","md","color","colors","link","textDecoration","pageHeaderText","icon","PageHeader","label","PageLayout"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9635.083b4e05.chunk.js b/portal-ui/build/static/js/9635.083b4e05.chunk.js deleted file mode 100644 index 11db9e00b..000000000 --- a/portal-ui/build/static/js/9635.083b4e05.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9635],{23804:function(e,n,t){t(72791);var r=t(11135),i=t(25787),o=t(61889),a=t(80184);n.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 n=e.classes,t=e.iconComponent,r=e.title,i=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(o.ZP,{container:!0,children:[(0,a.jsxs)(o.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,a.jsx)(o.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},40603:function(e,n,t){var r=t(1413),i=t(45987),o=(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,i=e.palette.primary.main;return"primary"===r&&"contained"===t?i=e.palette.primary.contrastText:"primary"===r&&"outlined"===t?i=e.palette.primary.main:"secondary"===r&&(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,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,x=e.icon,h=void 0===x?null:x,f=e.className,g=void 0===f?"":f,j=(0,i.Z)(e,l);return(0,s.jsxs)(o.Z,(0,r.Z)((0,r.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"}}}},j),{},{children:[(0,s.jsx)("span",{children:d})," ",h]}))}},81806:function(e,n,t){var r=t(1413),i=t(45987),o=(t(72791),t(11135)),a=t(25787),s=t(80184),l=["classes","children"];n.Z=(0,a.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,i.Z)(e,l);return(0,s.jsx)("button",(0,r.Z)((0,r.Z)({},o),{},{className:n.root,children:t}))}))},85531:function(e,n,t){var r=t(1413),i=t(4942),o=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,x=(0,o.Z)(e,m),h=(0,u.jsx)(l.Z,(0,r.Z)((0,r.Z)({},x),{},{className:(0,d.Z)(n.root,(0,i.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:h})}):h}))},75578:function(e,n,t){var r=t(1413),i=t(72791),o=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,o.jsx)(i.Suspense,{fallback:n,children:(0,o.jsx)(e,(0,r.Z)({},t))})}return t}},47986:function(e,n,t){t(72791);var r=t(61889),i=t(64554),o=t(23804),a=t(80184);n.Z=function(e){var n=e.iconComponent,t=e.entity;return(0,a.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,a.jsx)(r.ZP,{item:!0,xs:12,children:(0,a.jsx)(o.Z,{title:"".concat(t," not available"),iconComponent:n,help:(0,a.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,a.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,a.jsxs)("div",{children:["Please deploy a server in"," ",(0,a.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."]})]})})})})}},74794:function(e,n,t){var r=t(1413),i=(t(72791),t(61889)),o=t(11135),a=t(25787),s=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,o.Z)((0,r.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,o=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:r,children:o})})})}))},32291:function(e,n,t){var r=t(72791),i=t(60364),o=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(93656),x=t(80184),h={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}}),h);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,i=e.actions,a=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,h=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,x.jsx)(r.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:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,x.jsx)("div",{className:n.logo,children:s?(0,x.jsx)(d.Z,{}):(0,x.jsx)(u.Z,{})}),(0,x.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),f&&(0,x.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,x.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:f?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,{})})]})]})})))},59114:function(e,n,t){var r=t(4942),i=t(1413),o=(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,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,p=e.value,x=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:i.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},89635:function(e,n,t){t.r(n);var r=t(29439),i=t(1413),o=t(72791),a=t(26181),s=t.n(a),l=t(60364),c=t(11135),d=t(25787),u=t(64554),m=t(40986),p=t(61889),x=t(23814),h=t(93656),f=t(42649),g=t(81207),j=t(92983),b=t(28789),Z=t(32291),y=t(23804),v=t(81806),C=t(74794),F=t(59114),T=t(75578),k=t(47986),N=t(56087),S=t(38442),w=t(34345),P=t(40603),I=t(80184),M=(0,T.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(4414)]).then(t.bind(t,34414))}))),E={setErrorSnackMessage:f.Ih},O=(0,l.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),E);n.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)((0,i.Z)({},x.OR),x.qg),x.Je),x.fc),(0,x.Bz)(e.spacing(4))),{},{customConfigurationPage:{minHeight:400},actionsTray:(0,i.Z)({},x.OR.actionsTray),searchField:(0,i.Z)((0,i.Z)({},x.qg.searchField),{},{marginRight:"auto",maxWidth:380}),rightActionButtons:{display:"flex","& button":{whiteSpace:"nowrap"}}},x.VX))}))(O((function(e){var n=e.classes,t=e.history,i=e.setErrorSnackMessage,a=e.distributedSetup,l=(0,o.useState)([]),c=(0,r.Z)(l,2),d=c[0],x=c[1],f=(0,o.useState)(""),T=(0,r.Z)(f,2),E=T[0],O=T[1],B=(0,o.useState)(!0),R=(0,r.Z)(B,2),A=R[0],L=R[1],z=(0,o.useState)(!1),_=(0,r.Z)(z,2),D=_[0],X=_[1],K=(0,o.useState)({type:"unsupported"}),W=(0,r.Z)(K,2),q=W[0],H=W[1];(0,o.useEffect)((function(){if(A)if(a){g.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){x(e.items||[]),L(!1)})).catch((function(e){i(e),L(!1)}))}else L(!1)}),[A,i,a]);var $=d.filter((function(e){if(""===E)return!0;var n=s()(e,"".concat(e.type,".name"),""),t=s()(e,"type","");return n.indexOf(E)>=0||t.indexOf(E)>=0})),G=function(){t.push(N.gA.TIERS_ADD)};return(0,I.jsxs)(o.Fragment,{children:[D&&(0,I.jsx)(M,{open:D,tierData:q,closeModalAndRefresh:function(){X(!1)}}),(0,I.jsx)(Z.Z,{label:"Tiers"}),(0,I.jsx)(C.Z,{children:a?(0,I.jsxs)(o.Fragment,{children:[(0,I.jsxs)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,I.jsx)(F.Z,{placeholder:"Filter",onChange:O,overrideClass:n.searchField,value:E}),(0,I.jsxs)("div",{className:n.rightActionButtons,children:[(0,I.jsx)(P.Z,{icon:(0,I.jsx)(b.default,{}),color:"primary",text:"Refresh List",onClick:function(){L(!0)}}),(0,I.jsx)(S.s,{scopes:[N.Ft.ADMIN_SET_TIER],resource:N.C3,errorProps:{disabled:!0},children:(0,I.jsx)(P.Z,{icon:(0,I.jsx)(h.dt,{}),color:"primary",text:"Create Tier",onClick:G,variant:"contained"})})]})]}),A&&(0,I.jsx)(m.Z,{}),!A&&(0,I.jsxs)(o.Fragment,{children:[d.length>0&&(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(p.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,I.jsx)(S.s,{scopes:[N.Ft.ADMIN_LIST_TIERS],resource:N.C3,errorProps:{disabled:!0},children:(0,I.jsx)(j.Z,{itemActions:[{type:"edit",onClick:function(e){H(e),X(!0)}}],columns:[{label:"Tier Name",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".name"),"");return null!==n?(0,I.jsx)("b",{children:n}):""},renderFullObject:!0},{label:"Type",elementKey:"type",renderFunction:function(e){var n=(w.Bh.find((function(n){return n.serviceName===e}))||{}).logoXs;return e?(0,I.jsx)(u.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"18px",height:"22px"}},children:n}):""},width:50},{label:"Endpoint",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".endpoint"),"");return null!==n?n:""},renderFullObject:!0},{label:"Bucket",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".bucket"),"");return null!==n?n:""},renderFullObject:!0},{label:"Prefix",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".prefix"),"");return null!==n?n:""},renderFullObject:!0},{label:"Region",elementKey:"type",renderFunction:function(e){var n=s()(e,"".concat(e.type,".region"),"");return null!==n?n:""},renderFullObject:!0}],isLoading:A,records:$,entityName:"Tiers",idField:"service_name",customPaperHeight:n.customConfigurationPage})})}),(0,I.jsx)(p.ZP,{item:!0,xs:12,sx:{marginTop:"15px"},children:(0,I.jsx)(y.Z,{title:"Learn more about TIERS",iconComponent:(0,I.jsx)(h.y2,{}),help:(0,I.jsxs)(o.Fragment,{children:["Tiers are used by the MinIO Object Lifecycle Management which 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,I.jsx)("br",{}),(0,I.jsx)("br",{}),"You can learn more at our"," ",(0,I.jsx)("a",{href:"https://docs.min.io/minio/baremetal/lifecycle-management/lifecycle-management-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===d.length&&(0,I.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,I.jsx)(p.ZP,{item:!0,xs:8,children:(0,I.jsx)(y.Z,{title:"Tiers",iconComponent:(0,I.jsx)(h.y2,{}),help:(0,I.jsxs)(o.Fragment,{children:["Tiers are used by the MinIO Object Lifecycle Management which 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,I.jsx)("br",{}),(0,I.jsx)("br",{}),"To get started,"," ",(0,I.jsx)(v.Z,{onClick:G,children:"Add A Tier"}),"."]})})})})]})]}):(0,I.jsx)(k.Z,{entity:"Tiers",iconComponent:(0,I.jsx)(h.gX,{})})})]})})))},34345:function(e,n,t){t.d(n,{Bh:function(){return c},Pp:function(){return o},b2:function(){return s},f0:function(){return a},vB:function(){return l}});var r=t(93656),i=t(80184),o="minio",a="gcs",s="s3",l="azure",c=[{serviceName:o,targetTitle:"MinIO",logo:(0,i.jsx)(r.$E,{}),logoXs:(0,i.jsx)(r.YE,{})},{serviceName:a,targetTitle:"Google Cloud Storage",logo:(0,i.jsx)(r.UQ,{}),logoXs:(0,i.jsx)(r.Vw,{})},{serviceName:s,targetTitle:"AWS S3",logo:(0,i.jsx)(r.fe,{}),logoXs:(0,i.jsx)(r.Xj,{})},{serviceName:l,targetTitle:"Azure",logo:(0,i.jsx)(r.jz,{}),logoXs:(0,i.jsx)(r.nA,{})}]}}]); -//# sourceMappingURL=9635.083b4e05.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9635.083b4e05.chunk.js.map b/portal-ui/build/static/js/9635.083b4e05.chunk.js.map deleted file mode 100644 index 2368c63f6..000000000 --- a/portal-ui/build/static/js/9635.083b4e05.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9635.083b4e05.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/Components/withSuspense.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Configurations/TiersConfiguration/ListTiersConfiguration.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 { 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","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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","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 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 { Box, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n settingsCommon,\n tableStyles,\n typesSelection,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AddIcon, TiersIcon, TiersNotAvailableIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ITierElement, ITierResponse } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\n\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { AppState } from \"../../../../store\";\nimport DistributedOnly from \"../../Common/DistributedOnly/DistributedOnly\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport { tierTypes } from \"./utils\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst UpdateTierCredentialsModal = withSuspense(\n React.lazy(() => import(\"./UpdateTierCredentialsModal\"))\n);\n\ninterface IListTiersConfig {\n classes: any;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n distributedSetup: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n ...settingsCommon,\n ...typesSelection,\n ...containerForHeader(theme.spacing(4)),\n customConfigurationPage: {\n minHeight: 400,\n },\n actionsTray: {\n ...actionsTray.actionsTray,\n },\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n\n rightActionButtons: {\n display: \"flex\",\n \"& button\": {\n whiteSpace: \"nowrap\",\n },\n },\n ...tableStyles,\n });\n\nconst ListTiersConfiguration = ({\n classes,\n history,\n setErrorSnackMessage,\n distributedSetup,\n}: IListTiersConfig) => {\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [isLoading, setIsLoading] = useState(true);\n const [updateCredentialsOpen, setUpdateCredentialsOpen] =\n useState(false);\n const [selectedTier, setSelectedTier] = useState({\n type: \"unsupported\",\n });\n\n useEffect(() => {\n if (isLoading) {\n if (distributedSetup) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n setRecords(res.items || []);\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n } else {\n setIsLoading(false);\n }\n }\n }, [isLoading, setErrorSnackMessage, distributedSetup]);\n\n const filteredRecords = records.filter((b: ITierElement) => {\n if (filter === \"\") {\n return true;\n }\n const getItemName = get(b, `${b.type}.name`, \"\");\n const getItemType = get(b, `type`, \"\");\n\n return getItemName.indexOf(filter) >= 0 || getItemType.indexOf(filter) >= 0;\n });\n\n const addTier = () => {\n history.push(IAM_PAGES.TIERS_ADD);\n };\n\n const renderTierName = (item: ITierElement) => {\n const name = get(item, `${item.type}.name`, \"\");\n\n if (name !== null) {\n return {name};\n }\n\n return \"\";\n };\n\n const renderTierType = (item: string) => {\n const { logoXs } =\n tierTypes.find((tierConf) => tierConf.serviceName === item) || {};\n if (item) {\n return (\n \n {logoXs}\n \n );\n }\n return \"\";\n };\n\n const renderTierPrefix = (item: ITierElement) => {\n const prefix = get(item, `${item.type}.prefix`, \"\");\n\n if (prefix !== null) {\n return prefix;\n }\n\n return \"\";\n };\n\n const renderTierEndpoint = (item: ITierElement) => {\n const endpoint = get(item, `${item.type}.endpoint`, \"\");\n\n if (endpoint !== null) {\n return endpoint;\n }\n\n return \"\";\n };\n\n const renderTierBucket = (item: ITierElement) => {\n const bucket = get(item, `${item.type}.bucket`, \"\");\n\n if (bucket !== null) {\n return bucket;\n }\n\n return \"\";\n };\n\n const renderTierRegion = (item: ITierElement) => {\n const region = get(item, `${item.type}.region`, \"\");\n\n if (region !== null) {\n return region;\n }\n\n return \"\";\n };\n\n const closeTierCredentials = () => {\n setUpdateCredentialsOpen(false);\n };\n\n return (\n \n {updateCredentialsOpen && (\n \n )}\n \n \n {!distributedSetup ? (\n }\n />\n ) : (\n \n \n \n
    \n }\n color=\"primary\"\n text={`Refresh List`}\n onClick={() => {\n setIsLoading(true);\n }}\n />\n\n \n }\n color=\"primary\"\n text={`Create Tier`}\n onClick={addTier}\n variant=\"contained\"\n />\n \n
    \n
    \n {isLoading && }\n {!isLoading && (\n \n {records.length > 0 && (\n \n \n \n {\n setSelectedTier(tierData);\n setUpdateCredentialsOpen(true);\n },\n },\n ]}\n columns={[\n {\n label: \"Tier Name\",\n elementKey: \"type\",\n renderFunction: renderTierName,\n renderFullObject: true,\n },\n {\n label: \"Type\",\n elementKey: \"type\",\n renderFunction: renderTierType,\n width: 50,\n },\n {\n label: \"Endpoint\",\n elementKey: \"type\",\n renderFunction: renderTierEndpoint,\n renderFullObject: true,\n },\n {\n label: \"Bucket\",\n elementKey: \"type\",\n renderFunction: renderTierBucket,\n renderFullObject: true,\n },\n {\n label: \"Prefix\",\n elementKey: \"type\",\n renderFunction: renderTierPrefix,\n renderFullObject: true,\n },\n {\n label: \"Region\",\n elementKey: \"type\",\n renderFunction: renderTierRegion,\n renderFullObject: true,\n },\n ]}\n isLoading={isLoading}\n records={filteredRecords}\n entityName=\"Tiers\"\n idField=\"service_name\"\n customPaperHeight={classes.customConfigurationPage}\n />\n \n \n \n }\n help={\n \n Tiers are used by the MinIO Object Lifecycle\n Management which allows creating rules for time or\n date based automatic transition or expiry of\n objects. For object transition, MinIO automatically\n moves the object to a configured remote storage\n tier.\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 Tiers are used by the MinIO Object Lifecycle\n Management which allows creating rules for time or\n date based automatic transition or expiry of\n objects. For object transition, MinIO automatically\n moves the object to a configured remote storage\n tier.\n
    \n
    \n To get started,{\" \"}\n Add A Tier.\n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListTiersConfiguration));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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","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","entity","flexFlow","md","colors","link","href","target","rel","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","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","UpdateTierCredentialsModal","withSuspense","React","setErrorSnackMessage","distributedSetup","actionsTray","settingsCommon","typesSelection","containerForHeader","spacing","customConfigurationPage","maxWidth","rightActionButtons","whiteSpace","tableStyles","history","useState","records","setRecords","filter","setFilter","isLoading","setIsLoading","updateCredentialsOpen","setUpdateCredentialsOpen","type","selectedTier","setSelectedTier","useEffect","api","then","res","items","catch","err","filteredRecords","b","getItemName","get","getItemType","indexOf","addTier","push","IAM_PAGES","open","tierData","closeModalAndRefresh","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","errorProps","tableBlock","itemActions","columns","elementKey","renderFunction","name","renderFullObject","logoXs","tierTypes","tierConf","serviceName","endpoint","bucket","prefix","region","entityName","idField","customPaperHeight","alignContent","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","targetTitle"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9785.7ccf0212.chunk.js b/portal-ui/build/static/js/9785.7ccf0212.chunk.js new file mode 100644 index 000000000..6abffafd4 --- /dev/null +++ b/portal-ui/build/static/js/9785.7ccf0212.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9785],{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},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 g}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(90767),s=n(12065),d=n(97278),l=n(76189),u=n(80184),v=(0,l.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,l.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,l.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),f=n(93736),Z=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],w=(0,Z.ZP)(d.Z,{shouldForwardProp:function(e){return(0,Z.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(z.checked,", &.").concat(z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(z.disabled),{color:n.palette.action.disabled}),t))})),j=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),S=(0,u.jsx)(h,{}),g=a.forwardRef((function(e,t){var n,o,s=(0,f.Z)({props:e,name:"MuiCheckbox"}),d=s.checkedIcon,l=void 0===d?j:d,v=s.color,p=void 0===v?"primary":v,h=s.icon,Z=void 0===h?P:h,b=s.indeterminate,z=void 0!==b&&b,g=s.indeterminateIcon,y=void 0===g?S:g,M=s.inputProps,C=s.size,E=void 0===C?"medium":C,I=(0,r.Z)(s,k),L=z?y:Z,H=z?y:l,V=(0,i.Z)({},s,{color:p,indeterminate:z,size:E}),R=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)}(V);return(0,u.jsx)(w,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":z},M),icon:a.cloneElement(L,{fontSize:null!=(n=L.props.fontSize)?n:E}),checkedIcon:a.cloneElement(H,{fontSize:null!=(o=H.props.fontSize)?o:E}),ownerState:V,ref:t},I,{classes:R}))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(28182),s=n(90767),d=n(14036),l=n(20890),u=n(93840),v=n(52930),p=n(47630),h=n(95159);function m(e){return(0,h.Z)("MuiInputAdornment",e)}var f,Z=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],k=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,d.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(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),w=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,p=n.className,h=n.component,Z=void 0===h?"div":h,w=n.disablePointerEvents,j=void 0!==w&&w,P=n.disableTypography,S=void 0!==P&&P,g=n.position,y=n.variant,M=(0,r.Z)(n,z),C=(0,v.Z)()||{},E=y;y&&C.variant,C&&!E&&(E=C.variant);var I=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:j,position:g,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,d.Z)(r)),a,o&&"hiddenLabel",i&&"size".concat((0,d.Z)(i))]};return(0,s.Z)(c,m,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(k,(0,i.Z)({as:Z,ownerState:I,className:(0,c.Z)(L.root,p),ref:t},M,{children:"string"!==typeof o||S?(0,x.jsxs)(a.Fragment,{children:["start"===g?f||(f=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(l.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)}}}]); +//# sourceMappingURL=9785.7ccf0212.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9785.7ccf0212.chunk.js.map b/portal-ui/build/static/js/9785.7ccf0212.chunk.js.map new file mode 100644 index 000000000..042f6fa4e --- /dev/null +++ b/portal-ui/build/static/js/9785.7ccf0212.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9785.7ccf0212.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/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/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.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: \"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 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":["_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","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","display","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","marginLeft","pointerEvents","children","className","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","clsx","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9968.676114b2.chunk.js b/portal-ui/build/static/js/9968.676114b2.chunk.js new file mode 100644 index 000000000..e95ad090d --- /dev/null +++ b/portal-ui/build/static/js/9968.676114b2.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9968],{39968:function(e,n,t){t.r(n);var r=t(29439),u=(t(72791),t(60364)),c=t(51691),o=t(42649),i=t(9505),s=t(2148),l=t(93656),a=t(80184),f={setErrorSnackMessage:o.Ih},k=(0,u.$j)(null,f);n.default=k((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,u=e.selectedBucket,o=e.setErrorSnackMessage,f=(0,i.Z)((function(){return n(!0)}),(function(e){return o(e)})),k=(0,r.Z)(f,2),d=k[0],h=k[1];if(!u)return null;return(0,a.jsx)(s.Z,{title:"Delete Bucket",confirmText:"Delete",isOpen:t,titleIcon:(0,a.jsx)(l.Nv,{}),isLoading:d,onConfirm:function(){h("DELETE","/api/v1/buckets/".concat(u),{name:u})},onClose:function(){return n(!1)},confirmationContent:(0,a.jsxs)(c.Z,{children:["Are you sure you want to delete bucket ",(0,a.jsx)("b",{children:u}),"? ",(0,a.jsx)("br",{}),"A bucket can only be deleted if it's empty."]})})}))},9505:function(e,n,t){var r=t(29439),u=t(72791),c=t(81207);n.Z=function(e,n){var t=(0,u.useState)(!1),o=(0,r.Z)(t,2),i=o[0],s=o[1];return[i,function(t,r,u){s(!0),c.Z.invoke(t,r,u).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}}}]); +//# sourceMappingURL=9968.676114b2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9968.676114b2.chunk.js.map b/portal-ui/build/static/js/9968.676114b2.chunk.js.map new file mode 100644 index 000000000..53a630826 --- /dev/null +++ b/portal-ui/build/static/js/9968.676114b2.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9968.676114b2.chunk.js","mappings":"yNAyEMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GA/CM,SAAC,GAKK,IAJzBE,EAIwB,EAJxBA,2BACAC,EAGwB,EAHxBA,WACAC,EAEwB,EAFxBA,eACAL,EACwB,EADxBA,qBAMA,GAAyCM,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACI,GAAD,OAA+BP,EAAqBO,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKJ,EACH,OAAO,KAST,OACE,SAAC,IAAD,CACEK,MAAK,gBACLC,YAAa,SACbC,OAAQR,EACRS,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAboB,WACtBN,EAAgB,SAAD,0BAA8BJ,GAAkB,CAC7DW,KAAMX,KAYNY,QAtBY,kBAAMd,GAA2B,IAuB7Ce,qBACE,UAAC,IAAD,sDACyC,uBAAIb,IAD7C,MACkE,kBADlE,uD,0DCjCR,IAvBe,SACbc,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAApD,eAAOP,EAAP,KAAkBQ,EAAlB,KAgBA,MAAO,CAACR,EAdQ,SAACS,EAAgBC,EAAaC,GAC5CH,GAAa,GACbI,EAAAA,EAAAA,OACUH,EAAQC,EAAKC,GACpBE,MAAK,SAACC,GACLN,GAAa,GACbH,EAAUS,MAEXC,OAAM,SAACtB,GACNe,GAAa,GACbF,EAAQb","sources":["screens/Console/Buckets/ListBuckets/DeleteBucket.tsx","screens/Console/Common/Hooks/useApi.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 { 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\ninterface IDeleteBucketProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteBucket = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n setErrorSnackMessage,\n}: IDeleteBucketProps) => {\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 invokeDeleteApi(\"DELETE\", `/api/v1/buckets/${selectedBucket}`, {\n name: selectedBucket,\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 bucket {selectedBucket}?
    \n A bucket can only be deleted if it's empty.\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteBucket);\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"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","name","onClose","confirmationContent","onSuccess","onError","useState","setIsLoading","method","url","data","api","then","res","catch"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/9968.f0284b3d.chunk.js b/portal-ui/build/static/js/9968.f0284b3d.chunk.js deleted file mode 100644 index ac7882aeb..000000000 --- a/portal-ui/build/static/js/9968.f0284b3d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[9968],{39968:function(n,e,t){t.r(e);var o=t(29439),i=(t(72791),t(60364)),c=t(51691),s=t(42649),r=t(9505),a=t(23508),l=t(93656),u=t(80184),d={setErrorSnackMessage:s.Ih},f=(0,i.$j)(null,d);e.default=f((function(n){var e=n.closeDeleteModalAndRefresh,t=n.deleteOpen,i=n.selectedBucket,s=n.setErrorSnackMessage,d=(0,r.Z)((function(){return e(!0)}),(function(n){return s(n)})),f=(0,o.Z)(d,2),m=f[0],Z=f[1];if(!i)return null;return(0,u.jsx)(a.Z,{title:"Delete Bucket",confirmText:"Delete",isOpen:t,titleIcon:(0,u.jsx)(l.Nv,{}),isLoading:m,onConfirm:function(){Z("DELETE","/api/v1/buckets/".concat(i),{name:i})},onClose:function(){return e(!1)},confirmationContent:(0,u.jsxs)(c.Z,{children:["Are you sure you want to delete bucket ",(0,u.jsx)("b",{children:i}),"? ",(0,u.jsx)("br",{}),"A bucket can only be deleted if it's empty."]})})}))},9505:function(n,e,t){var o=t(29439),i=t(72791),c=t(81207);e.Z=function(n,e){var t=(0,i.useState)(!1),s=(0,o.Z)(t,2),r=s[0],a=s[1];return[r,function(t,o,i){a(!0),c.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),c=t(5574),s=t(65661),r=t(39157),a=t(97123),l=t(36151),u=t(59860),d=t(13400),f=t(29823),m=t(11135),Z=t(25787),v=t(23814),p=t(80184);e.Z=(0,Z.Z)((function(n){return(0,m.Z)((0,o.Z)({},v.Qw))}))((function(n){var e=n.isOpen,t=void 0!==e&&e,m=n.onClose,Z=n.onCancel,v=n.onConfirm,x=n.classes,h=void 0===x?{}:x,j=n.title,k=void 0===j?"":j,C=n.isLoading,b=n.confirmationContent,N=n.cancelText,g=void 0===N?"Cancel":N,y=n.confirmText,B=void 0===y?"Confirm":y,E=n.confirmButtonProps,M=void 0===E?{}:E,T=n.cancelButtonProps,w=void 0===T?{}:T,D=n.titleIcon,I=void 0===D?null:D;return(0,p.jsxs)(c.Z,{open:t,onClose:function(n,e){"backdropClick"!==e&&m()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,p.jsxs)(s.Z,{className:h.title,children:[(0,p.jsxs)("div",{className:h.titleText,children:[I," ",k]}),(0,p.jsx)("div",{className:h.closeContainer,children:(0,p.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,p.jsx)(f.Z,{})})})]}),(0,p.jsx)(r.Z,{className:h.content,children:b}),(0,p.jsxs)(a.Z,{className:h.actions,children:[(0,p.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:h.cancelButton,onClick:Z||m,disabled:C,type:"button"},w),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:g})),(0,p.jsx)(u.Z,(0,o.Z)((0,o.Z)({className:h.confirmButton,type:"button",onClick:v,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,p.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:B}))]})]})}))},29823:function(n,e,t){var o=t(95318);e.Z=void 0;var i=o(t(45649)),c=t(80184),s=(0,i.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");e.Z=s}}]); -//# sourceMappingURL=9968.f0284b3d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/9968.f0284b3d.chunk.js.map b/portal-ui/build/static/js/9968.f0284b3d.chunk.js.map deleted file mode 100644 index 671703db8..000000000 --- a/portal-ui/build/static/js/9968.f0284b3d.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/9968.f0284b3d.chunk.js","mappings":"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","sources":["screens/Console/Buckets/ListBuckets/DeleteBucket.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 { 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\";\n\ninterface IDeleteBucketProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteBucket = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n setErrorSnackMessage,\n}: IDeleteBucketProps) => {\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 invokeDeleteApi(\"DELETE\", `/api/v1/buckets/${selectedBucket}`, {\n name: selectedBucket,\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 bucket {selectedBucket}?
    \n A bucket can only be deleted if it's empty.\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteBucket);\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":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","name","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/main.5a7c25ee.js b/portal-ui/build/static/js/main.5a7c25ee.js deleted file mode 100644 index bfc32680d..000000000 --- a/portal-ui/build/static/js/main.5a7c25ee.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.5a7c25ee.js.LICENSE.txt */ -!function(){var e={95318:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},42649:function(e,t,n){"use strict";n.d(t,{Ih:function(){return d},KY:function(){return c},MK:function(){return f},gG:function(){return i},nD:function(){return a},o8:function(){return s},rS:function(){return o},tC:function(){return h},xo:function(){return l},y1:function(){return u},zb:function(){return p}});var r=n(36601);function a(e){return{type:r.TY,logged:e}}function o(e){return{type:r.M6,operatorMode:e}}function i(e){return{type:r.YY,open:e}}function s(e){return{type:r.vx,needsRestart:e}}function l(e){return{type:r.mp,isLoading:e}}var c=function(e){return{type:r.YH,serverDiagnosticStatus:e}},u=function(e){return{type:r.pX,message:e}},d=function(e){return{type:r.Cs,message:e}},f=function(e){return{type:r.MC,message:e}},p=function(e){return{type:r.DA,message:e}},h=function(e){return{type:r.nl,distributedSetup:e}}},7241:function(e,t,n){"use strict";n(72791);var r=n(61889),a=n(72401),o=n(80184);t.Z=function(){return(0,o.jsx)(r.ZP,{container:!0,spacing:0,direction:"column",alignItems:"center",justifyContent:"center",style:{minHeight:"100vh"},children:(0,o.jsxs)(r.ZP,{item:!0,xs:3,style:{textAlign:"center"},children:[(0,o.jsx)(a.Z,{style:{width:35,height:35}}),(0,o.jsx)("br",{}),"Loading..."]})})}},49535:function(e,t,n){"use strict";var r=n(29439),a=n(93433),o=n(93035),i=n(26181),s=n.n(i),l=n(56087),c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0;if(!e)return!1;var r=e.includes(l.Ft.S3_ALL_ACTIONS),a=e.includes(l.Ft.ADMIN_ALL_ACTIONS),o=t.filter((function(t){return-1!==e.indexOf(t)||-1!==t.indexOf("s3:")&&r||-1!==t.indexOf("admin:")&&a}));return n?o.length===t.length:o.length>0};t.Z=function(e,t,n,i){if(!e)return!1;var l=o.h.getState().console.session.permissions||{},u=l["arn:aws:s3:::*"]||[],d=[],f=[],p=[];if(e){Array.isArray(e)?d=[].concat((0,a.Z)(d),(0,a.Z)(e)):d.push(e);var h=Object.keys(l).filter((function(e){return e.includes("*")&&"arn:aws:s3:::*"!==e}));d.forEach((function(e){var t,n=(t=e,h.map((function(e){var n=e.split(":").slice(-1)[0].replace("/","\\/").replace("*","($|\\/?(.*?))");return new RegExp("".concat(n),"gm").test(t)?e:null})).filter((function(e){return null!==e}))),o=[];n.forEach((function(e){if(e){var t=s()(l,e,[]);o=[].concat((0,a.Z)(o),(0,a.Z)(t))}}));var c=s()(l,e,[]);c=c||[];var u=s()(l,"arn:aws:s3:::".concat(e,"/*"),[]),d=s()(l,"arn:aws:s3:::".concat(e,"/"),[]),m=s()(l,"arn:aws:s3:::".concat(e),[]);if(f=[].concat((0,a.Z)(c),(0,a.Z)(u),(0,a.Z)(o),(0,a.Z)(d),(0,a.Z)(m)),i){var v="arn:aws:s3:::".concat(e);Object.entries(l).forEach((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];n.includes(v)&&(p=[].concat((0,a.Z)(p),(0,a.Z)(o)))}))}}))}var m=[],v=t||[];return"*"===e&&Object.entries(l).forEach((function(e){var t=(0,r.Z)(e,2),n=(t[0],t[1]),o=(void 0===n?[]:n)||[];v.forEach((function(e){o.forEach((function(t){t!==e&&"s3:*"!==t||(m=[].concat((0,a.Z)(m),[e]))}))}))})),c([].concat((0,a.Z)(f),(0,a.Z)(u),(0,a.Z)(p),(0,a.Z)(m)),t,n)}},38442:function(e,t,n){"use strict";n.d(t,{s:function(){return s},F:function(){return r.Z}});var r=n(49535),a=n(1413),o=n(72791),i=n(80184),s=function(e){var t=e.children,n=e.RenderError,s=void 0===n?function(){return(0,i.jsx)(i.Fragment,{})}:n,l=e.errorProps,c=void 0===l?null:l,u=e.matchAll,d=void 0!==u&&u,f=e.scopes,p=void 0===f?[]:f,h=e.resource,m=e.containsResource,v=void 0!==m&&m,g=(0,r.Z)(h,p,d,v);return g||c?!g&&c?Array.isArray(t)?(0,i.jsx)(i.Fragment,{children:t.map((function(e){return(0,o.cloneElement)(e,(0,a.Z)({},c))}))}):(0,o.cloneElement)(t,(0,a.Z)({},c)):(0,i.jsx)(i.Fragment,{children:t}):(0,i.jsx)(s,{})}},56087:function(e,t,n){"use strict";n.d(t,{C3:function(){return p},D:function(){return u},EI:function(){return s},Ft:function(){return l},HQ:function(){return f},LC:function(){return d},gA:function(){return c}});var r,a,o=n(93433),i=n(4942),s={BUCKET_OWNER:"BUCKET_OWNER",BUCKET_VIEWER:"BUCKET_VIEWER",BUCKET_ADMIN:"BUCKET_ADMIN"},l={S3_LIST_BUCKET:"s3:ListBucket",S3_GET_BUCKET_POLICY:"s3:GetBucketPolicy",S3_PUT_BUCKET_POLICY:"s3:PutBucketPolicy",S3_GET_OBJECT:"s3:GetObject",S3_PUT_OBJECT:"s3:PutObject",S3_GET_OBJECT_LEGAL_HOLD:"s3:GetObjectLegalHold",S3_PUT_OBJECT_LEGAL_HOLD:"s3:PutObjectLegalHold",S3_DELETE_OBJECT:"s3:DeleteObject",S3_GET_BUCKET_VERSIONING:"s3:GetBucketVersioning",S3_PUT_BUCKET_VERSIONING:"s3:PutBucketVersioning",S3_GET_OBJECT_RETENTION:"s3:GetObjectRetention",S3_PUT_OBJECT_RETENTION:"s3:PutObjectRetention",S3_GET_OBJECT_TAGGING:"s3:GetObjectTagging",S3_PUT_OBJECT_TAGGING:"s3:PutObjectTagging",S3_DELETE_OBJECT_TAGGING:"s3:DeleteObjectTagging",S3_GET_BUCKET_ENCRYPTION_CONFIGURATION:"s3:GetEncryptionConfiguration",S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION:"s3:PutEncryptionConfiguration",S3_CREATE_BUCKET:"s3:CreateBucket",S3_DELETE_BUCKET:"s3:DeleteBucket",S3_FORCE_DELETE_BUCKET:"s3:ForceDeleteBucket",S3_GET_BUCKET_NOTIFICATIONS:"s3:GetBucketNotification",S3_LISTEN_BUCKET_NOTIFICATIONS:"s3:ListenBucketNotification",S3_PUT_BUCKET_NOTIFICATIONS:"s3:PutBucketNotification",S3_GET_REPLICATION_CONFIGURATION:"s3:GetReplicationConfiguration",S3_PUT_REPLICATION_CONFIGURATION:"s3:PutReplicationConfiguration",S3_GET_LIFECYCLE_CONFIGURATION:"s3:GetLifecycleConfiguration",S3_PUT_LIFECYCLE_CONFIGURATION:"s3:PutLifecycleConfiguration",S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION:"s3:GetBucketObjectLockConfiguration",S3_PUT_BUCKET_OBJECT_LOCK_CONFIGURATION:"s3:PutBucketObjectLockConfiguration",ADMIN_GET_POLICY:"admin:GetPolicy",ADMIN_LIST_USERS:"admin:ListUsers",ADMIN_CREATE_USER:"admin:CreateUser",ADMIN_DELETE_USER:"admin:DeleteUser",ADMIN_ENABLE_USER:"admin:EnableUser",ADMIN_DISABLE_USER:"admin:DisableUser",ADMIN_GET_USER:"admin:GetUser",ADMIN_LIST_USER_POLICIES:"admin:ListUserPolicies",ADMIN_SERVER_INFO:"admin:ServerInfo",ADMIN_GET_BUCKET_QUOTA:"admin:GetBucketQuota",ADMIN_SET_BUCKET_QUOTA:"admin:SetBucketQuota",ADMIN_LIST_TIERS:"admin:ListTier",ADMIN_SET_TIER:"admin:SetTier",ADMIN_LIST_GROUPS:"admin:ListGroups",S3_GET_OBJECT_VERSION_FOR_REPLICATION:"s3:GetObjectVersionForReplication",S3_REPLICATE_TAGS:"s3:ReplicateTags",S3_REPLICATE_DELETE:"s3:ReplicateDelete",S3_REPLICATE_OBJECT:"s3:ReplicateObject",S3_PUT_OBJECT_VERSION_TAGGING:"s3:PutObjectVersionTagging",S3_DELETE_OBJECT_VERSION_TAGGING:"s3:DeleteObjectVersionTagging",S3_DELETE_OBJECT_VERSION:"s3:DeleteObjectVersion",S3_GET_OBJECT_VERSION_TAGGING:"s3:GetObjectVersionTagging",S3_GET_OBJECT_VERSION:"s3:GetObjectVersion",S3_PUT_BUCKET_TAGGING:"s3:PutBucketTagging",S3_GET_BUCKET_TAGGING:"s3:GetBucketTagging",S3_BYPASS_GOVERNANCE_RETENTION:"s3:BypassGovernanceRetention",S3_LIST_MULTIPART_UPLOAD_PARTS:"s3:ListMultipartUploadParts",S3_LISTEN_NOTIFICATIONS:"s3:ListenNotification",S3_LIST_BUCKET_MULTIPART_UPLOADS:"s3:ListBucketMultipartUploads",S3_LIST_BUCKET_VERSIONS:"s3:ListBucketVersions",S3_GET_BUCKET_POLICY_STATUS:"s3:GetBucketPolicyStatus",S3_LIST_ALL_MY_BUCKETS:"s3:ListAllMyBuckets",S3_HEAD_BUCKET:"s3:HeadBucket",S3_GET_BUCKET_LOCATION:"s3:GetBucketLocation",S3_DELETE_BUCKET_POLICY:"s3:DeleteBucketPolicy",S3_ABORT_MULTIPART_UPLOAD:"s3:AbortMultipartUpload",ADMIN_ADD_USER_TO_GROUP:"admin:AddUserToGroup",ADMIN_REMOVE_USER_FROM_GROUP:"admin:RemoveUserFromGroup",ADMIN_GET_GROUP:"admin:GetGroup",ADMIN_ENABLE_GROUP:"admin:EnableGroup",ADMIN_DISABLE_GROUP:"admin:DisableGroup",ADMIN_CREATE_POLICY:"admin:CreatePolicy",ADMIN_DELETE_POLICY:"admin:DeletePolicy",ADMIN_ATTACH_USER_OR_GROUP_POLICY:"admin:AttachUserOrGroupPolicy",ADMIN_CREATE_SERVICEACCOUNT:"admin:CreateServiceAccount",ADMIN_UPDATE_SERVICEACCOUNT:"admin:UpdateServiceAccount",ADMIN_REMOVE_SERVICEACCOUNT:"admin:RemoveServiceAccount",ADMIN_LIST_SERVICEACCOUNTS:"admin:ListServiceAccounts",ADMIN_CONFIG_UPDATE:"admin:ConfigUpdate",ADMIN_GET_CONSOLE_LOG:"admin:ConsoleLog",ADMIN_SERVER_TRACE:"admin:ServerTrace",ADMIN_HEALTH_INFO:"admin:OBDInfo",ADMIN_HEAL:"admin:Heal",ADMIN_INSPECT_DATA:"admin:InspectData",S3_ALL_ACTIONS:"s3:*",ADMIN_ALL_ACTIONS:"admin:*"},c={BUCKETS:"/buckets",ADD_BUCKETS:"/add-bucket",BUCKETS_ADMIN_VIEW:"/buckets/:bucketName/admin*",BUCKETS_BROWSE_VIEW:"/buckets/:bucketName/browse*",IDENTITY:"/identity",USERS:"/identity/users",USERS_VIEW:"/identity/users/:userName+",GROUPS:"/identity/groups",GROUPS_VIEW:"/identity/groups/:groupName+",ACCOUNT:"/identity/account",POLICIES:"/access/policies",POLICIES_VIEW:"/access/policies/*",TOOLS_LOGS:"/tools/logs",TOOLS_AUDITLOGS:"/tools/audit-logs",TOOLS_TRACE:"/tools/trace",DASHBOARD:"/tools/metrics",TOOLS_HEAL:"/tools/heal",TOOLS_WATCH:"/tools/watch",HEALTH:"/health",TOOLS:"/support",REGISTER_SUPPORT:"/support/register",TOOLS_DIAGNOSTICS:"/support/diagnostics",TOOLS_SPEEDTEST:"/support/speedtest",CALL_HOME:"/support/call-home",PROFILE:"/support/profile",SUPPORT_INSPECT:"/support/inspect",LICENSE:"/license",SETTINGS:"/settings/configurations",SETTINGS_VIEW:"/settings/configurations/:option",DOCUMENTATION:"/documentation",NOTIFICATIONS_ENDPOINTS:"/settings/notification-endpoints",NOTIFICATIONS_ENDPOINTS_ADD:"/settings/notification-endpoints/add",NOTIFICATIONS_ENDPOINTS_ADD_SERVICE:"/settings/notification-endpoints/add/:service",TIERS:"/settings/tiers",TIERS_ADD:"/settings/tiers/add",TIERS_ADD_SERVICE:"/settings/tiers/add/:service",TENANTS:"/tenants",TENANTS_ADD:"/tenants/add",NAMESPACE_TENANT:"/namespaces/:tenantNamespace/tenants/:tenantName",NAMESPACE_TENANT_HOP:"/namespaces/:tenantNamespace/tenants/:tenantName/hop",NAMESPACE_TENANT_PODS:"/namespaces/:tenantNamespace/tenants/:tenantName/pods/:podName",NAMESPACE_TENANT_PVCS:"/namespaces/:tenantNamespace/tenants/:tenantName/pvcs/:PVCName",NAMESPACE_TENANT_PODS_LIST:"/namespaces/:tenantNamespace/tenants/:tenantName/pods",NAMESPACE_TENANT_SUMMARY:"/namespaces/:tenantNamespace/tenants/:tenantName/summary",NAMESPACE_TENANT_METRICS:"/namespaces/:tenantNamespace/tenants/:tenantName/metrics",NAMESPACE_TENANT_TRACE:"/namespaces/:tenantNamespace/tenants/:tenantName/trace",NAMESPACE_TENANT_POOLS:"/namespaces/:tenantNamespace/tenants/:tenantName/pools",NAMESPACE_TENANT_POOLS_ADD:"/namespaces/:tenantNamespace/tenants/:tenantName/add-pool",NAMESPACE_TENANT_VOLUMES:"/namespaces/:tenantNamespace/tenants/:tenantName/volumes",NAMESPACE_TENANT_LICENSE:"/namespaces/:tenantNamespace/tenants/:tenantName/license",NAMESPACE_TENANT_SECURITY:"/namespaces/:tenantNamespace/tenants/:tenantName/security",NAMESPACE_TENANT_ENCRYPTION:"/namespaces/:tenantNamespace/tenants/:tenantName/encryption",NAMESPACE_TENANT_MONITORING:"/namespaces/:tenantNamespace/tenants/:tenantName/monitoring",NAMESPACE_TENANT_LOGGING:"/namespaces/:tenantNamespace/tenants/:tenantName/logging",NAMESPACE_TENANT_EVENTS:"/namespaces/:tenantNamespace/tenants/:tenantName/events"},u=(r={},(0,i.Z)(r,s.BUCKET_OWNER,[l.S3_PUT_OBJECT,l.S3_DELETE_OBJECT]),(0,i.Z)(r,s.BUCKET_VIEWER,[l.S3_LIST_BUCKET]),(0,i.Z)(r,s.BUCKET_ADMIN,[l.S3_ALL_ACTIONS,l.ADMIN_ALL_ACTIONS,l.S3_REPLICATE_OBJECT,l.S3_REPLICATE_DELETE,l.S3_REPLICATE_TAGS,l.S3_GET_OBJECT_VERSION_FOR_REPLICATION,l.S3_PUT_REPLICATION_CONFIGURATION,l.S3_GET_REPLICATION_CONFIGURATION,l.S3_GET_BUCKET_VERSIONING,l.S3_PUT_BUCKET_VERSIONING,l.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,l.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,l.S3_DELETE_OBJECT_TAGGING,l.S3_PUT_OBJECT_TAGGING,l.S3_GET_OBJECT_TAGGING,l.S3_PUT_OBJECT_VERSION_TAGGING,l.S3_DELETE_OBJECT_VERSION_TAGGING,l.S3_DELETE_OBJECT_VERSION,l.S3_GET_OBJECT_VERSION_TAGGING,l.S3_GET_OBJECT_VERSION,l.S3_PUT_BUCKET_TAGGING,l.S3_GET_BUCKET_TAGGING,l.S3_PUT_BUCKET_OBJECT_LOCK_CONFIGURATION,l.S3_GET_BUCKET_OBJECT_LOCK_CONFIGURATION,l.S3_PUT_OBJECT_LEGAL_HOLD,l.S3_GET_OBJECT_LEGAL_HOLD,l.S3_GET_OBJECT_RETENTION,l.S3_PUT_OBJECT_RETENTION,l.S3_BYPASS_GOVERNANCE_RETENTION,l.S3_PUT_BUCKET_POLICY,l.S3_PUT_BUCKET_NOTIFICATIONS,l.S3_GET_LIFECYCLE_CONFIGURATION,l.S3_PUT_LIFECYCLE_CONFIGURATION,l.S3_LIST_MULTIPART_UPLOAD_PARTS,l.S3_LISTEN_BUCKET_NOTIFICATIONS,l.S3_LISTEN_NOTIFICATIONS,l.S3_LIST_BUCKET_MULTIPART_UPLOADS,l.S3_LIST_BUCKET_VERSIONS,l.S3_GET_BUCKET_POLICY_STATUS,l.S3_LIST_ALL_MY_BUCKETS,l.S3_HEAD_BUCKET,l.S3_GET_BUCKET_POLICY,l.S3_GET_BUCKET_NOTIFICATIONS,l.S3_GET_BUCKET_LOCATION,l.S3_DELETE_BUCKET_POLICY,l.S3_FORCE_DELETE_BUCKET,l.S3_DELETE_BUCKET,l.S3_CREATE_BUCKET,l.S3_ABORT_MULTIPART_UPLOAD,l.ADMIN_GET_POLICY,l.ADMIN_LIST_USER_POLICIES,l.ADMIN_LIST_USERS,l.ADMIN_HEAL]),r),d=(a={},(0,i.Z)(a,c.ADD_BUCKETS,[l.S3_CREATE_BUCKET]),(0,i.Z)(a,c.BUCKETS_ADMIN_VIEW,(0,o.Z)(u[s.BUCKET_ADMIN])),(0,i.Z)(a,c.BUCKETS_BROWSE_VIEW,[].concat((0,o.Z)(u[s.BUCKET_OWNER]),(0,o.Z)(u[s.BUCKET_VIEWER]))),(0,i.Z)(a,c.GROUPS,[l.ADMIN_LIST_GROUPS,l.ADMIN_ADD_USER_TO_GROUP]),(0,i.Z)(a,c.GROUPS_VIEW,[l.ADMIN_GET_GROUP,l.ADMIN_DISABLE_GROUP,l.ADMIN_ENABLE_GROUP,l.ADMIN_REMOVE_USER_FROM_GROUP,l.ADMIN_LIST_USER_POLICIES,l.ADMIN_ADD_USER_TO_GROUP,l.ADMIN_ATTACH_USER_OR_GROUP_POLICY]),(0,i.Z)(a,c.USERS,[l.ADMIN_LIST_USERS,l.ADMIN_CREATE_USER]),(0,i.Z)(a,c.USERS_VIEW,[l.ADMIN_GET_USER,l.ADMIN_ADD_USER_TO_GROUP,l.ADMIN_ENABLE_USER,l.ADMIN_DISABLE_USER,l.ADMIN_DELETE_USER]),(0,i.Z)(a,c.DASHBOARD,[l.ADMIN_SERVER_INFO]),(0,i.Z)(a,c.POLICIES_VIEW,[l.ADMIN_DELETE_POLICY,l.ADMIN_LIST_GROUPS,l.ADMIN_GET_GROUP,l.ADMIN_GET_POLICY,l.ADMIN_CREATE_POLICY]),(0,i.Z)(a,c.POLICIES,[l.ADMIN_LIST_USER_POLICIES,l.ADMIN_CREATE_POLICY]),(0,i.Z)(a,c.SETTINGS,[l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.SETTINGS_VIEW,[l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.NOTIFICATIONS_ENDPOINTS_ADD_SERVICE,[l.ADMIN_SERVER_INFO,l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.NOTIFICATIONS_ENDPOINTS_ADD,[l.ADMIN_SERVER_INFO,l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.NOTIFICATIONS_ENDPOINTS,[l.ADMIN_SERVER_INFO,l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.TIERS,[l.ADMIN_LIST_TIERS,l.ADMIN_SET_TIER]),(0,i.Z)(a,c.TIERS_ADD,[l.ADMIN_SET_TIER]),(0,i.Z)(a,c.TIERS_ADD_SERVICE,[l.ADMIN_SET_TIER]),(0,i.Z)(a,c.TOOLS,[l.S3_LISTEN_NOTIFICATIONS,l.S3_LISTEN_BUCKET_NOTIFICATIONS,l.ADMIN_GET_CONSOLE_LOG,l.ADMIN_SERVER_TRACE,l.ADMIN_HEAL,l.ADMIN_HEALTH_INFO,l.ADMIN_SERVER_INFO]),(0,i.Z)(a,c.TOOLS_LOGS,[l.ADMIN_GET_CONSOLE_LOG]),(0,i.Z)(a,c.TOOLS_AUDITLOGS,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.TOOLS_WATCH,[l.S3_LISTEN_NOTIFICATIONS,l.S3_LISTEN_BUCKET_NOTIFICATIONS]),(0,i.Z)(a,c.TOOLS_TRACE,[l.ADMIN_SERVER_TRACE]),(0,i.Z)(a,c.TOOLS_HEAL,[l.ADMIN_HEAL]),(0,i.Z)(a,c.TOOLS_DIAGNOSTICS,[l.ADMIN_HEALTH_INFO,l.ADMIN_SERVER_INFO]),(0,i.Z)(a,c.TOOLS_SPEEDTEST,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.REGISTER_SUPPORT,[l.ADMIN_SERVER_INFO,l.ADMIN_CONFIG_UPDATE]),(0,i.Z)(a,c.CALL_HOME,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.PROFILE,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.HEALTH,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.SUPPORT_INSPECT,[l.ADMIN_HEALTH_INFO]),(0,i.Z)(a,c.LICENSE,[l.ADMIN_SERVER_INFO,l.ADMIN_CONFIG_UPDATE]),a),f="arn:aws:s3:::*",p="console-ui"},81207:function(e,t,n){"use strict";var r=n(15671),a=n(43144),o=n(37004),i=n.n(o),s=n(26181),l=n.n(s),c=n(45248),u=new(function(){function e(){(0,r.Z)(this,e)}return(0,a.Z)(e,[{key:"invoke",value:function(e,t,n){var r=this,a=t;return"/"===a[0]&&(a=a.substr(1)),i()(e,a).send(n).then((function(e){return e.body})).catch((function(e){return 401===e.status&&localStorage.getItem("userLoggedIn")?("/"!==window.location.pathname&&localStorage.setItem("redirect-path",window.location.pathname),(0,c.Ov)(),void(window.location.href="/login")):r.onError(e)}))}},{key:"onError",value:function(e){if(e.status){var t=l()(e.response,"body.message","Error ".concat(e.status.toString())),n=l()(e.response,"body.detailedMessage","");t===n&&(n="");var r={errorMessage:t.charAt(0).toUpperCase()+t.slice(1),detailedError:n.charAt(0).toUpperCase()+n.slice(1)};return Promise.reject(r)}(0,c.Ov)(),window.location.href="/login"}}]),e}());t.Z=u},64974:function(e,t,n){"use strict";var r,a;n.d(t,{I:function(){return a},y:function(){return r}}),function(e){e.NoSchedule="NoSchedule",e.PreferNoSchedule="PreferNoSchedule",e.NoExecute="NoExecute"}(r||(r={})),function(e){e.Equal="Equal",e.Exists="Exists"}(a||(a={}))},45248:function(e,t,n){"use strict";n.d(t,{Am:function(){return T},C5:function(){return A},CE:function(){return M},Dl:function(){return l},Do:function(){return N},ES:function(){return _},Ov:function(){return h},Pw:function(){return g},Ue:function(){return E},Yj:function(){return C},Yr:function(){return y},ae:function(){return d},en:function(){return Z},kT:function(){return p},l5:function(){return f},le:function(){return O},nF:function(){return j},nk:function(){return P},ug:function(){return k},v1:function(){return S},zQ:function(){return v},zZ:function(){return R},zg:function(){return x},zk:function(){return m}});var r=n(51607),a=n(45884),o=n(26181),i=n.n(o),s=1073741824,l=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],c=["Ki","Mi","Gi","Ti","Pi","Ei"],u=["B"].concat(c),d=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=parseInt(e,10)||0;return f(n,t)},f=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=0;e>=1024&&++n;)e/=1024;var r=["B"].concat(c);return e.toFixed(e<10&&n>0?1:0)+" "+(t?r[n]:l[n])},p=function(e){document.cookie=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"},h=function(){r.ZP.removeItem("token"),p("token")},m=function(e){var t=e.getHours()<10?"0".concat(e.getHours()):"".concat(e.getHours()),n=e.getMinutes()<10?"0".concat(e.getMinutes()):"".concat(e.getMinutes()),r=e.getSeconds()<10?"0".concat(e.getSeconds()):"".concat(e.getSeconds());return"".concat(t,":").concat(n,":").concat(r,":").concat(e.getMilliseconds())},v=function(e){return c.filter((function(t){return!e||!e.includes(t)})).map((function(e){return{label:e,value:e}}))},g=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return y(e,t,n).toString(10)},y=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=parseFloat(e),a=n?u:l,o=a.findIndex((function(e){return e===t}));if(-1===o)return 0;var i=Math.pow(1024,o),s=r*i;return s},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,i=g(e.value,e.unit,!0);if(parseInt(i,10)4&&void 0!==arguments[4]?arguments[4]:0,l=arguments.length>5?arguments[5]:void 0,c=arguments.length>6?arguments[6]:void 0;if(isNaN(e)||isNaN(t)||isNaN(n)||isNaN(r))return{error:"Some provided data is invalid, please try again.",nodes:0,persistentVolumes:0,disks:0,pvSize:0};var u=0,d=0,f=0;if(0===o&&(f=(d=t/(u=Math.floor(Math.min(t/Math.max(4,e),n))))/e),o&&(d=(f=o)*e,u=Math.floor(t/d)),f%1>0){d=(f=Math.ceil(f))*e;var p=(u=Math.floor(t/d))*f*e;if(p>r)return{error:"We were not able to allocate this server.",nodes:0,persistentVolumes:0,disks:0,pvSize:0}}if(u0){var v=i()(h,"configurations",[]),g=v.find((function(e){return e.typeSelection===c}));if(void 0!==g&&g.minimumVolumeSize){var x,b,w=y(null===(x=g.minimumVolumeSize)||void 0===x?void 0:x.driveSize,null===(b=g.minimumVolumeSize)||void 0===b?void 0:b.sizeUnit,!0),_=h.variantSelectorValues.find((function(e){return e.value===c}));if(u=8&&r>16&&c&&(l="EC:4"),{error:0,storageFactors:s,maxEC:o,rawCapacity:a.toString(10),erasureCodeSet:i,defaultEC:l}},Z=function(e){var t=e.length;return"pool-".concat(t)},S=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"s",n=parseFloat(e);return j(n,t)},j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"s";switch(t){case"ns":e=Math.floor(1e-9*e);break;case"ms":e=Math.floor(.001*e)}var n=Math.floor(e/86400);e-=3600*n*24;var r=Math.floor(e/3600);e-=3600*r;var a=Math.floor(e/60);if(e-=60*a,n>365){var o=n/365;return"".concat(o," year").concat(1===Math.floor(o)?"":"s")}if(n>30){var i=Math.floor(n/30),s=n-30*i;return"".concat(i," month").concat(1===Math.floor(i)?"":"s"," ").concat(s>0?"".concat(s," day").concat(s>1?"s":""):"")}if(n>=7&&n<=30){var l=Math.floor(n/7);return"".concat(Math.floor(l)," week").concat(1===l?"":"s")}return n>=1&&n<=6?"".concat(n," day").concat(n>1?"s":""):"".concat(r>=1?"".concat(r," hour").concat(r>1?"s":""):""," ").concat(a>=1&&0===r?"".concat(a," minute").concat(a>1?"s":""):""," ").concat(e>=1&&0===a&&0===r?"".concat(e," second").concat(e>1?"s":""):"")},E=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=parseInt(e);if(isNaN(n))return"";var r=new Date(1e3*n);return t?"".concat(r.getFullYear(),"-").concat(String(r.getMonth()+1).padStart(2,"0"),"-").concat(String(r.getDay()).padStart(2,"0")," ").concat(r.getHours(),":").concat(String(r.getMinutes()).padStart(2,"0"),":").concat(String(r.getSeconds()).padStart(2,"0")):"".concat(r.getHours(),":").concat(String(r.getMinutes()).padStart(2,"0"))},T=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=parseInt(e,10);if(0===a)return{total:0,unit:l[0]};var o=1024,i=Math.floor(Math.log(a)/Math.log(o)),s=t?0:1,c=a/Math.pow(o,i),d=n?Math.floor(c):c,f=parseFloat(d.toFixed(s)),p=r?u[i]:l[i];return{total:f,unit:p}},C=function(e){var t=1e-9*e,n=Math.round(1e4*(t+Number.EPSILON))/1e4;return"".concat(n," s")},A=function(e){var t=(100*e.split("").reduce((function(e,t){return e+t.charCodeAt(0)+((e<<5)-e)}),0)&16777215).toString(16).toUpperCase();return"#".concat(t.padStart(6,"0"))},M=function(e){return void 0===e?0:e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},P=function(e){if(void 0===e)return"0";var t=e.toString(),n="";return e>999&&e<1e6?(t=(e/1e3).toFixed(1),n="K"):e>=1e6&&e<1e9?(t=(e/1e6).toFixed(1),n="M"):e>=1e9&&(t=(e/1e9).toFixed(1),n="B"),t.endsWith(".0")&&(t=t.slice(0,-2)),"".concat(t).concat(n)},k=function(e){try{return btoa(unescape(encodeURIComponent(e)))}catch(t){return""}},O=function(e){try{return decodeURIComponent(escape(window.atob(e)))}catch(t){return e}},R=function(e,t){var n=document.createElement("a");n.href=window.URL.createObjectURL(e),n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n)},N=function(e){var t;return(null===(t=document.cookie.match("(^|;)\\s*"+e+"\\s*=\\s*([^;]+)"))||void 0===t?void 0:t.pop())||""}},62666:function(e,t,n){"use strict";var r=n(12610),a={},o=document.baseURI.replace(window.location.origin,"");""!==o&&(a.basename=o),t.Z=(0,r.lX)(a)},47919:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 858",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 20",d:"M102.405 230.399v-76.79h-76.8a25.607 25.607 0 0 1 0-51.214h76.8V25.601a25.6 25.6 0 1 1 51.2 0v76.792h76.8a25.607 25.607 0 0 1 0 51.214h-76.8v76.792a25.6 25.6 0 1 1-51.2 0Z"})]})]}))}},54163:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1016","data-name":"Rect\xe1ngulo 1016",width:"234.495",height:"256",fill:"#4ccb92"})}),(0,a.jsx)("clipPath",{id:"clip-Add_Members_to_Group",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Add_Members_to_Group","data-name":"Add Members to Group",clipPath:"url(#clip-Add_Members_to_Group)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Add_Members_to_Group_Icon","data-name":"Add Members to Group Icon",children:[(0,a.jsx)("g",{id:"Grupo_2404","data-name":"Grupo 2404",transform:"translate(12)",children:(0,a.jsxs)("g",{id:"Grupo_2403","data-name":"Grupo 2403",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7140","data-name":"Trazado 7140",d:"M88.829,144.6h.048a66.829,66.829,0,0,0,27.035-5.707,69.009,69.009,0,0,0,22.1-15.529,72.055,72.055,0,0,0,14.891-22.977,73.863,73.863,0,0,0,5.463-28.1C158.372,32.435,127.183,0,88.831,0h0C50.5,0,19.316,32.43,19.316,72.292S50.5,144.6,88.829,144.6",transform:"translate(1.421)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7141","data-name":"Trazado 7141",d:"M170.085,117.467a64.39,64.39,0,0,0-57.412,35.223c-1.427-.4-2.86-.784-4.3-1.124A94.705,94.705,0,0,0,86.9,149.044v.005c-1.755,0-3.439.046-5,.135A99.747,99.747,0,0,0,8.1,189.42c-.388.519-.767,1.061-1.234,1.756l-.107.15c-.1.142-.214.3-.312.458l-.027.028a37.88,37.88,0,0,0-2.671,37.522A31.97,31.97,0,0,0,32.509,247.36H142.044a31.485,31.485,0,0,0,13.08-2.84,64.408,64.408,0,1,0,14.961-127.054m.383,115.3a50.889,50.889,0,1,1,50.888-50.888,50.888,50.888,0,0,1-50.888,50.888m-7.982-26.944V189.859H146.524V173.895h15.963V157.931H178.45v15.964h15.963v15.964H178.45v15.963Z",transform:"translate(0 8.64)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1017","data-name":"Rect\xe1ngulo 1017",width:"256",height:"256",fill:"none"})]})]})]}))}},37746:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("g",{children:(0,a.jsx)("path",{d:"M244.1,8.4c-3.9-5.3-10.1-8.5-16.7-8.5H21.6C15,0,8.8,3.1,4.9,8.4C0.8,14-0.9,21,0.3,27.9 c5.1,29.6,15.8,91.9,24.3,141.7v0.1C29,195,32.8,217.1,35,229.9c1.4,10.8,10.4,18.9,21.3,19.3h136.5 c10.9-0.4,19.9-8.5,21.3-19.3l10.3-60.1l0.1-0.4L238.4,88v-0.2l10.3-59.9C249.9,21,248.3,14,244.1,8.4 M206.1,177h-163 l-3.2-18.6h169.3L206.1,177z M220,95.3H28.9l-3.2-18.6h197.4L220,95.3z"})})}))}},84683:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 121.755 29.822",children:(0,a.jsx)("path",{className:"prefix__a",d:"M15.647 15.935l-1.772 1.194a6.088 6.088 0 00-5.135-2.652 6.348 6.348 0 00-6.522 6.654 6.348 6.348 0 006.522 6.654 6.031 6.031 0 005.124-2.64l1.735 1.266a8.126 8.126 0 01-6.859 3.411A8.422 8.422 0 010 21.131a8.422 8.422 0 018.74-8.691 7.963 7.963 0 016.907 3.495zM35.641 21.131a8.422 8.422 0 01-8.74 8.691 8.422 8.422 0 01-8.739-8.691 8.421 8.421 0 018.739-8.691 8.422 8.422 0 018.74 8.691zm-15.261 0a6.347 6.347 0 006.521 6.654 6.347 6.347 0 006.521-6.654 6.347 6.347 0 00-6.521-6.654 6.347 6.347 0 00-6.521 6.654zM53.729 29.581h-1.917l-10.2-13.26-.012 13.248h-2.122V12.681h1.917l10.21 13.26V12.693h2.122zM69.551 16.02a8.835 8.835 0 00-5-1.555c-2.471 0-4.231 1.109-4.231 2.929 0 1.531 1.29 2.315 3.821 2.628l1.484.181c2.856.35 5.3 1.507 5.3 4.484 0 3.364-3.05 5.123-6.7 5.123a10.935 10.935 0 01-6.654-2.194l1.157-1.687a9.018 9.018 0 005.5 1.868c2.519 0 4.5-1.025 4.5-2.929 0-1.567-1.41-2.314-4.038-2.64l-1.567-.193c-2.784-.337-5-1.627-5-4.508 0-3.255 2.893-5.075 6.449-5.075a10.336 10.336 0 016.076 1.844zM91.268 21.131a8.422 8.422 0 01-8.74 8.691 8.422 8.422 0 01-8.739-8.691 8.421 8.421 0 018.739-8.691 8.422 8.422 0 018.74 8.691zm-15.261 0a6.348 6.348 0 006.521 6.654 6.347 6.347 0 006.521-6.654 6.347 6.347 0 00-6.521-6.654 6.348 6.348 0 00-6.521 6.654zM106.897 29.569h-11.79V12.693h2.122v14.863h9.668zM121.76 29.569h-11.982V12.693h11.862v1.988h-9.74v5.389h9.427v2H111.9v5.509h9.86zM14.9.167h2.576v7.547H14.9zM11.801.238l-5.23 3.194a.229.229 0 01-.242 0L1.099.238a.726.726 0 00-.374-.1H.719a.717.717 0 00-.717.717v6.864h2.574V4.462a.258.258 0 01.392-.22l2.931 1.793a.919.919 0 00.944.009L9.935 4.23a.258.258 0 01.388.222v3.267h2.575V.855a.717.717 0 00-.717-.717h-.006a.723.723 0 00-.374.1zM30.348.165h-2.613v3.463a.258.258 0 01-.379.228L20.585.249a.723.723 0 00-.337-.084.717.717 0 00-.717.717v6.832h2.592V4.306a.258.258 0 01.379-.227l6.8 3.606a.714.714 0 00.336.083.716.716 0 00.717-.717V.165zM32.439 7.712V.165h1.2v7.547zM40.536 7.878c-3.189 0-5.451-1.513-5.451-3.939S37.361 0 40.536 0s5.466 1.513 5.466 3.939-2.236 3.939-5.466 3.939zm0-6.87c-2.371 0-4.2 1.036-4.2 2.931s1.826 2.93 4.2 2.93 4.212-1.022 4.212-2.93-1.84-2.931-4.212-2.931z"})}))}},79880:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 6972",d:"M215.641 255.9H87.69a22.585 22.585 0 0 1-16.605-6.812 22.542 22.542 0 0 1-6.8-16.6v-162.8a21.969 21.969 0 0 1 6.807-16.058 22.654 22.654 0 0 1 16.6-6.807h127.951a21.95 21.95 0 0 1 16.059 6.807 22.014 22.014 0 0 1 6.813 16.058v162.8a22.6 22.6 0 0 1-6.812 16.613 21.94 21.94 0 0 1-16.037 6.8ZM87.69 232.486h127.951v-162.8H87.69ZM18 189V12A12 12 0 0 1 30 0h139a12 12 0 0 1 12 12 12 12 0 0 1-12 12H42v165a12 12 0 0 1-11.992 12A12 12 0 0 1 18 189Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 918",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},74768:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{id:"trash-icn",transform:"translate(0 0)",children:[(0,a.jsx)("path",{fill:"currentcolor",d:"M219.6,16.2h-49.7V8.4c0-3.4-2.7-6.1-6.1-6.1H92.2c-3.4,0-6.1,2.7-6.1,6.1v7.8H36.3 c-3.4,0-6.1,2.8-6.1,6.2V38c0,3.4,2.7,6.1,6.1,6.1h183.3c3.4,0,6.1-2.7,6.1-6.1V22.4C225.8,19,223.1,16.2,219.6,16.2 C219.7,16.2,219.6,16.2,219.6,16.2z"}),(0,a.jsx)("path",{fill:"currentcolor",d:"M44.2,225.5c0,15.6,12.7,28.2,28.2,28.2h111.2c15.6-0.1,28.2-12.7,28.2-28.2V58.1H44.2V225.5z"})]})}))}},82332:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 17",d:"M.449 128.494A128.188 128.188 0 0 1 128.494.45h10.6v52.857a76.1 76.1 0 0 1 46.531 25.151 75.572 75.572 0 0 1 13.854 22.845 75.251 75.251 0 0 1 5.039 27.189 76.11 76.11 0 0 1-76.023 76.022 76.1 76.1 0 0 1-76.012-76.022 75.291 75.291 0 0 1 5.037-27.189 75.678 75.678 0 0 1 13.85-22.845 76.135 76.135 0 0 1 46.555-25.151v-31.18a106.369 106.369 0 0 0-19.6 3.814 106.378 106.378 0 0 0-18.193 7.25 107.579 107.579 0 0 0-16.385 10.312A108.253 108.253 0 0 0 49.54 56.524a108.229 108.229 0 0 0-11.676 15.37 107.348 107.348 0 0 0-8.787 17.356 106.17 106.17 0 0 0-7.459 39.244 107.008 107.008 0 0 0 106.877 106.892 107.017 107.017 0 0 0 106.9-106.892 10.5 10.5 0 0 1 3.1-7.479 10.49 10.49 0 0 1 7.475-3.1 10.593 10.593 0 0 1 10.584 10.58 128.2 128.2 0 0 1-128.057 128.057A128.2 128.2 0 0 1 .449 128.494Zm99.967-47.048a55.106 55.106 0 0 0-14.062 12.016 54.643 54.643 0 0 0-9.336 16.083 54.492 54.492 0 0 0-3.379 18.95 54.464 54.464 0 0 0 4.316 21.333 54.924 54.924 0 0 0 5.068 9.317 55.648 55.648 0 0 0 6.7 8.12 55.546 55.546 0 0 0 8.125 6.7 54.955 54.955 0 0 0 9.316 5.068 54.353 54.353 0 0 0 21.328 4.316 54.917 54.917 0 0 0 54.854-54.857 54.492 54.492 0 0 0-3.379-18.95 54.614 54.614 0 0 0-9.326-16.083 55.144 55.144 0 0 0-14.049-12.016 54.571 54.571 0 0 0-17.5-6.723v30.482a25.816 25.816 0 0 1 10.824 9.254 25.366 25.366 0 0 1 4.211 14.035 25.433 25.433 0 0 1-2.014 9.982 25.524 25.524 0 0 1-5.494 8.145 25.5 25.5 0 0 1-8.145 5.493 25.518 25.518 0 0 1-9.982 2.015 25.477 25.477 0 0 1-9.973-2.015 25.621 25.621 0 0 1-8.148-5.493 25.538 25.538 0 0 1-5.488-8.145 25.522 25.522 0 0 1-2.016-9.982 25.393 25.393 0 0 1 4.207-14.035 25.82 25.82 0 0 1 10.848-9.254V74.72a54.537 54.537 0 0 0-17.508 6.73Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 878",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},67186:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 870",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("g",{"data-name":"download-icn",children:(0,a.jsx)("path",{"data-name":"Trazado 362",d:"M0 104.08c0-21.751 32.822-21.751 32.822 0v118.833h190.356V104.08c0-21.751 32.822-21.751 32.822 0v135.381a16.48 16.48 0 0 1-16.4 16.54H16.415a16.485 16.485 0 0 1-16.413-16.54V104.08Zm144.415-87.773c0-21.741-32.826-21.741-32.826 0v138.227l-18.591-18.743c-15.263-15.385-38.474 8.006-23.211 23.391l46.51 46.879a16.339 16.339 0 0 0 23.406 0l46.507-46.879c15.266-15.385-7.945-38.776-23.208-23.391l-18.587 18.743V16.306Z"})})]})]}))}},33548:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"edit-icn",d:"M201.683 0a56.44 56.44 0 0 0-38.86 15.85L18.897 159.94a13.219 13.219 0 0 0-3.838 7.2L.187 239.67a13.355 13.355 0 0 0 3.838 12.488A14.56 14.56 0 0 0 14.1 256a6.078 6.078 0 0 0 2.879-.48l71.962-13.932a13.2 13.2 0 0 0 7.2-3.842L240.063 93.658c21.109-21.133 21.109-56.2 0-77.328A52.948 52.948 0 0 0 201.683 0ZM51.521 220.938a29.883 29.883 0 0 0-6.717-9.126 40.622 40.622 0 0 0-9.115-6.724l5.277-24.976a46.056 46.056 0 0 1 23.508 12.008 42.7 42.7 0 0 1 11.994 23.535ZM220.393 73.966 92.299 201.726a56.271 56.271 0 0 0-14.872-23.054 65.573 65.573 0 0 0-23.028-14.89l128.094-128.24a26.406 26.406 0 0 1 19.19-7.685 28.509 28.509 0 0 1 19.19 7.685 27.729 27.729 0 0 1-.48 38.424Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 867",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},76181:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 442",d:"M235.994 77.357c.388-15.754 1.486-43.417.028-59.116C234.928 6.486 221.639 1.196 212.322 1 205.771-.478 80.8.119 36.406.119 26.889.13 19.006 8.719 19 18.241v220.678a17.26 17.26 0 0 0 17.24 17.241h182.544a17.26 17.26 0 0 0 17.241-17.241V128.974c-.005-17.183-.451-34.458-.031-51.617Zm-20.92 145.986a14.889 14.889 0 0 1-14.888 14.888H51.816a14.888 14.888 0 0 1-14.888-14.888V33.82a14.889 14.889 0 0 1 14.887-14.888h99.55v25.459a37.8 37.8 0 0 0 37.756 37.759h25.952Zm0-157.656h-25.952a21.32 21.32 0 0 1-21.3-21.3V18.928h32.358a14.889 14.889 0 0 1 14.889 14.887Z"}),(0,a.jsx)("path",{"data-name":"Trazado 443",d:"M190.043 108.409h-2.858v-.481c0-4.811-3.442-8.716-7.847-8.89-3.582-.139-7.333-.09-11.4.146v-8.975a9.1 9.1 0 0 0-3.651-7.42 7.623 7.623 0 0 0-8.069-.585 103.462 103.462 0 0 0-20.433 14.719 147.056 147.056 0 0 0-10.4 10.7 128.076 128.076 0 0 0-16.659-5.074 127.9 127.9 0 0 0-34.506-3.51c-4.378.2-7.8 4.1-7.8 8.888v.483h-2.858c-4.489 0-8.141 3.989-8.141 8.892v71.865c0 8.348 6.119 15.14 13.641 15.14h35.989a17.914 17.914 0 0 1 12.641 5.463 12.749 12.749 0 0 0 9.108 3.911h.024a12.907 12.907 0 0 0 9.054-3.9 17.918 17.918 0 0 1 12.68-5.474h35.987c7.522 0 13.641-6.792 13.641-15.14v-71.858c-.006-4.908-3.657-8.9-8.143-8.9Zm-68.633 79.066a124.047 124.047 0 0 0-12.692-3.692 127.989 127.989 0 0 0-28.66-3.509c-1.549 0-2.857-1.653-2.857-3.607v-66.1h2.114a117.162 117.162 0 0 1 42.1 7.846Zm54.992-10.809c0 1.955-1.308 3.607-2.88 3.607a129.374 129.374 0 0 0-26.5 2.984 89.847 89.847 0 0 1 13.362-9.124 15.293 15.293 0 0 0 7.55-13.56v-49.836a112.11 112.11 0 0 1 8.463-.239Zm-19.251-16.057a3.781 3.781 0 0 1-1.6 3.282 100.834 100.834 0 0 0-19.759 14.271 113.862 113.862 0 0 0-3.6 3.464v-64.967a131.421 131.421 0 0 1 10.636-10.965l.011-.009a91.536 91.536 0 0 1 14.314-10.886Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 897",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},49563:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 432",d:"M235.994 77.198c.387-15.753.958-32.242-.5-47.941-1.093-11.756-6.192-21.735-17.831-25.916a42.553 42.553 0 0 0-5.016-1.447c-6.55-1.478-13.432-1.6-20.09-1.8-11.727-.343-23.45.366-35.176.314-23.494-.1-46.986.322-70.479.414q-4.228.018-8.456.017H36.24A17.26 17.26 0 0 0 19 18.08v220.679A17.26 17.26 0 0 0 36.24 256h182.54a17.26 17.26 0 0 0 17.24-17.241V128.816c-.002-17.183-.452-34.459-.026-51.618ZM215.068 223.19a14.888 14.888 0 0 1-14.889 14.888H51.81a14.888 14.888 0 0 1-14.888-14.888V33.662A14.888 14.888 0 0 1 51.81 18.774h99.549v25.459a37.8 37.8 0 0 0 37.756 37.759h25.953Zm0-157.656h-25.952a21.32 21.32 0 0 1-21.3-21.3V18.775h32.358a14.888 14.888 0 0 1 14.894 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 433",d:"M142.243 86.687a7.664 7.664 0 0 0-5.873.748 7.728 7.728 0 0 0-3.655 4.732l-27.607 102.662a7.778 7.778 0 0 0 5.464 9.515 7.487 7.487 0 0 0 2.023.276 7.828 7.828 0 0 0 3.885-1.039 7.641 7.641 0 0 0 3.63-4.712l27.606-102.662a7.781 7.781 0 0 0-5.474-9.52Z"}),(0,a.jsx)("path",{"data-name":"Trazado 434",d:"m76.404 145.413 20.711-20.71a7.78 7.78 0 0 0 0-10.99 7.8 7.8 0 0 0-10.985 0l-.224.278c-.44.642-3.849 3.92-7.146 7.09-17.4 16.732-21.453 21.528-21.139 24-.5 3.044 4.393 8.7 20.83 24.509 3.423 3.292 6.963 6.7 7.418 7.429l.213.275a7.338 7.338 0 0 0 5.313 2.366 7.168 7.168 0 0 0 1.8-.232 8.626 8.626 0 0 0 6-5.946 7.17 7.17 0 0 0-2.045-7.1Z"}),(0,a.jsx)("path",{"data-name":"Trazado 435",d:"M159.273 111.622a8.619 8.619 0 0 0-5.932 6 7.187 7.187 0 0 0 2.121 7.1l20.906 20.685-20.9 20.9a7.5 7.5 0 0 0-1.677 8.451 7.574 7.574 0 0 0 6.88 4.852 2.3 2.3 0 0 0 .538.062c2.979 0 8.8-5.225 24.1-21.218 3.243-3.389 6.6-6.894 7.281-7.345l.282-.224a7.734 7.734 0 0 0 2.277-5.524 7.746 7.746 0 0 0-2.308-5.523l-26.444-26.164a7.188 7.188 0 0 0-7.124-2.047Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 899",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},21733:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 447",d:"M179.66 125.384a51.282 51.282 0 0 0-1.483-3.533l8.145-10.875a7.2 7.2 0 0 0-.642-9.386l-14.659-14.767a7.2 7.2 0 0 0-9.387-.646l-10.881 8.2a51.149 51.149 0 0 0-3.53-1.482l-1.939-13.476a7.12 7.12 0 0 0-7.15-6.163h-20.755a7.156 7.156 0 0 0-7.166 6.16l-1.941 13.479q-1.8.675-3.532 1.483l-10.929-8.2a7.2 7.2 0 0 0-9.391.646l-14.654 14.653a7.2 7.2 0 0 0-.648 9.388l8.2 10.881a51.536 51.536 0 0 0-1.482 3.53l-13.474 1.939a7.181 7.181 0 0 0-6.165 7.15v20.7a7.186 7.186 0 0 0 6.16 7.165l13.479 1.939q.675 1.8 1.484 3.535l-8.2 10.98a7.2 7.2 0 0 0 .646 9.391l14.654 14.653a7.2 7.2 0 0 0 9.387.647l10.882-8.2a50.342 50.342 0 0 0 3.528 1.483l1.94 13.474a7.185 7.185 0 0 0 7.081 6.165h20.771a7.22 7.22 0 0 0 7.166-6.16l1.941-13.479a50.349 50.349 0 0 0 3.531-1.484l10.875 8.143a7.2 7.2 0 0 0 9.392-.646l14.654-14.654a7.2 7.2 0 0 0 .65-9.381l-8.1-10.828a50.638 50.638 0 0 0 1.483-3.535l13.474-1.938a7.182 7.182 0 0 0 6.166-7.15v-20.77a7.13 7.13 0 0 0-6.093-7.1Zm-12.348 30.522a42.91 42.91 0 0 1-3.577 9.063 7.2 7.2 0 0 0 .038 7.61l7.2 9.616-5.855 5.973-9.47-7.247-.139-.1a7.179 7.179 0 0 0-7.534-.038 39.415 39.415 0 0 1-9.257 3.8 7.172 7.172 0 0 0-5.159 5.873l-1.707 11.559h-8.267l-1.709-11.767a7.173 7.173 0 0 0-5.178-5.883 39.4 39.4 0 0 1-9.232-3.8 7.235 7.235 0 0 0-7.666.335l-9.5 7.124-5.972-5.855 7.245-9.47.09-.13a7.156 7.156 0 0 0 .052-7.583 43.013 43.013 0 0 1-3.81-9.216 7.17 7.17 0 0 0-5.872-5.161l-11.559-1.7v-8.26l11.768-1.708a7.178 7.178 0 0 0 5.885-5.187 42.913 42.913 0 0 1 3.577-9.167 7.2 7.2 0 0 0-.041-7.6l-7.344-9.613 5.982-5.985 9.484 7.256.139.1a7.19 7.19 0 0 0 7.534.037 39.448 39.448 0 0 1 9.257-3.8 7.168 7.168 0 0 0 5.16-5.872l1.7-11.559h8.268l1.708 11.768a7.179 7.179 0 0 0 5.178 5.883 39.363 39.363 0 0 1 9.232 3.793 7.237 7.237 0 0 0 7.668-.333l9.5-7.125 5.971 5.855-7.252 9.479a7.147 7.147 0 0 0-.511 7.865 42.925 42.925 0 0 1 3.81 9.217 7.173 7.173 0 0 0 5.877 5.162l11.792 1.712.117 8.208-11.746 1.706a7.179 7.179 0 0 0-5.879 5.17Z"}),(0,a.jsx)("path",{"data-name":"Trazado 448",d:"M127.721 119.558a25.249 25.249 0 0 0-25.22 25.22 25.249 25.249 0 0 0 25.22 25.221 25.249 25.249 0 0 0 25.221-25.221 25.249 25.249 0 0 0-25.221-25.22Zm12.6 25.22a12.609 12.609 0 0 1-12.6 12.6 12.61 12.61 0 0 1-12.6-12.6 12.611 12.611 0 0 1 12.6-12.6 12.61 12.61 0 0 1 12.6 12.6Z"}),(0,a.jsx)("path",{"data-name":"Trazado 449",d:"M235.999 77.198c.388-15.754.957-32.242-.5-47.941-1.094-11.755-6.193-21.735-17.831-25.914a42.8 42.8 0 0 0-5.016-1.448c-6.551-1.478-13.433-1.6-20.09-1.8-11.727-.344-23.449.366-35.177.314-23.493-.1-46.985.323-70.479.414Q82.678.84 78.451.84h-42.21A17.261 17.261 0 0 0 19 18.08v220.68A17.261 17.261 0 0 0 36.241 256h182.541a17.26 17.26 0 0 0 17.24-17.24V128.815c.002-17.182-.445-34.458-.023-51.617Zm-20.922 145.988a14.887 14.887 0 0 1-14.888 14.887H51.821a14.888 14.888 0 0 1-14.888-14.887V33.662a14.888 14.888 0 0 1 14.888-14.888h99.547v25.459a37.8 37.8 0 0 0 37.758 37.759h25.951Zm0-157.656h-25.951a21.321 21.321 0 0 1-21.3-21.3V18.771h32.359a14.888 14.888 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 900",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},95232:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 438",d:"M126.658 93.01c-30.337 0-62.989 7.141-62.989 22.82v79.924c0 15.678 32.651 22.82 62.989 22.82s62.989-7.142 62.989-22.82V115.83c-.001-15.679-32.652-22.82-62.989-22.82Zm49.139 102.743c-.12 2.517-15.67 10.8-49.139 10.8-33.187 0-48.925-8.288-49.14-10.8v-25.689c11.441 4.913 29.524 7.81 49.14 7.81 19.684 0 37.763-2.908 49.139-7.843Zm0-40.7c-.223 2.52-15.96 10.8-49.139 10.8s-48.925-8.29-49.14-10.8v-24.252c11.42 4.937 29.5 7.846 49.14 7.846 19.684 0 37.763-2.907 49.139-7.842Zm-49.139-28.42c-33.187 0-48.925-8.289-49.14-10.8.214-2.518 15.952-10.807 49.14-10.807s48.925 8.289 49.139 10.8c-.214 2.515-15.952 10.8-49.139 10.8Z"}),(0,a.jsx)("path",{"data-name":"Trazado 439",d:"M89.357 178.684a9.167 9.167 0 0 0-9.158 9.156 9.167 9.167 0 0 0 9.158 9.158 9.166 9.166 0 0 0 9.158-9.158 9.167 9.167 0 0 0-9.158-9.156Z"}),(0,a.jsx)("path",{"data-name":"Trazado 440",d:"M89.357 140.292a9.167 9.167 0 0 0-9.158 9.157 9.167 9.167 0 0 0 9.158 9.158 9.167 9.167 0 0 0 9.158-9.158 9.168 9.168 0 0 0-9.158-9.157Z"}),(0,a.jsx)("path",{"data-name":"Trazado 441",d:"M235.992 77.197c.387-15.753.958-32.242-.5-47.941-1.093-11.755-6.192-21.736-17.831-25.914a42.8 42.8 0 0 0-5.016-1.448c-6.549-1.478-13.432-1.6-20.09-1.8-11.727-.344-23.448.366-35.176.314-23.494-.1-46.986.323-70.478.414q-4.229.018-8.457.017H36.239a17.26 17.26 0 0 0-17.24 17.24V238.76a17.26 17.26 0 0 0 17.24 17.241h182.539a17.261 17.261 0 0 0 17.241-17.241V128.814c-.002-17.183-.449-34.454-.027-51.617ZM215.07 223.184a14.888 14.888 0 0 1-14.888 14.888H51.814a14.888 14.888 0 0 1-14.889-14.889V33.66a14.888 14.888 0 0 1 14.889-14.888h99.548V44.23a37.8 37.8 0 0 0 37.756 37.758h25.952Zm0-157.656h-25.952a21.32 21.32 0 0 1-21.295-21.3V18.77h32.359a14.888 14.888 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 901",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},27529:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 450",d:"M235.991 77.198c.388-15.754.958-32.241-.5-47.941-1.094-11.755-6.193-21.736-17.831-25.914a42.421 42.421 0 0 0-5.017-1.448c-6.549-1.478-13.432-1.6-20.09-1.8-11.726-.343-23.448.365-35.175.314-23.493-.1-46.985.323-70.479.414q-4.228.016-8.456.017H36.237a17.26 17.26 0 0 0-17.24 17.241v220.678A17.259 17.259 0 0 0 36.237 256h182.541a17.259 17.259 0 0 0 17.241-17.241V128.816c-.007-17.183-.454-34.458-.028-51.618Zm-20.922 145.988a14.888 14.888 0 0 1-14.888 14.888H51.813a14.888 14.888 0 0 1-14.888-14.888V33.662a14.888 14.888 0 0 1 14.888-14.888h99.548v25.459a37.8 37.8 0 0 0 37.757 37.759h25.951Zm0-157.656h-25.951a21.321 21.321 0 0 1-21.3-21.3V18.771h32.359a14.888 14.888 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 451",d:"M182.548 83.841a8.758 8.758 0 0 0-6.293 2.408 8.758 8.758 0 0 0-2.721 6.164c-.094 3.782-4.306 9.1-10.941 11.1-12.038 3.631-30.066 2.206-43.232 1.163-4.439-.351-8.273-.655-11.49-.746-10.771-.3-17.189 3.835-20.7 7.365-5.5 5.526-7.347 12.842-7.571 20.381-.1 3.232-.545 6.4 1.436 9.188a8.729 8.729 0 0 0 7.057 3.66h1.932c3.206 0 5.272-2.557 6.179-5.394.88-2.755.889-5.681 1.086-8.538.174-2.509.518-5.1 2.416-6.953 1.544-1.508 4.119-2.224 7.659-2.122 2.773.08 6.4.366 10.6.7 2.125.168 4.374.344 6.7.509a283.562 283.562 0 0 1-1.593 29.877h-25.08a8.8 8.8 0 0 0-8.8 8.8 8.8 8.8 0 0 0 8.8 8.8h22.449c-2.426 12.2-6.025 22.628-11.124 27.883-2.627 2.707-4.779 3.054-6.362 3.054-7.431 0-8.671-5.945-8.75-9.4a8.8 8.8 0 0 0-8.8-8.8 8.8 8.8 0 0 0-8.8 8.792 32.28 32.28 0 0 0 3.064 12.92c4.373 9.077 12.64 14.074 23.28 14.075a26.113 26.113 0 0 0 18.985-8.4c8.565-8.827 13.551-24.242 16.438-40.135h18.471a8.8 8.8 0 0 0 8.8-8.8 8.8 8.8 0 0 0-8.8-8.8h-16.049c1.153-11.616 1.425-22.208 1.444-29.165 8.812-.018 17.721-.757 25.42-3.079 13.5-4.074 23.143-15.385 23.447-27.508a8.8 8.8 0 0 0-8.557-8.999Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 902",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},60527:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 422",d:"M236.186 77.259c.389-15.768.96-32.27-.5-47.984-1.1-11.766-6.2-21.754-17.847-25.937a42.726 42.726 0 0 0-5.02-1.449c-6.556-1.479-13.445-1.6-20.108-1.8-11.737-.344-23.47.366-35.207.314-23.515-.1-47.027.324-70.541.415q-4.232.017-8.464.017H36.256A17.275 17.275 0 0 0 19 18.091v220.875a17.2 17.2 0 0 0 5.19 12.315v.033h.037a17.19 17.19 0 0 0 12.026 4.906h182.7a17.275 17.275 0 0 0 17.256-17.256V128.928c.002-17.198-.444-34.49-.023-51.669Zm-68.228-58.476h32.387a14.9 14.9 0 0 1 14.9 14.9v31.9h-25.974a21.339 21.339 0 0 1-21.313-21.315Zm-116.114 0h99.637v25.481a37.835 37.835 0 0 0 37.79 37.792h25.974v94.9l-15.227-26.374a28.352 28.352 0 0 0-24.8-14.32 28.387 28.387 0 0 0-24.85 14.4l-10.021 17.81-27.633-47.861a28.351 28.351 0 0 0-24.8-14.319 28.389 28.389 0 0 0-24.849 14.4l-26.117 46.422V33.689a14.9 14.9 0 0 1 14.9-14.9Zm-9.864 215.74a14.9 14.9 0 0 1-1.691-1.746l-1.562-34.31 39.036-69.391a11.6 11.6 0 0 1 10.146-5.857 11.6 11.6 0 0 1 10.146 5.857L159.442 235.4Zm158.364 3.754h-19.7l-30.466-52.769 14.889-26.465a11.6 11.6 0 0 1 10.146-5.858 11.6 11.6 0 0 1 10.146 5.858l29.884 51.762v12.57a14.9 14.9 0 0 1-14.9 14.9Z"}),(0,a.jsx)("path",{"data-name":"Trazado 423",d:"M88.377 96.213a33.38 33.38 0 0 0 33.343-33.344 33.381 33.381 0 0 0-33.343-33.344 33.38 33.38 0 0 0-33.344 33.344 33.381 33.381 0 0 0 33.344 33.344Zm0-49.763a16.438 16.438 0 0 1 16.418 16.419 16.438 16.438 0 0 1-16.418 16.419 16.438 16.438 0 0 1-16.419-16.419A16.437 16.437 0 0 1 88.377 46.45Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 903",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},69812:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 467",d:"M235.995 77.198c.388-15.753.958-32.241-.5-47.941-1.094-11.756-6.192-21.735-17.831-25.916a42.81 42.81 0 0 0-5.016-1.447c-6.551-1.479-13.433-1.6-20.09-1.8-11.727-.343-23.449.364-35.176.313-23.494-.1-46.986.324-70.48.415q-4.226.015-8.455.017H36.241a17.26 17.26 0 0 0-17.24 17.241v220.678a17.26 17.26 0 0 0 17.24 17.241h182.541a17.26 17.26 0 0 0 17.241-17.241V128.816c-.001-17.183-.447-34.459-.028-51.618Zm-20.921 145.989a14.888 14.888 0 0 1-14.887 14.887H51.817a14.888 14.888 0 0 1-14.888-14.887V33.662a14.888 14.888 0 0 1 14.888-14.888h99.548v25.458a37.8 37.8 0 0 0 37.757 37.76h25.952Zm0-157.657h-25.952a21.321 21.321 0 0 1-21.3-21.3V18.772h32.358a14.889 14.889 0 0 1 14.888 14.887Z"}),(0,a.jsx)("path",{"data-name":"Trazado 468",d:"M167.462 106.737h-11.678V94.561a28.113 28.113 0 0 0-28.066-27.984h-.044a28.117 28.117 0 0 0-28.069 27.99v12.17H87.924a23.834 23.834 0 0 0-23.776 23.767v45.491a23.675 23.675 0 0 0 22.986 23.75l40.558 7.889 40.559-7.889a23.675 23.675 0 0 0 22.986-23.753V130.5a23.832 23.832 0 0 0-23.776-23.764Zm-52.872-12.17a13.109 13.109 0 0 1 13.091-13.042h.023a13.106 13.106 0 0 1 13.087 13.042v12.17h-26.2Zm61.656 81.424a8.831 8.831 0 0 1-8.788 8.821h-.725l-39.043 7.592-38.843-7.553-.4-.039h-.515a8.833 8.833 0 0 1-8.794-8.822V130.5a8.831 8.831 0 0 1 8.789-8.82h79.529a8.831 8.831 0 0 1 8.794 8.821Z"}),(0,a.jsx)("path",{"data-name":"Trazado 469",d:"M127.556 141.528a12.366 12.366 0 0 0-12.353 12.351 12.322 12.322 0 0 0 4.507 9.544v7.2a7.547 7.547 0 0 0 7.517 7.512h.659a7.547 7.547 0 0 0 7.511-7.517v-7.191a12.324 12.324 0 0 0 4.507-9.542 12.367 12.367 0 0 0-12.349-12.357Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 904",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},46454:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 452",d:"M235.994 77.199c.388-15.754.958-32.243-.5-47.941-1.094-11.756-6.193-21.735-17.831-25.915a42.633 42.633 0 0 0-5.017-1.448c-6.549-1.478-13.432-1.6-20.09-1.8-11.726-.345-23.448.364-35.175.314-23.493-.1-46.985.322-70.479.414q-4.228.015-8.456.017H36.243a17.26 17.26 0 0 0-17.241 17.24v220.679A17.26 17.26 0 0 0 36.243 256h182.541a17.26 17.26 0 0 0 17.241-17.241V128.816c-.006-17.183-.453-34.459-.031-51.617Zm-20.922 145.986a14.888 14.888 0 0 1-14.888 14.888H51.816a14.888 14.888 0 0 1-14.888-14.888V33.662a14.887 14.887 0 0 1 14.888-14.887h99.548v25.463a37.8 37.8 0 0 0 37.758 37.759h25.951Zm0-157.656h-25.951a21.321 21.321 0 0 1-21.3-21.3V18.771h32.359a14.887 14.887 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 453",d:"m84.317 135.27 10.527-10.778 10.528 10.778a2.112 2.112 0 0 0 1.512.637 2.113 2.113 0 0 0 1.512-.637l8.915-9.127a2.114 2.114 0 0 0 0-2.954l-10.6-10.849 10.6-10.851a2.114 2.114 0 0 0 0-2.954l-8.915-9.126a2.175 2.175 0 0 0-3.025 0l-10.528 10.778-10.527-10.778a2.109 2.109 0 0 0-1.511-.637 2.113 2.113 0 0 0-1.512.637l-8.916 9.126a2.116 2.116 0 0 0 0 2.954l10.6 10.851-10.6 10.849a2.116 2.116 0 0 0 0 2.954l8.916 9.127a2.174 2.174 0 0 0 3.024 0Z"}),(0,a.jsx)("path",{"data-name":"Trazado 454",d:"m181.539 98.535-8.915-9.126a2.176 2.176 0 0 0-3.024 0l-10.523 10.778-10.528-10.778a2.114 2.114 0 0 0-1.512-.637 2.112 2.112 0 0 0-1.512.637l-8.915 9.126a2.114 2.114 0 0 0 0 2.954l10.6 10.851-10.6 10.849a2.114 2.114 0 0 0 0 2.954l8.915 9.127a2.175 2.175 0 0 0 3.025 0l10.528-10.778 10.523 10.778a2.114 2.114 0 0 0 1.511.637 2.114 2.114 0 0 0 1.511-.637l8.915-9.127a2.114 2.114 0 0 0 0-2.954l-10.594-10.849 10.594-10.851a2.114 2.114 0 0 0 0-2.954Z"}),(0,a.jsx)("path",{"data-name":"Trazado 455",d:"M169.529 160.901a66.964 66.964 0 0 0-40.3-13.344 8.524 8.524 0 0 0-1.513.143 8.5 8.5 0 0 0-1.513-.143 66.96 66.96 0 0 0-40.3 13.344 8.455 8.455 0 0 0-1.729 11.83 8.442 8.442 0 0 0 6.786 3.406 8.417 8.417 0 0 0 5.046-1.677 50.177 50.177 0 0 1 30.2-9.993 8.478 8.478 0 0 0 1.513-.143 8.479 8.479 0 0 0 1.513.143 50.182 50.182 0 0 1 30.2 9.993 8.416 8.416 0 0 0 5.044 1.677 8.44 8.44 0 0 0 6.786-3.406 8.454 8.454 0 0 0-1.733-11.83Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 905",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},84820:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1552",children:[(0,a.jsx)("path",{"data-name":"Trazado 470",d:"M235.996 77.198c.387-15.753.958-32.242-.5-47.941-1.093-11.756-6.193-21.735-17.832-25.915a42.412 42.412 0 0 0-5.016-1.447c-6.549-1.479-13.431-1.6-20.09-1.8-11.726-.345-23.448.365-35.176.314-23.494-.1-46.986.322-70.479.414q-4.228.016-8.456.017H36.241A17.26 17.26 0 0 0 19 18.082v220.679a17.26 17.26 0 0 0 17.241 17.24h182.54a17.26 17.26 0 0 0 17.241-17.24V128.816c-.002-17.184-.448-34.459-.026-51.618Zm-20.921 145.986a14.889 14.889 0 0 1-14.888 14.889H51.818a14.89 14.89 0 0 1-14.889-14.888V33.662a14.888 14.888 0 0 1 14.889-14.888h99.548v25.458a37.8 37.8 0 0 0 37.756 37.759h25.952Zm0-157.657h-25.952a21.32 21.32 0 0 1-21.295-21.3V18.769h32.359a14.887 14.887 0 0 1 14.888 14.889Z"}),(0,a.jsx)("path",{"data-name":"Trazado 471",d:"m170.219 93.84-67.656 9.02-.128.016a13.3 13.3 0 0 0-12.025 13.473v55.664a22.934 22.934 0 0 0-7.98-1.435 23.085 23.085 0 0 0-23.061 23.061 23.085 23.085 0 0 0 23.06 23.059 23.084 23.084 0 0 0 23.059-23.058v-43.227c.361-4.418 1.57-5.6 2.015-5.89l58.69-7.827a1.443 1.443 0 0 1 .764.238 1.855 1.855 0 0 1 .25 1.174v23.663a23 23 0 0 0-7.981-1.434 23.086 23.086 0 0 0-23.059 23.06 23.085 23.085 0 0 0 23.059 23.058 23.085 23.085 0 0 0 23.059-23.058v-77.608c0-4.089-1.2-7.245-3.565-9.382a11.106 11.106 0 0 0-8.5-2.568ZM82.43 201.614a7.989 7.989 0 0 1-7.979-7.979 7.989 7.989 0 0 1 7.979-7.98 7.99 7.99 0 0 1 7.98 7.98 7.988 7.988 0 0 1-7.984 7.98Zm84.776-82.429c-.23 1.876-1.1 2.3-1.539 2.369l-57.957 7.728-.134.018a6.169 6.169 0 0 1-2.088 0v-8.793c0-2.208.833-2.8 1.762-3.063l58.3-7.776a2.29 2.29 0 0 1 1.444.261 1.972 1.972 0 0 1 .215 1.139Zm-7.979 72.19a7.991 7.991 0 0 1-7.98-7.981 7.991 7.991 0 0 1 7.98-7.981 7.991 7.991 0 0 1 7.981 7.979 7.993 7.993 0 0 1-7.989 7.984Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 914",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},40599:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 463",d:"M235.994 77.198c.387-15.753.958-32.242-.5-47.941-1.092-11.756-6.191-21.735-17.831-25.915a42.409 42.409 0 0 0-5.016-1.447c-6.549-1.479-13.432-1.6-20.09-1.8-11.726-.345-23.448.365-35.176.314-23.494-.1-46.985.322-70.479.414q-4.228.016-8.456.017H36.24A17.26 17.26 0 0 0 19 18.082v220.679a17.26 17.26 0 0 0 17.24 17.24h182.537a17.26 17.26 0 0 0 17.241-17.24V128.816c0-17.184-.441-34.459-.024-51.618Zm-20.921 145.986a14.89 14.89 0 0 1-14.888 14.889H51.816a14.889 14.889 0 0 1-14.888-14.888V33.662a14.888 14.888 0 0 1 14.888-14.888h99.547v25.458a37.8 37.8 0 0 0 37.757 37.759h25.953Zm0-157.657H189.12a21.32 21.32 0 0 1-21.3-21.3V18.769h32.359a14.887 14.887 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 464",d:"M151.162 161.256c-3.776-4.195-7.131-8.391-10.908-13a132.358 132.358 0 0 1-11.746-16.361c3.775-13.424 7.132-28.946 3.775-39.015-2.517-7.551-8.39-11.326-16.361-10.487-8.81 1.257-14.263 7.131-14.263 16.36-.42 10.488 5.873 23.913 12.586 35.24a167.721 167.721 0 0 1-6.293 16.78 171.9 171.9 0 0 1-8.39 17.62c-4.615.839-9.23 2.517-13.425 3.775-11.746 4.2-20.136 8.81-24.331 14.263-5.455 6.293-5.035 14.263.419 20.557 3.355 3.775 7.132 5.454 11.327 5.454a17.615 17.615 0 0 0 8.81-2.518q9.439-5.663 20.138-21.4a80.8 80.8 0 0 0 5.454-8.81c5.036-1.258 10.488-2.1 15.942-2.936a212.07 212.07 0 0 1 21.814-2.1c9.649 10.069 22.235 20.557 33.142 21.814 8.391 1.259 15.1-2.937 17.619-11.327 2.1-7.551-.838-13.845-8.39-18.039-8.392-4.612-22.237-5.87-36.919-5.87Zm-74.673 37.756c-3.357 1.677-3.776.839-4.615 0-1.677-2.1-1.677-2.937-.42-4.2 2.937-3.355 9.649-7.132 18.459-10.067-4.615 6.719-9.65 11.749-13.425 14.267Zm41.112-103.62c1.678 0 2.1 0 2.937 2.1 1.258 3.775.839 10.487-.839 18.877-3.356-7.131-5.033-13-5.033-17.2 0-3.357 1.256-3.357 2.934-3.776Zm4.615 69.219a32.317 32.317 0 0 0-6.293.84c1.259-2.937 2.937-5.874 4.2-9.23.839-2.1 2.1-5.034 3.356-8.391 2.517 3.776 5.035 7.132 6.713 9.65.838 1.257 2.517 3.355 4.615 5.873-4.2 0-8.4.84-12.592 1.258Zm62.088 17.2c-1.259 2.938-2.1 2.938-3.775 2.518-4.2-.419-9.649-3.776-15.941-9.229a52.838 52.838 0 0 1 17.619 3.776c2.515 1.676 2.515 2.1 2.1 2.935Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 906",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},72995:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 444",d:"M235.958 77.227C235.538 39.16 246.367-2.76 192.526.143 154.511.233 116.47.8 78.437.886h-42.2A17.258 17.258 0 0 0 19 18.127v220.64a17.258 17.258 0 0 0 17.239 17.237h182.507a17.258 17.258 0 0 0 17.238-17.237c.185-53.84-.297-107.719-.026-161.54ZM215.04 223.188a14.885 14.885 0 0 1-14.885 14.885H51.813a14.885 14.885 0 0 1-14.885-14.885V33.7a14.885 14.885 0 0 1 14.885-14.885h99.53c-1.936 29.6.791 61.322 37.752 63.206h25.946Zm0-157.627c-17.937-.276-46.31 4.9-47.237-21.294V18.814c50.266-.527 47.99-3.935 47.237 46.748Z"}),(0,a.jsx)("path",{"data-name":"Trazado 445",d:"M176.796 143.181h-38.679v-38.679a14.6 14.6 0 0 0-14.583-14.583 67.335 67.335 0 0 0-47.88 19.965c-.024.025-.05.049-.074.076-14.337 14.727-21.3 32.279-20.122 50.76 1.034 16.3 8.392 32.066 20.717 44.393s28.09 19.689 44.391 20.728q2.015.128 4.01.128c17.006 0 33.1-6.949 46.761-20.245.027-.025.052-.051.077-.077a67.334 67.334 0 0 0 19.965-47.881 14.6 14.6 0 0 0-14.583-14.584Zm-16.552 51.22c-25.22 24.5-55.446 16.923-72.862-.5s-24.991-47.642-.484-72.852a51.594 51.594 0 0 1 35.368-15.27v45.323a7.924 7.924 0 0 0 7.926 7.925h45.321a51.61 51.61 0 0 1-15.269 35.374Z"}),(0,a.jsx)("path",{"data-name":"Trazado 446",d:"M155.325 89.758a11.919 11.919 0 0 0-9.153 8.878 7.863 7.863 0 0 0-.234 2.081c.124 6-.008 10.657-.115 14.4-.229 8.036-.38 13.344 3.644 17.37 3.151 3.152 6.925 3.753 12.42 3.753 1.532 0 3.2-.047 5.02-.1 3.731-.106 8.373-.237 14.344-.116a8.047 8.047 0 0 0 2.08-.233 11.921 11.921 0 0 0 8.874-9.17c2.028-9.1-5.3-22.075-10.235-26.638-4.575-4.933-17.569-12.261-26.645-10.225Zm11.138 30.541c-1.668.045-3.5.076-4.892.1 0-1.416.049-3.18.1-4.827.073-2.561.165-5.778.17-9.627 3.109 1.117 7.123 3.316 8.387 4.679a7.184 7.184 0 0 0 1.073 1.079c1.4 1.3 3.612 5.322 4.728 8.433-3.823 0-7.018.086-9.564.163Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 907",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},34171:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 426",d:"M235.995 77.197c.388-15.753.958-32.242-.5-47.941-1.094-11.756-6.193-21.735-17.831-25.914a42.4 42.4 0 0 0-5.017-1.448c-6.549-1.478-13.432-1.6-20.09-1.8-11.726-.343-23.448.366-35.175.314-23.493-.1-46.985.323-70.479.414q-4.228.018-8.455.017H36.241A17.26 17.26 0 0 0 19 18.08v220.679A17.261 17.261 0 0 0 36.241 256h182.542a17.26 17.26 0 0 0 17.24-17.241V128.815c.001-17.183-.45-34.459-.028-51.618Zm-20.922 145.988a14.888 14.888 0 0 1-14.888 14.888H51.816a14.888 14.888 0 0 1-14.892-14.884V33.661a14.888 14.888 0 0 1 14.888-14.888h99.548v25.459a37.8 37.8 0 0 0 37.764 37.757h25.951Zm0-157.656h-25.949a21.321 21.321 0 0 1-21.3-21.3V18.77h32.359a14.888 14.888 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 427",d:"M130.985 69.292h-69.1a8.455 8.455 0 0 1-8.455-8.455 8.455 8.455 0 0 1 8.455-8.455h69.1a8.455 8.455 0 0 1 8.455 8.455 8.455 8.455 0 0 1-8.455 8.455Z"}),(0,a.jsx)("path",{"data-name":"Trazado 428",d:"M130.985 102.607h-69.1a8.455 8.455 0 0 1-8.455-8.455 8.455 8.455 0 0 1 8.455-8.455h69.1a8.455 8.455 0 0 1 8.455 8.455 8.455 8.455 0 0 1-8.455 8.455Z"}),(0,a.jsx)("path",{"data-name":"Trazado 429",d:"M183.891 136.458H61.876a8.455 8.455 0 0 1-8.455-8.455 8.455 8.455 0 0 1 8.455-8.455h122.011a8.455 8.455 0 0 1 8.455 8.455 8.456 8.456 0 0 1-8.451 8.455Z"}),(0,a.jsx)("path",{"data-name":"Trazado 430",d:"M183.891 170.309H61.876a8.455 8.455 0 0 1-8.455-8.455 8.455 8.455 0 0 1 8.455-8.455h122.011a8.455 8.455 0 0 1 8.455 8.455 8.456 8.456 0 0 1-8.451 8.455Z"}),(0,a.jsx)("path",{"data-name":"Trazado 431",d:"M183.891 204.164H61.876a8.455 8.455 0 0 1-8.455-8.455 8.455 8.455 0 0 1 8.455-8.455h122.011a8.455 8.455 0 0 1 8.455 8.455 8.456 8.456 0 0 1-8.451 8.455Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 908",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},30745:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 424",d:"M235.995 77.199c.387-15.754.958-32.242-.5-47.942-1.092-11.755-6.192-21.735-17.832-25.915a42.444 42.444 0 0 0-5.016-1.447c-6.549-1.479-13.432-1.6-20.09-1.8-11.726-.344-23.449.364-35.176.314-23.494-.1-46.985.322-70.479.414q-4.229.016-8.456.017H36.24A17.26 17.26 0 0 0 19 18.08v220.68A17.26 17.26 0 0 0 36.24 256h182.538a17.26 17.26 0 0 0 17.241-17.24V128.818c0-17.184-.441-34.459-.024-51.619Zm-20.922 145.987a14.889 14.889 0 0 1-14.886 14.887H51.816a14.89 14.89 0 0 1-14.889-14.888V33.664a14.888 14.888 0 0 1 14.888-14.888h99.547v25.458a37.8 37.8 0 0 0 37.757 37.76h25.952Zm0-157.657h-25.952a21.32 21.32 0 0 1-21.295-21.3V18.771h32.359a14.888 14.888 0 0 1 14.888 14.888Z"}),(0,a.jsx)("path",{"data-name":"Trazado 425",d:"m171.914 125.006-61.323-35.407a17.725 17.725 0 0 0-17.9 0 17.717 17.717 0 0 0-8.953 15.5v70.811a17.718 17.718 0 0 0 8.951 15.5 17.865 17.865 0 0 0 8.952 2.427 17.872 17.872 0 0 0 8.952-2.427l61.323-35.4a17.723 17.723 0 0 0 8.952-15.5 17.72 17.72 0 0 0-8.954-15.504Zm-8.455 16.362-61.323 35.4a.914.914 0 0 1-.992 0 .911.911 0 0 1-.5-.86v-70.811a.909.909 0 0 1 .5-.858 1 1 0 0 1 .5-.147.959.959 0 0 1 .489.146l61.323 35.407a.909.909 0 0 1 .5.858.91.91 0 0 1-.5.865Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 909",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},84033:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 461",d:"M235.995 77.198c.386-15.753.957-32.242-.5-47.942-1.094-11.755-6.193-21.735-17.832-25.914a42.537 42.537 0 0 0-5.017-1.448c-6.549-1.479-13.432-1.6-20.09-1.8-11.726-.343-23.448.366-35.176.314-23.494-.1-46.985.324-70.479.415Q82.673.84 78.445.84H36.239a17.26 17.26 0 0 0-17.24 17.243v220.678a17.26 17.26 0 0 0 17.24 17.24h182.539a17.258 17.258 0 0 0 17.24-17.24V128.815c.002-17.183-.44-34.458-.023-51.617Zm-20.922 145.988a14.888 14.888 0 0 1-14.888 14.888H51.817a14.888 14.888 0 0 1-14.888-14.888V33.661a14.889 14.889 0 0 1 14.889-14.889h99.546v25.459a37.8 37.8 0 0 0 37.757 37.758h25.952Zm0-157.657h-25.952a21.32 21.32 0 0 1-21.294-21.3V18.771h32.359a14.889 14.889 0 0 1 14.889 14.889Z"}),(0,a.jsx)("path",{"data-name":"Trazado 462",d:"M192.898 109.951H62.537a8.455 8.455 0 0 0-8.455 8.455v99.762a8.456 8.456 0 0 0 8.456 8.457h130.36a8.456 8.456 0 0 0 8.455-8.455v-99.763a8.455 8.455 0 0 0-8.456-8.456ZM70.992 160.115h26.543v16.346H70.992Zm43.453 0h26.544v16.346h-26.544Zm43.454 0h26.544v16.346h-26.544Zm26.544-16.91h-26.544v-16.344h26.544Zm-43.454 0h-26.544v-16.344h26.544Zm-70-16.344h26.543v16.346H70.989Zm0 66.51h26.543v16.343H70.989Zm43.453 0h26.544v16.343h-26.544Zm70 16.343h-26.544v-16.343h26.544Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 911",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},52009:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{transform:"translate(3486.336 -3812.001)",children:[(0,a.jsx)("path",{"data-name":"Trazado 436",d:"M-3395.774 3897.42a17.685 17.685 0 0 0-5.245-10.691c-2.691-2.615-7.129-5.479-11.512-5.676-10-.465-18.68 6.74-19.754 16.366l-2.853 25.542a21.788 21.788 0 0 0-.126 2.327 21.263 21.263 0 0 0 21.193 21.28h.043a20.635 20.635 0 0 0 18.294-11.19 27.971 27.971 0 0 0 2.932-12.257c.2-5.784-.8-11.752-1.756-17.522-.475-2.872-.926-5.585-1.216-8.179Zm-18.24-3.68a4.229 4.229 0 0 1 4.224 4.224 4.23 4.23 0 0 1-4.224 4.225 4.231 4.231 0 0 1-4.225-4.225 4.23 4.23 0 0 1 4.226-4.224Zm0 40.129a10.573 10.573 0 0 1-10.561-10.561 10.572 10.572 0 0 1 10.561-10.56 10.573 10.573 0 0 1 10.561 10.56 10.574 10.574 0 0 1-10.56 10.561Z"}),(0,a.jsx)("circle",{"data-name":"Elipse 63",cx:2.111,cy:2.111,r:2.111,transform:"translate(-3416.125 3921.197)"}),(0,a.jsx)("path",{"data-name":"Trazado 437",d:"M-3250.337 3889.2c.387-15.754.958-32.242-.5-47.942-1.093-11.755-6.192-21.735-17.832-25.915a42.461 42.461 0 0 0-5.016-1.447c-6.549-1.479-13.432-1.6-20.09-1.8-11.727-.344-23.449.364-35.176.314-23.494-.1-46.986.322-70.479.414q-4.228.016-8.456.017h-42.206a17.26 17.26 0 0 0-17.241 17.24v220.68a17.26 17.26 0 0 0 17.241 17.24h182.54a17.26 17.26 0 0 0 17.241-17.24v-109.942c-.001-17.184-.448-34.459-.026-51.619Zm-20.922 145.987a14.888 14.888 0 0 1-14.886 14.887h-118.622v-21.342c.206.015.412.032.621.032h16.262a8.456 8.456 0 0 0 8.455-8.454 8.455 8.455 0 0 0-8.456-8.456h-16.261c-.209 0-.415.016-.621.031v-23.6c.206.015.412.032.621.032h16.262a8.455 8.455 0 0 0 8.455-8.455 8.455 8.455 0 0 0-8.455-8.455h-16.262c-.209 0-.415.017-.621.031v-20.75a20.4 20.4 0 0 1-9.259 2.222h-.043a21.069 21.069 0 0 1-7.607-1.45l-.567-.029h-16.257a8.454 8.454 0 0 0-8.455 8.456 8.454 8.454 0 0 0 8.455 8.454h16.261c.192 0 .379-.016.567-.028v23.187a8.726 8.726 0 0 0-.8-.04h-16.261a8.455 8.455 0 0 0-8.455 8.455 8.455 8.455 0 0 0 8.455 8.455h16.261c.269 0 .535-.016.8-.041v41.751h-12.839a14.89 14.89 0 0 1-14.889-14.886v-189.529a14.889 14.889 0 0 1 14.888-14.888h99.549v25.458a37.8 37.8 0 0 0 37.757 37.76h25.952Zm0-157.657h-25.952a21.319 21.319 0 0 1-21.3-21.3v-25.458h32.359a14.888 14.888 0 0 1 14.888 14.888Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 912",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},56673:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("g",{children:(0,a.jsx)("path",{d:"M235.3,72.5c-0.2-15.5-12.8-27.9-28.3-27.9h-78l-1.1-1.5c-5.1-9.3-14.5-15.5-25.1-16.6h-50c-15.6,0-28.3,12.6-28.3,28.3 c0,1,0.1,2,0.2,3v12.9c-11.6,3.9-19.4,14.8-19.4,27c0,0.6,0,1.2,0.1,1.7L14.8,202c0.6,15.4,13.2,27.5,28.6,27.5h168.9 c15.4,0,28-12.1,28.6-27.5l9.5-102.5c0-0.6,0.1-1.2,0.1-1.8C250.6,87.1,244.7,77.4,235.3,72.5z M32.5,88.4c11.7-3.3,12-11,12-11 h172c0.2,4.6,2.9,8.8,6.9,11H32.5z"})})}))}},51846:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"heal-icn",d:"m157.546 239.085-4.729-4.747-24.864-24.809-29.5 29.555a57.519 57.519 0 0 1-81.482 0 57.729 57.729 0 0 1 0-81.769l29.5-29.547-24.864-24.927-4.635-4.629a57.738 57.738 0 0 1 0-81.777c21.764-21.913 59.749-21.913 81.482 0l4.729 4.645 24.77 24.911 29.593-29.555c21.764-21.913 59.718-21.913 81.482 0a57.738 57.738 0 0 1 0 81.777l-29.5 29.555 24.864 24.793 4.635 4.755a57.718 57.718 0 1 1-81.482 81.769Zm13.654-23.036 4.572 4.629c12.15 12.028 33.006 12.028 45.031 0a31.967 31.967 0 0 0 0-44.957l-4.791-4.747ZM35.261 175.721a31.814 31.814 0 0 0 0 44.957c11.962 12.028 32.943 12.028 44.968 0l29.471-29.547-45-45.09Zm22.954-72.88 6.482 6.52 81.638 81.769 6.482 6.5 44.968-45.074-6.482-6.52-81.603-81.63-6.514-6.52Zm117.556-67.992-29.436 29.557 44.965 44.955 29.5-29.555a31.6 31.6 0 0 0 9.238-22.541 31.28 31.28 0 0 0-9.238-22.416 32.381 32.381 0 0 0-45.031 0Zm-140.51 0a31.211 31.211 0 0 0-9.3 22.416 31.525 31.525 0 0 0 9.3 22.541l4.729 4.762 44.843-45.09-4.6-4.629a31.61 31.61 0 0 0-44.968 0Zm105.562 118.465a12.731 12.731 0 1 1 12.746 12.892 12.816 12.816 0 0 1-12.746-12.892Zm-25.616-25.546a12.808 12.808 0 1 1 12.745 12.773 12.747 12.747 0 0 1-12.744-12.773Zm-25.49-25.679a12.746 12.746 0 1 1 12.714 12.9 12.8 12.8 0 0 1-12.714-12.901Z"}),(0,a.jsx)("path",{"data-name":"heal-icn - Contorno",d:"M198.286 256.5a57.755 57.755 0 0 1-41.094-17.062l-4.729-4.747-24.509-24.455-29.146 29.2a57.907 57.907 0 0 1-82.189 0A57.353 57.353 0 0 1 3.9 220.544a58.292 58.292 0 0 1-4.4-22.407 57.536 57.536 0 0 1 17.121-41.177l29.144-29.192-24.512-24.573-4.634-4.629a58.238 58.238 0 0 1 0-82.486A54.985 54.985 0 0 1 35.647 3.644 59.5 59.5 0 0 1 46.5.536a61.384 61.384 0 0 1 22.457 0A59.431 59.431 0 0 1 79.8 3.644a54.885 54.885 0 0 1 19.007 12.437l4.73 4.646 24.417 24.555 29.238-29.2a54.994 54.994 0 0 1 19.023-12.438A59.465 59.465 0 0 1 187.061.536a61.355 61.355 0 0 1 22.451 0 59.465 59.465 0 0 1 10.846 3.108 55 55 0 0 1 19.024 12.439 58.238 58.238 0 0 1 0 82.485l-29.143 29.2 24.515 24.445 4.631 4.751a57.534 57.534 0 0 1 17.115 41.173 58.292 58.292 0 0 1-4.4 22.407 58.2 58.2 0 0 1-53.811 35.956Zm-70.334-47.678 25.218 25.162 4.73 4.748a57.218 57.218 0 0 0 80.775-81.061l-.006-.006-4.632-4.752-25.216-25.144 29.852-29.909a57.238 57.238 0 0 0 0-81.069 54.007 54.007 0 0 0-18.681-12.217 58.461 58.461 0 0 0-10.663-3.055 60.354 60.354 0 0 0-22.084 0 58.461 58.461 0 0 0-10.663 3.055A54 54 0 0 0 157.9 16.788l-29.948 29.91-25.124-25.265-4.728-4.646A53.891 53.891 0 0 0 79.432 4.574a58.431 58.431 0 0 0-10.663-3.055 60.384 60.384 0 0 0-22.09 0 58.5 58.5 0 0 0-10.666 3.055 54 54 0 0 0-18.686 12.214 57.238 57.238 0 0 0 0 81.07l4.636 4.63 25.217 25.28-29.851 29.9A56.544 56.544 0 0 0 .5 198.137a57.3 57.3 0 0 0 4.327 22.024 56.362 56.362 0 0 0 12.5 18.568 57.019 57.019 0 0 0 80.776 0Zm70.381 21.377a33.611 33.611 0 0 1-12.273-2.293 31.079 31.079 0 0 1-10.641-6.876l-4.92-4.982 45.513-45.78 5.146 5.1a31.859 31.859 0 0 1 6.984 10.44 32.695 32.695 0 0 1-6.983 35.226 30.651 30.651 0 0 1-10.571 6.877 33.426 33.426 0 0 1-12.255 2.288Zm-22.209-9.874a30.085 30.085 0 0 0 10.3 6.653 32.98 32.98 0 0 0 23.8 0 29.659 29.659 0 0 0 10.229-6.654 31.294 31.294 0 0 0 0-44.25l-4.435-4.394-44.118 44.37Zm-118.4 9.874a33.463 33.463 0 0 1-12.264-2.293 30.418 30.418 0 0 1-10.554-6.879 32.165 32.165 0 0 1 0-45.664L64.7 145.332l45.707 45.8-29.82 29.9a30.63 30.63 0 0 1-10.593 6.874 33.555 33.555 0 0 1-12.273 2.293ZM64.7 146.75l-29.084 29.324a31.314 31.314 0 0 0 0 44.25 29.428 29.428 0 0 0 10.212 6.655 33.006 33.006 0 0 0 23.8 0 29.635 29.635 0 0 0 10.246-6.653l29.115-29.194Zm88.119 51.593-6.836-6.859-81.64-81.769-6.834-6.874 45.675-45.663 6.867 6.874 81.607 81.636 6.834 6.874Zm-93.9-95.5 6.132 6.163 81.637 81.769 6.129 6.149 44.262-44.367-6.131-6.167-81.605-81.632-6.16-6.166Zm94.65 63.863a13.334 13.334 0 0 1-13.245-13.391 13.231 13.231 0 1 1 13.245 13.391Zm0-25.664a12.316 12.316 0 0 0-12.245 12.273 12.23 12.23 0 1 0 20.867-8.667 12.1 12.1 0 0 0-8.622-3.607Zm-25.616 0a13 13 0 0 1-5.134-1.051 13.319 13.319 0 0 1-4.211-2.855 13.254 13.254 0 0 1 9.345-22.648 13.351 13.351 0 0 1 9.44 3.857 13.2 13.2 0 0 1 0 18.792 13.32 13.32 0 0 1-9.44 3.904Zm0-25.554a12.277 12.277 0 0 0 0 24.554 12.326 12.326 0 0 0 8.737-3.614 12.2 12.2 0 0 0 0-17.371 12.357 12.357 0 0 0-8.737-3.57Zm-25.522 0A13.347 13.347 0 0 1 93.1 92.729a13.255 13.255 0 0 1 22.607 9.36 13.353 13.353 0 0 1-13.276 13.398Zm0-25.664a12.3 12.3 0 0 0-12.214 12.265 12.246 12.246 0 1 0 24.49 0 12.331 12.331 0 0 0-12.277-12.265Zm88.869 20.245-45.672-45.663 29.788-29.909a30.775 30.775 0 0 1 10.606-6.947 33.717 33.717 0 0 1 24.527 0 30.776 30.776 0 0 1 10.607 6.947 31.725 31.725 0 0 1 6.981 10.426 32.714 32.714 0 0 1-6.983 35.237Zm-44.259-45.663 44.262 44.25 29.145-29.2a31.714 31.714 0 0 0 6.765-34.15 30.732 30.732 0 0 0-6.764-10.1 29.784 29.784 0 0 0-10.266-6.723 32.717 32.717 0 0 0-23.792 0 29.782 29.782 0 0 0-10.265 6.723ZM39.989 85.278l-5.083-5.119a32.15 32.15 0 0 1 0-45.661 32.11 32.11 0 0 1 45.679 0l4.952 4.98Zm17.725-59.32a30.554 30.554 0 0 0-22.095 9.24l-.006.006a31.314 31.314 0 0 0 0 44.247l4.376 4.408 44.138-44.381-4.256-4.28a30.629 30.629 0 0 0-22.157-9.24Z",fill:"rgba(0,0,0,0)"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 879",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},84570:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 30",d:"M.002 128.002a128 128 0 0 1 128-128 128 128 0 0 1 128 128 128 128 0 0 1-128 128 127.993 127.993 0 0 1-128-128Zm25 0a103.115 103.115 0 0 0 103 103 103.116 103.116 0 0 0 103-103 103.117 103.117 0 0 0-103-103A103.116 103.116 0 0 0 25 128.002Zm75.211 58.614c0-10.971 9.48-20.238 20.342-20.238a20.541 20.541 0 0 1 20.133 20.133c0 10.966-9.377 20.447-20.133 20.447-10.864 0-20.344-9.481-20.344-20.342Zm7.457-33.227v-36.213h10.223c20.557 0 31.633-6.495 31.633-18.956 0-11.5-10.971-17.675-31.312-17.675-5.748 0-11.715.423-16.186.846l-2.023-28.008a165.912 165.912 0 0 1 21.508-1.386c37.17 0 58.684 17.147 58.684 44.094 0 24.6-16.4 40.365-46.008 45.051l-.852 12.247Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 917",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},13065:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{fill:"currentcolor",d:"M145.4,20C86.3,20.1,38.3,67.6,37.5,126.6L24.8,114c-5.2-5-13.4-4.9-18.5,0.2 c-4.9,5.1-4.9,13.2,0,18.2l37,37c5.1,5.1,13.3,5.2,18.5,0.1c0,0,0.1-0.1,0.1-0.1l37-37c4.9-5.3,4.6-13.5-0.7-18.5 c-5-4.7-12.8-4.7-17.8,0l-13.8,13.8c0.2-43.4,35.4-78.5,78.8-78.5c43.5,0,78.8,35.3,78.8,78.8c0,43.5-35.3,78.8-78.8,78.8 c-8.1,0-14.6,6.5-14.6,14.6s6.5,14.6,14.6,14.6c59.6-0.1,107.8-48.4,107.9-107.9C253.4,68.5,205.1,20.1,145.4,20z"}),(0,a.jsx)("path",{fill:"currentcolor",d:"M150.7,81.1c0.2-1.5-0.3-3-1.2-4.2c-1.3-0.9-2.9-1.3-4.4-1.1h-7.4c-1.2-0.1-2.3,0.2-3.3,0.8 c-0.9,1.1-1.4,2.5-1.2,4c0,18.9,0,37.8,0,56.6v0.9l40.4,40.4c0.6,0.7,1.4,1.3,2.3,1.5c1.2,0.1,2.5-0.4,3.4-1.2c2.7-2,5-4.4,7-7.1 c0.9-0.9,1.3-2.1,1.2-3.4c-0.3-0.9-0.8-1.8-1.6-2.4l-29.6-29.4c-1.9-1.7-3.5-3.7-4.7-6c-1-2.8-1.3-5.7-1-8.6 C150.9,108.3,150.9,94.7,150.7,81.1z"})]})}))}},64244:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"IAM Policies",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"iam-policies-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 339",d:"M234.915 46.468v-.073a12.276 12.276 0 0 0-12.458-11.593c-19.233.3-55.932-3-86.768-28.92a12.132 12.132 0 0 0-15.811-.046C88.971 31.804 52.271 35.119 33.152 34.81a12.226 12.226 0 0 0-12.561 11.657c-1.8 46.628-1.509 112.307 21.777 144.214 21.779 29.942 64.527 54.463 77.79 60.687a17.75 17.75 0 0 0 7.584 1.7 17.744 17.744 0 0 0 7.619-1.713c14.233-6.71 55.947-30.7 77.768-60.659 23.292-31.913 23.59-97.599 21.786-144.228Zm-33.666 135.567c-19.9 27.341-59.77 50.186-72.17 56.035a3.18 3.18 0 0 1-2.687 0c-12.364-5.814-52.168-28.577-72.141-56.044-22.29-30.539-20.117-104.8-19.071-132.5h.273c21.464 0 59.431-4.411 92.3-31.128 32.821 26.709 70.8 31.119 92.384 31.119h.18c1.052 27.835 3.211 101.997-19.068 132.518Z"}),(0,a.jsx)("path",{"data-name":"Trazado 339 - Contorno",d:"M127.739.004a15.2 15.2 0 0 1 9.855 3.655c29.229 24.565 64.3 28.236 82.6 28.236l2.217-.017h.01a15.346 15.346 0 0 1 15.422 14.381c1.821 47.169 1.485 113.518-22.347 146.172-22.2 30.473-64.469 54.785-78.885 61.582a20.555 20.555 0 0 1-8.869 1.993 20.584 20.584 0 0 1-8.833-1.978c-13.426-6.3-56.751-31.147-78.912-61.614-23.821-32.639-24.156-98.986-22.335-146.052a15.124 15.124 0 0 1 15.023-14.484l2.764.028c18.245 0 53.229-3.677 82.542-28.306a15.029 15.029 0 0 1 9.748-3.596Zm92.455 37.753c-19.1 0-55.72-3.849-86.39-29.625a9.344 9.344 0 0 0-6.065-2.265 9.18 9.18 0 0 0-5.956 2.2c-30.753 25.84-67.289 29.7-86.332 29.7l-2.345-.019h-.019a9.344 9.344 0 0 0-9.568 8.874c-1.785 46.156-1.53 111.17 21.217 142.338 21.44 29.477 63.592 53.625 76.668 59.761a14.916 14.916 0 0 0 12.7-.009c14.043-6.621 55.179-30.255 76.653-59.736 22.757-31.181 23.013-96.2 21.227-142.389a9.343 9.343 0 0 0-9.2-8.852Zm-92.44-23.131 1.849 1.5c32.569 26.5 70.7 30.462 90.534 30.462h2.822l.286 2.82c.957 25.27 3.867 102.168-19.628 134.352-20.261 27.833-60.713 51.027-73.287 56.958a6.169 6.169 0 0 1-5.167.01c-12.568-5.909-52.967-29.043-73.282-56.98C28.394 151.57 31.298 74.683 32.252 49.417l.107-2.821h2.822c20.053 0 58.106-3.959 90.724-30.471Zm89.734 37.8c-21.007-.373-57.672-5.123-89.736-30.274-32.229 25.255-68.984 29.947-89.744 30.287-2.23 64.873 4.028 107.88 18.61 127.858 19.6 26.948 58.824 49.384 71.021 55.119l.1.019a.225.225 0 0 0 .1-.021c12.214-5.762 51.5-28.26 71.043-55.106 14.585-19.984 20.843-63.004 18.606-127.883Z"}),(0,a.jsx)("path",{"data-name":"Trazado 339 - Contorno",d:"M127.739 2.837a12.358 12.358 0 0 1 8.015 2.976 120.447 120.447 0 0 0 45.936 23.8 142.22 142.22 0 0 0 21.155 4.1 149.679 149.679 0 0 0 17.35 1.015c.753 0 1.514-.006 2.262-.018h.333a12.159 12.159 0 0 1 8.378 3.393 12.225 12.225 0 0 1 3.846 8.3v.077c1.8 46.64 1.506 112.345-21.805 144.286-21.848 29.994-63.571 53.979-77.8 60.689a17.751 17.751 0 0 1-7.66 1.722 17.771 17.771 0 0 1-7.625-1.708c-13.258-6.222-56.016-30.731-77.828-60.718-23.3-31.93-23.6-97.632-21.8-144.275a12.414 12.414 0 0 1 3.8-8.343 12.055 12.055 0 0 1 8.393-3.417c.156 0 .314 0 .47.009.757.012 1.529.018 2.294.018a148.3 148.3 0 0 0 17.294-1.019 141.918 141.918 0 0 0 21.123-4.113 120.786 120.786 0 0 0 45.948-23.838 12.209 12.209 0 0 1 7.921-2.936Zm92.455 32.086a149.9 149.9 0 0 1-17.373-1.016 142.431 142.431 0 0 1-21.184-4.107 120.644 120.644 0 0 1-46.01-23.838 12.163 12.163 0 0 0-7.888-2.929 12.012 12.012 0 0 0-7.8 2.883 120.985 120.985 0 0 1-46.021 23.877 142.125 142.125 0 0 1-21.153 4.119 148.491 148.491 0 0 1-17.317 1.021c-.766 0-1.54-.006-2.3-.018a12.138 12.138 0 0 0-.465-.009 11.861 11.861 0 0 0-8.258 3.362 12.22 12.22 0 0 0-3.739 8.211c-1.8 46.613-1.509 112.271 21.758 144.151 21.788 29.954 64.506 54.44 77.753 60.656a17.576 17.576 0 0 0 7.542 1.69 17.555 17.555 0 0 0 7.577-1.7c14.221-6.7 55.907-30.666 77.73-60.628 23.276-31.892 23.571-97.552 21.768-144.167v-.076a12.027 12.027 0 0 0-3.785-8.16 11.963 11.963 0 0 0-8.243-3.339h-.329c-.746.006-1.508.012-2.263.012Zm-92.441-16.645.062.05a135.656 135.656 0 0 0 50.371 25.557 157.366 157.366 0 0 0 23.039 4.435 163.564 163.564 0 0 0 18.913 1.106h.273v.094c.294 7.782.6 17.213.6 28.16 0 13.373-.462 25.856-1.382 37.1-2.583 31.568-8.74 54.215-18.3 67.312-19.915 27.358-59.8 50.216-72.208 56.066a3.228 3.228 0 0 1-1.38.307 3.288 3.288 0 0 1-1.389-.307c-12.38-5.821-52.213-28.618-72.179-56.075-9.563-13.1-15.723-35.768-18.3-67.365-.919-11.247-1.384-23.729-1.381-37.1 0-10.914.3-20.327.6-28.1v-.094h.367a162.536 162.536 0 0 0 18.844-1.106 157.194 157.194 0 0 0 23-4.436 135.97 135.97 0 0 0 50.391-25.564Zm92.469 31.343h-.085a163.735 163.735 0 0 1-18.936-1.107 157.57 157.57 0 0 1-23.067-4.44 135.854 135.854 0 0 1-50.381-25.544 136.178 136.178 0 0 1-50.4 25.551 157.4 157.4 0 0 1-23.033 4.441 162.713 162.713 0 0 1-18.866 1.107h-.179c-.292 7.748-.59 17.127-.592 27.994 0 13.364.461 25.84 1.38 37.082 2.579 31.56 8.725 54.192 18.268 67.266 19.942 27.424 59.736 50.2 72.1 56.013a3.094 3.094 0 0 0 1.307.288 3.035 3.035 0 0 0 1.3-.288c12.392-5.845 52.242-28.68 72.132-56 9.541-13.068 15.686-35.681 18.265-67.213.919-11.241 1.384-23.719 1.382-37.086-.002-10.91-.301-20.307-.594-28.069Z"}),(0,a.jsx)("path",{"data-name":"Trazado 340",d:"m154.932 82.763-7.4-3.7-5.737-2.866-14.1-7.057v12.363l-15.307 6.115 15.307-6.115v-12.37L100.447 82.76v9.628l-5.029 2.014v18.257l5.029.589v8.032l11.941-1.191v54.127l7.145 2.86v11.538l8.162 4.08v-86.488l-7.206 1.441V90.14l7.206-2.528v.007l7.195 2.521v17.5l-7.195-1.435v86.488l8.159-4.08v-11.538l13.528-5.367-.024-10.18-13.5 4.006v-11.54l13.528-2.689v-9.99l5.55-.5v-9.9h-11.929v-10.822l5.524.552 6.4.639v-9.628l5.036 1.008V94.407l-5.036-2.014Zm3.2 12.886v14.772l-2.83-.567-2.2-.44v9.843l-4.4-.441-5.525-.552-2.019-.206v14.7h11.941v6.387l-3.88.344-1.67.147v10.166l-12.063 2.4-1.473.293v15.51l2.353-.7 11.151-3.315.032 6.476-12.376 4.909-1.16.455v11.657l-4.487 2.242v-81.286l5 1.008 2.2.434v-1.876l6.277 1.265V87.622l-7.149-2.866-4.933-1.971-1.39-.552v-10.12l11.433 5.717 5.749 2.875 6.391 3.19v9.745l1.152.457Z"}),(0,a.jsx)("path",{"data-name":"Trazado 340 - Contorno",d:"m126.229 66.764 1.465.734 1.466-.733v1.466l13.293 6.652 5.736 2.866 8.208 4.11V91.4l5.036 2.014v21.037l-5.036-1.008v9.46l-11.93-1.191v7.741h11.93v12.707l-5.55.5v9.853l-13.529 2.689v8.373l13.5-4 .032 13.136-13.531 5.368v11.449l-8.158 4.08v1.465l-1.466-.733-1.465.733v-1.466l-8.163-4.08v-11.452l-7.145-2.86v-53.5l-11.941 1.191v-8.347l-5.028-.589V93.417l5.028-2.014v-9.542l27.249-13.627Zm0 13.743v-9l-24.317 12.161v9.714l-5.029 2.014v15.961l5.029.589v7.717l11.941-1.191v54.754l7.145 2.86v11.624l5.231 2.615v-82.33l-7.206 1.441V89.102l10.137-3.556v1.035l7.195 2.521v17.336l5.181 1.044v-18.87l-6.229-2.5-4.932-1.971-2.311-.917v-.3L112.93 88.97l-1.088-2.722Zm25.408 4.3-5.58-2.786-15.061-7.532v6.754l.464.184 4.937 1.973 8.07 3.235v24.434l-6.276-1.265v1.869l-3.954-.781-3.241-.654v77.122l1.555-.777v-11.751l2.086-.818 11.446-4.54-.018-3.52-13.514 4.017v-18.682l2.653-.528 10.884-2.162v-10.3l5.549-.491v-3.581h-11.941V116.44l3.633.37 8.308.831V107.63l5.029 1.007V96.645l-2.95-1.182-2.079-.823Zm-18.214 6.38-5.739-2.011-5.73 2.01v14.68l4.275-.855v-.585l1.465.292 1.466-.293v.586l4.263.85Z"}),(0,a.jsx)("path",{"data-name":"Trazado 340 - Contorno",d:"m127.597 68.978.1.049.1-.049v.1l14.049 7.03 5.737 2.866 7.451 3.731v9.623l5.037 2.014v18.443l-5.037-1.008v9.617l-11.929-1.191v10.621h11.929v10.088l-5.549.5v9.98l-.079.016-13.45 2.674v11.329l13.5-4.006v.131l.025 10.246-.062.025-13.467 5.342v11.532l-.054.027-8.1 4.053v.1l-.1-.049-.1.049v-.1l-8.162-4.08v-11.532l-7.145-2.86v-54.085l-11.941 1.191v-8.058l-5.029-.589V94.337l.062-.025 4.967-1.99v-9.623l.054-.027 27.194-13.6Zm0 12.455V69.294l-27.053 13.529v9.634l-5.028 2.014v18.1l5.028.589v8.011l11.941-1.191v54.168l7.145 2.86v11.544l7.967 3.982v-86.211l-7.206 1.441v-17.7l.065-.023 7.336-2.573v.076l7.194 2.521v17.689l-.117-.023-7.078-1.411v86.217l7.962-3.982v-11.544l.062-.024 13.467-5.342-.024-9.983-13.5 4.006v-11.751l.079-.016 13.45-2.674v-10l5.55-.5v-9.714h-11.93v-11.032l11.93 1.191v-9.64l5.036 1.008V94.468l-5.036-2.014V82.82l-7.343-3.677-5.736-2.866-13.961-6.986v12.271l-.062.025-15.308 6.115-.072-.181Zm7.195 8.779-7.107-2.49-7.1 2.49v17.319l7.011-1.4v-.039l.1.019.1-.019v.039l7 1.4Zm-5.359-18.257.142.071 17.181 8.592 6.445 3.217v9.739l1.091.432 3.938 1.577v14.954l-5.029-1.008v9.831l-4.5-.452-5.525-.552-1.912-.195v14.493h11.941v6.574l-5.55.492v10.156l-13.536 2.689v15.3l13.5-4.014v.13l.032 6.542-.062.025-12.376 4.909-1.1.431v11.651l-.054.027-4.628 2.313v-81.561l5.113 1.031 2.082.411v-1.876l6.276 1.265V87.683l-7.087-2.841-4.933-1.971-1.451-.576Zm23.573 12-6.337-3.163-17.04-8.521v9.9l1.328.527 4.933 1.971 7.21 2.891v21.837l-6.277-1.265v1.876l-2.315-.457-4.879-.984v81.007l4.291-2.145v-11.664l1.222-.479 12.313-4.885-.031-6.279-13.5 4.014v-15.721l1.552-.309 11.984-2.38v-10.179l5.55-.492v-6.2h-11.941v-14.9l2.127.217 9.814.982V109.3l5.028 1.008V95.721l-3.814-1.528-1.214-.481Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 887",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},86856:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"LambdaIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 847",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 442",d:"M40.266 0c-9.543 0-17.279 6.878-17.279 15.363S30.723 30.73 40.266 30.73c26.265 0 36.01 14.872 46.032 34.353l1.659 3.134c1.382 2.643 4.354 8.542 8.363 16.408L1.975 233.094c-4.327 7.346-1.317 16.42 6.8 20.5s18.415 1.7 23.265-5.384l81.9-128.623c21.91 44 49.488 99.494 49.972 100.415 12.921 27.82 47.568 42.291 79.9 33.369 9.123-2.512 14.229-11.123 11.4-19.235s-12.511-12.651-21.634-10.14c-15.631 4.28-32.31-2.987-38.084-16.593-2.765-5.531-67.32-135.751-76.029-152.282l-1.521-2.95C109.038 35.336 90.86 0 40.266 0Z"})]})]})]}))}},49268:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 870",fill:"none",d:"M255.999.001v256h-256v-256z"}),(0,a.jsx)("path",{"data-name":"Trazado 454",d:"M-.001 16.413A16.487 16.487 0 0 1 16.536-.001h135.381c21.752 0 21.752 32.824 0 32.824H33.088v190.355h118.829c21.752 0 21.752 32.822 0 32.822H16.536A16.477 16.477 0 0 1-.001 239.6Zm61.308 95.176h138.227l-18.743-18.588c-15.385-15.262 8-38.471 23.393-23.205l46.878 46.5a16.345 16.345 0 0 1 0 23.408l-46.878 46.51c-15.39 15.266-38.777-7.949-23.393-23.211l18.744-18.592H61.308c-10.872 0-16.307-8.205-16.307-16.41s5.435-16.412 16.307-16.412Z"}),(0,a.jsx)("path",{"data-name":"Trazado 454 - Contorno",d:"M-.501 239.601V16.417A17 17 0 0 1 16.536-.497h135.381a16.259 16.259 0 0 1 12.61 5.3 16.393 16.393 0 0 1 3.156 5.422 18.547 18.547 0 0 1 1.048 6.193 18.547 18.547 0 0 1-1.048 6.193 16.393 16.393 0 0 1-3.156 5.422 16.259 16.259 0 0 1-12.61 5.3H33.588v189.355h118.329a16.259 16.259 0 0 1 12.61 5.3 16.374 16.374 0 0 1 3.156 5.422 18.528 18.528 0 0 1 1.048 6.191 18.531 18.531 0 0 1-1.048 6.193 16.374 16.374 0 0 1-3.156 5.422 16.259 16.259 0 0 1-12.61 5.3H16.536a17.034 17.034 0 0 1-6.625-1.328 16.992 16.992 0 0 1-5.416-3.621 16.846 16.846 0 0 1-3.655-5.373 16.663 16.663 0 0 1-1.341-6.593ZM167.731 16.415a17.535 17.535 0 0 0-.991-5.859 15.388 15.388 0 0 0-2.962-5.094A15.286 15.286 0 0 0 151.917.503H16.536A15.994 15.994 0 0 0 .499 16.417v223.184a15.989 15.989 0 0 0 16.037 15.9h135.381a15.286 15.286 0 0 0 11.861-4.959 15.368 15.368 0 0 0 2.962-5.094 17.518 17.518 0 0 0 .991-5.859 17.515 17.515 0 0 0-.991-5.857 15.368 15.368 0 0 0-2.962-5.094 15.286 15.286 0 0 0-11.861-4.959H32.588V32.324h119.329a15.286 15.286 0 0 0 11.861-4.959 15.388 15.388 0 0 0 2.962-5.094 17.526 17.526 0 0 0 .992-5.86ZM44.499 128.001a18.547 18.547 0 0 1 1.048-6.193 16.37 16.37 0 0 1 3.154-5.422 16.248 16.248 0 0 1 12.6-5.3h137.013L180.432 93.35a16.238 16.238 0 0 1-5.179-11.6 16.682 16.682 0 0 1 3.251-9.711 19.071 19.071 0 0 1 8.051-6.451 15.968 15.968 0 0 1 8.961-1.051 17 17 0 0 1 9.013 4.9l46.878 46.5a16.869 16.869 0 0 1 5.084 12.006 16.81 16.81 0 0 1-1.3 6.482 17.213 17.213 0 0 1-3.786 5.631l-46.879 46.51a16.976 16.976 0 0 1-9.01 4.9 15.975 15.975 0 0 1-8.958-1.049 19.084 19.084 0 0 1-8.054-6.453 16.694 16.694 0 0 1-3.254-9.715 16.237 16.237 0 0 1 5.179-11.6l17.882-17.736H61.298a16.249 16.249 0 0 1-12.6-5.3 16.351 16.351 0 0 1-3.154-5.422 18.527 18.527 0 0 1-1.045-6.19Zm156.248-15.912H61.306a15.275 15.275 0 0 0-11.855 4.959 15.365 15.365 0 0 0-2.961 5.094 17.538 17.538 0 0 0-.991 5.859 17.547 17.547 0 0 0 .991 5.859 15.375 15.375 0 0 0 2.961 5.092 15.276 15.276 0 0 0 11.855 4.959h139.443l-.862.855-18.744 18.592a15.257 15.257 0 0 0-4.883 10.891 15.7 15.7 0 0 0 3.067 9.133 18.064 18.064 0 0 0 7.625 6.111 14.955 14.955 0 0 0 8.4.988 16 16 0 0 0 8.482-4.625l46.878-46.51a16.222 16.222 0 0 0 3.567-5.3 15.825 15.825 0 0 0 1.222-6.1 15.868 15.868 0 0 0-4.789-11.295l-46.878-46.5a16.011 16.011 0 0 0-8.485-4.627 15 15 0 0 0-8.4.988 18.055 18.055 0 0 0-7.623 6.111 15.688 15.688 0 0 0-3.064 9.129 15.259 15.259 0 0 0 4.883 10.893Z",fill:"rgba(0,0,0,0)"})]})]}))}},49818:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",children:(0,a.jsxs)("g",{id:"repliaction-icn",transform:"translate(0 0)",children:[(0,a.jsx)("g",{id:"Grupo_1696","data-name":"Grupo 1696",transform:"translate(3.434)",children:(0,a.jsx)("path",{id:"Trazado_6841","data-name":"Trazado 6841",d:"M-502.661-53.081a1.054,1.054,0,0,0-.84-.432h-10.382a1.055,1.055,0,0,0-.84.432,1.272,1.272,0,0,0-.233.983l.178,1.038h7.843a1.894,1.894,0,0,1,1.509.776,2.21,2.21,0,0,1,.342.661h1.366l-.16.932h-1.107c-.005.058-.013.117-.023.175l-.518,3.021v0h1.1l-.16.932h-1.1l-.546,3.189-.005.032-.072.422h1.06a1.124,1.124,0,0,0,1.073-.975l.52-3.036c0-.006,0-.012,0-.018l.7-4.114,0-.012.518-3.024A1.271,1.271,0,0,0-502.661-53.081Z",transform:"translate(514.975 53.513)"})}),(0,a.jsx)("path",{id:"Trazado_6842","data-name":"Trazado 6842",d:"M-609.21,43.432a1.055,1.055,0,0,0-.84-.432h-10.382a1.054,1.054,0,0,0-.84.432,1.271,1.271,0,0,0-.233.983c.256,1.495.8,4.646,1.226,7.16a.035.035,0,0,0,0,.005l.521,3.04a1.124,1.124,0,0,0,1.073.975h6.886a1.124,1.124,0,0,0,1.073-.975l.52-3.036,0-.018.7-4.114s0-.008,0-.012l.518-3.024A1.271,1.271,0,0,0-609.21,43.432Zm-1.924,8.519-8.214.01-.16-.932,8.534-.01Zm.708-4.131-9.629.01-.16-.932,9.949-.01Z",transform:"translate(621.524 -39.595)"})]})}))}},82314:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Object Browser",clipPath:"url(#prefix__a)",children:[(0,a.jsxs)("g",{"data-name":"Grupo 1541",transform:"translate(87.918 103.898)",children:[(0,a.jsx)("circle",{"data-name":"Elipse 57",cx:11.515,cy:11.515,r:11.515,transform:"rotate(-10.901 280.738 -178.561)"}),(0,a.jsx)("rect",{"data-name":"Rect\\xE1ngulo 805",width:24.592,height:20.853,rx:1.35,transform:"translate(14.546 25.545)"}),(0,a.jsx)("path",{"data-name":"Trazado 365",d:"M28.151 60.295a2.427 2.427 0 00-4.2 0l-9.1 15.761a2.425 2.425 0 002.1 3.64h18.2a2.43 2.43 0 002.105-3.64z"}),(0,a.jsx)("path",{"data-name":"Trazado 366",d:"M79.273 28.199a151.334 151.334 0 00-.187-17.51c-.395-4.294-2.262-7.942-6.512-9.468a15.5 15.5 0 00-1.836-.529 38.335 38.335 0 00-7.332-.658c-4.289-.125-8.57.136-12.855.116-8.582-.036-17.16.116-25.746.152H6.301a6.308 6.308 0 00-6.3 6.3v80.617a6.307 6.307 0 006.3 6.3h66.684a6.3 6.3 0 006.3-6.3V47.054c-.004-6.273-.168-12.584-.012-18.855zm-7.648 53.334a5.435 5.435 0 01-5.434 5.439h-54.2a5.442 5.442 0 01-5.441-5.439V12.3a5.441 5.441 0 015.441-5.442h36.367v9.3a13.809 13.809 0 0013.789 13.794h9.48zm0-57.6h-9.48a7.781 7.781 0 01-7.773-7.777v-9.3h11.82a5.435 5.435 0 015.434 5.442z"})]}),(0,a.jsx)("path",{"data-name":"Trazado 367",d:"M101.585 42.067c6.6 0 13.672 18.858 20.742 18.858h87.934a9.453 9.453 0 019.426 9.429v4.715H40.292V51.496h-.234a9.455 9.455 0 019.426-9.429h52.1m124.219 44.5a9.8 9.8 0 019.773 9.772L225.56 204.095a9.8 9.8 0 01-9.773 9.771H39.615a9.8 9.8 0 01-9.773-9.771L20.065 96.339a9.806 9.806 0 019.777-9.772h195.961M101.584 21.999h-52.1a29.528 29.528 0 00-29.492 29.5 20.028 20.028 0 00.234 3.081v13.513A29.9 29.9 0 00-.001 96.344c0 .605.031 1.208.086 1.814l9.711 107.089a29.874 29.874 0 0029.82 28.691h176.172a29.873 29.873 0 0029.813-28.663l9.961-107.074c.051-.617.082-1.239.082-1.857a29.875 29.875 0 00-15.887-26.376 29.534 29.534 0 00-29.5-29.106H128.87c-.4-.532-.785-1.059-1.121-1.517-5.094-6.906-12.785-17.342-26.168-17.342z"})]})]}))}},71863:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Object Browser",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 19",d:"M36.252 256a17.257 17.257 0 0 1-17.25-17.235V18.076A17.261 17.261 0 0 1 36.252.836h42.193c2.83 0 5.654 0 8.461-.015 23.494-.092 47-.514 70.48-.412 4.9.02 9.809-.1 14.711-.208 6.822-.155 13.645-.311 20.467-.107 6.662.194 13.539.315 20.1 1.793a44.27 44.27 0 0 1 5.01 1.444c11.648 4.182 16.736 14.163 17.836 25.918 1.453 15.7.877 32.2.5 47.945-.412 17.158.014 34.432.014 51.618v109.952a17.244 17.244 0 0 1-17.234 17.235Zm.7-222.336v189.523a14.876 14.876 0 0 0 14.875 14.89H200.2a14.9 14.9 0 0 0 14.885-14.89V81.992h-25.957a37.8 37.8 0 0 1-37.754-37.761V18.769H51.823a14.877 14.877 0 0 0-14.874 14.895Zm130.881 10.567a21.33 21.33 0 0 0 21.3 21.3h25.957V33.663a14.9 14.9 0 0 0-14.885-14.9h-32.371ZM65.4 218.152a6.644 6.644 0 0 1-5.756-9.967l24.891-43.139a6.658 6.658 0 0 1 11.527 0l24.906 43.139a6.652 6.652 0 0 1-5.758 9.967Zm65.869-50.693a31.523 31.523 0 0 1 24.992-36.917 31.529 31.529 0 0 1 36.918 24.993 31.53 31.53 0 0 1-24.992 36.917 31.742 31.742 0 0 1-5.994.574 31.536 31.536 0 0 1-30.927-25.567Zm-70.568-40.454a1.894 1.894 0 0 1-1.895-1.895V71.815a1.894 1.894 0 0 1 1.895-1.895h63.533a1.894 1.894 0 0 1 1.895 1.895v53.295a1.894 1.894 0 0 1-1.895 1.895Z",stroke:"rgba(0,0,0,0)",strokeMiterlimit:10}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 882",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},68733:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256",width:"16.1",height:"13.5"},e),{},{children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1602",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{fill:"#2781b0",children:[(0,a.jsx)("path",{"data-name":"Trazado 7242",d:"m20.695 32.211 11.313-11.318 203.3 203.4-11.313 11.318Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7243",d:"M19.371 106.631C6.694 118.186 0 133.962 0 152.26a61.725 61.725 0 0 0 20.253 46.312c12.578 11.424 29.547 17.714 47.778 17.714h114.108L55.275 89.429c-14.007 2.7-26.556 8.672-35.911 17.2Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7244",d:"M238.286 203.889C249.875 194.662 256 180.961 256 164.264c0-30.939-24.23-47.692-48.894-51.341-3.258-20.595-12.03-38.216-25.568-51.249a76.817 76.817 0 0 0-53.589-21.459 73.336 73.336 0 0 0-41.553 12.506l151.47 151.492c.128-.107.285-.206.42-.313Z"})]})]}))}},55335:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256",width:"26.9",height:"26.9"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"Offline-Registration_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1604",fill:"none",d:"M0 0h256v199.086H0z"})})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1602",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 2526",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1603",fill:"#00142f",d:"m19.235 39.602 10.497-10.49L218.26 217.77l-10.497 10.49z"}),(0,a.jsx)("g",{"data-name":"Grupo 2525",children:(0,a.jsxs)("g",{"data-name":"Grupo 2524",clipPath:"url(#Offline-Registration_svg__a)",fill:"#00142f",transform:"translate(0 29.146)",children:[(0,a.jsx)("path",{"data-name":"Trazado 7273",d:"m17.968 79.492.007.015a55.559 55.559 0 0 0-17.96 42.3 57.238 57.238 0 0 0 18.783 42.92 65.482 65.482 0 0 0 44.3 16.431h105.817L51.268 63.545a68.63 68.63 0 0 0-33.3 15.947"}),(0,a.jsx)("path",{"data-name":"Trazado 7274",d:"m222.825 99.169-.074.015h-.333l-.326-.03a22.226 22.226 0 0 1-9.028-2.8 4.017 4.017 0 0 0-.651-.3 3.823 3.823 0 0 0-.533.244 18.331 18.331 0 0 1-9.665 2.745 18.542 18.542 0 0 1-3.559-.348l-.955-.185-.866-.429a19.149 19.149 0 0 1-9.332-10 5.281 5.281 0 0 0-.3-.525 4.064 4.064 0 0 0-.474-.1 18.625 18.625 0 0 1-12.12-6.21l-.585-.666-.422-.792a19.8 19.8 0 0 1-1.843-13.35 6.256 6.256 0 0 0 .067-.9 4.811 4.811 0 0 0-.437-.511 19.647 19.647 0 0 1-6.209-12.306l-.089-.807.089-.8a19.526 19.526 0 0 1 5.21-11.211c-.644-.688-1.251-1.413-1.924-2.079a71.234 71.234 0 0 0-49.687-19.901 68.071 68.071 0 0 0-38.525 11.6l140.41 140.462c.118-.1.266-.192.392-.289v-.007a45.043 45.043 0 0 0 16.428-36.742c0-14.652-5.876-25.849-14.66-33.774"}),(0,a.jsx)("path",{"data-name":"Trazado 7275",d:"M255.963 51.509a15.953 15.953 0 0 0-5.121-10.049 8.872 8.872 0 0 1-1.48-1.991 9.8 9.8 0 0 1 .059-2.753 16.071 16.071 0 0 0-1.487-10.967l-.207-.385-.3-.333a14.943 14.943 0 0 0-9.82-5 8.149 8.149 0 0 1-2.316-.7 8.935 8.935 0 0 1-1.359-2.096 15.448 15.448 0 0 0-7.563-8.192l-.437-.215-.481-.1a14.62 14.62 0 0 0-10.633 1.965 8.262 8.262 0 0 1-2.405.888 8.3 8.3 0 0 1-2.401-.888 14.639 14.639 0 0 0-10.638-1.961l-.474.1-.444.215a15.505 15.505 0 0 0-7.563 8.192 8.821 8.821 0 0 1-1.369 2.109 8.149 8.149 0 0 1-2.316.7 14.96 14.96 0 0 0-9.82 5l-.3.333-.207.392a16.144 16.144 0 0 0-1.48 10.9 9.96 9.96 0 0 1 .059 2.775 9.2 9.2 0 0 1-1.487 2.013 15.9 15.9 0 0 0-5.103 10.048l-.044.4.044.4a15.934 15.934 0 0 0 5.106 10.057 9.031 9.031 0 0 1 1.487 1.983 9.861 9.861 0 0 1-.059 2.76 16.112 16.112 0 0 0 1.48 10.952l.207.392.3.333a14.96 14.96 0 0 0 9.82 5 8.149 8.149 0 0 1 2.316.7 9.082 9.082 0 0 1 1.376 2.109 15.446 15.446 0 0 0 7.563 8.162l.437.215.474.089a14.639 14.639 0 0 0 10.635-1.96 8.262 8.262 0 0 1 2.405-.888 8.533 8.533 0 0 1 2.472.925 18.627 18.627 0 0 0 7.526 2.331l.155.015h.185a9.794 9.794 0 0 0 3.16-.525l.229-.074.215-.111a15.421 15.421 0 0 0 7.57-8.185 9.2 9.2 0 0 1 1.376-2.1 8.03 8.03 0 0 1 2.309-.7 14.943 14.943 0 0 0 9.82-5l.3-.326.2-.392a15.981 15.981 0 0 0 1.487-10.982 10.04 10.04 0 0 1-.059-2.745 8.957 8.957 0 0 1 1.48-1.976 15.953 15.953 0 0 0 5.121-10.049l.044-.407Zm-47.751 15.655-15.387-16.081 5.454-5.683 9.933 10.353 18.342-19.108 5.458 5.706Z"})]})})]})]}))}},12590:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256",width:"32.12",height:"25"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"online-registration-icn_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1601",fill:"none",d:"M0 0h256v189.799H0z"})})}),(0,a.jsx)("g",{"data-name":"Grupo 2523",children:(0,a.jsxs)("g",{"data-name":"Grupo 2522",transform:"translate(0 32.999)",clipPath:"url(#online-registration-icn_svg__a)",fill:"#00142f",children:[(0,a.jsx)("path",{"data-name":"Trazado 7258",d:"M105.956 117.2a75.071 75.071 0 0 0 .763 10.469h12.926v-20.938h-12.926a75.072 75.072 0 0 0-.763 10.469"}),(0,a.jsx)("path",{"data-name":"Trazado 7259",d:"M119.607 100.222V80.94a29.091 29.091 0 0 0-11.667 19.282Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7260",d:"M119.614 153.467h.008v-19.282h-11.675a29.062 29.062 0 0 0 11.667 19.282"}),(0,a.jsx)("path",{"data-name":"Trazado 7261",d:"M155.805 100.221a37.276 37.276 0 0 0-18.1-16.993 50.754 50.754 0 0 1 6.807 16.993Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7262",d:"M99.417 117.2h.034a81.388 81.388 0 0 1 .679-10.469H87.323a36.628 36.628 0 0 0 0 20.938h12.773a82.781 82.781 0 0 1-.679-10.469"}),(0,a.jsx)("path",{"data-name":"Trazado 7263",d:"M108.039 83.229a37.31 37.31 0 0 0-18.099 16.992h11.293a50.754 50.754 0 0 1 6.806-16.993"}),(0,a.jsx)("path",{"data-name":"Trazado 7264",d:"M89.947 134.178a37.31 37.31 0 0 0 18.1 16.993 50.754 50.754 0 0 1-6.806-16.993Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7265",d:"M145.603 106.731a80.807 80.807 0 0 1 0 20.938h12.811a36.5 36.5 0 0 0 0-20.938Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7266",d:"M137.706 151.171a37.31 37.31 0 0 0 18.1-16.993h-11.294a50.754 50.754 0 0 1-6.806 16.993"}),(0,a.jsx)("path",{"data-name":"Trazado 7267",d:"m230.957 100.848-.443.221-.473.16a13.816 13.816 0 0 1-4.494.748v-.023h-.671a22.917 22.917 0 0 1-9.309-2.884 4.907 4.907 0 0 0-.671-.313q-.275.114-.549.252a18.913 18.913 0 0 1-13.636 2.472l-.992-.2-.9-.443a19.76 19.76 0 0 1-9.619-10.306 5.449 5.449 0 0 0-.305-.542 5.087 5.087 0 0 0-.488-.107 19.2 19.2 0 0 1-12.5-6.4l-.61-.687-.427-.809a20.457 20.457 0 0 1-1.908-13.735 5.126 5.126 0 0 0 .046-.969 5.773 5.773 0 0 0-.443-.526 20.249 20.249 0 0 1-6.379-12.682l-.092-.832.092-.832a20.268 20.268 0 0 1 6.394-12.682 4.831 4.831 0 0 0 .427-.549 5.1 5.1 0 0 0-.069-.961 20.376 20.376 0 0 1 .992-11.552A62.2 62.2 0 0 0 60.692 61.216c0 1.351.053 2.732.168 4.2a62.2 62.2 0 0 0 1.678 124.381h120.683a62.1 62.1 0 0 0 53.886-93.717 19.522 19.522 0 0 1-6.15 4.769m-67.064 30.957a3.466 3.466 0 0 1-.2.534 43.494 43.494 0 0 1-81.645 0 2.641 2.641 0 0 1-.2-.534 42.738 42.738 0 0 1 0-29.285 2.641 2.641 0 0 1 .2-.534 43.494 43.494 0 0 1 81.645 0 2.642 2.642 0 0 1 .2.534 42.827 42.827 0 0 1 0 29.285"}),(0,a.jsx)("path",{"data-name":"Trazado 7268",d:"M126.131 134.178v19.282a29.062 29.062 0 0 0 11.67-19.282Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7269",d:"M126.131 80.94v19.282h11.67a29.091 29.091 0 0 0-11.67-19.282"}),(0,a.jsx)("path",{"data-name":"Trazado 7270",d:"M139.79 117.194Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7271",d:"M139.789 117.2a75.154 75.154 0 0 0-.763-10.469H126.1v20.93h12.926a74.96 74.96 0 0 0 .763-10.461"}),(0,a.jsx)("path",{"data-name":"Trazado 7272",d:"m251.907 61.322-.023-.008a12.677 12.677 0 0 0 4.113-8.02 12.677 12.677 0 0 0-4.113-8.02 12.75 12.75 0 0 1-2.564-3.632 13.77 13.77 0 0 1 0-4.746 12.755 12.755 0 0 0-1.167-8.783 11.643 11.643 0 0 0-7.714-3.884 12.384 12.384 0 0 1-4.3-1.442 13.206 13.206 0 0 1-2.564-3.739 12.157 12.157 0 0 0-5.99-6.532 11.279 11.279 0 0 0-8.279 1.526 12.67 12.67 0 0 1-4.419 1.528 12.67 12.67 0 0 1-4.426-1.526 11.279 11.279 0 0 0-8.279-1.526 12.2 12.2 0 0 0-5.975 6.524 13.175 13.175 0 0 1-2.587 3.762 12.346 12.346 0 0 1-4.281 1.435 11.643 11.643 0 0 0-7.714 3.884 12.757 12.757 0 0 0-1.152 8.737 14.158 14.158 0 0 1 0 4.746 13.16 13.16 0 0 1-2.587 3.67 12.632 12.632 0 0 0-4.105 8.027 12.6 12.6 0 0 0 4.113 8.012 13.135 13.135 0 0 1 2.587 3.632 14.2 14.2 0 0 1 0 4.754 12.8 12.8 0 0 0 1.16 8.783 11.643 11.643 0 0 0 7.714 3.884 12.346 12.346 0 0 1 4.281 1.435 13.246 13.246 0 0 1 2.587 3.754 12.165 12.165 0 0 0 5.975 6.493 11.285 11.285 0 0 0 8.279-1.526 12.67 12.67 0 0 1 4.43-1.527 12.67 12.67 0 0 1 4.426 1.526 15.413 15.413 0 0 0 6.219 1.923 6.5 6.5 0 0 0 2.053-.336 12.155 12.155 0 0 0 5.975-6.516 13.246 13.246 0 0 1 2.587-3.754 12.346 12.346 0 0 1 4.281-1.435 11.643 11.643 0 0 0 7.714-3.884 12.717 12.717 0 0 0 1.167-8.828 14.158 14.158 0 0 1 0-4.746 12.834 12.834 0 0 1 2.587-3.624m-41.363 7.706L194.689 52.44l5.631-5.883 10.233 10.683 18.931-19.679 5.631 5.883Z"})]})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1602",fill:"none",d:"M0 0h256v256H0z"})]}))}},33976:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"OpenListIcon",children:[(0,a.jsx)("path",{"data-name":"Trazado 6842",d:"M0 71.037a14.843 14.843 0 0 1 4.511-10.526 14.978 14.978 0 0 1 21.427 0l101.874 101.874 102.25-101.874a14.978 14.978 0 0 1 21.427 0 14.978 14.978 0 0 1 0 21.427L138.714 194.714a14.843 14.843 0 0 1-10.526 4.511 13.65 13.65 0 0 1-10.526-4.511L4.887 81.938A15.229 15.229 0 0 1 0 71.037Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 896",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))}},95466:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 606.583 134.691",children:(0,a.jsx)("g",{id:"prefix__Layer_2","data-name":"Layer 2",children:(0,a.jsx)("g",{id:"prefix__Layer_1-2","data-name":"Layer 1",children:(0,a.jsx)("path",{className:"prefix__cls-1",d:"M79.695 95.063c0 23.03-16.763 39.628-39.848 39.628C16.763 134.69 0 118.092 0 95.063s16.763-39.628 39.847-39.628c23.085 0 39.848 16.599 39.848 39.628zm-69.582 0c0 18.083 12.806 30.339 29.734 30.339 16.929 0 29.735-12.256 29.735-30.34 0-18.081-12.806-30.338-29.735-30.338-16.928 0-29.734 12.257-29.734 30.339zM106.895 102.758v30.779H97.22V56.589h29.24c17.368 0 27.206 8.685 27.206 23.084 0 14.4-9.838 23.085-27.206 23.085zm0-37.045v27.921h19.346c11.377 0 17.368-4.617 17.368-13.96 0-9.344-5.99-13.96-17.368-13.96zM224.784 133.537h-54.632V56.589h54.082v9.07h-44.409v24.567h42.98v9.124h-42.98v25.118h44.96zM275.07 56.59c17.368 0 26.931 7.804 26.931 21.82 0 13.355-10.387 21.93-26.876 21.93h-.604l27.096 33.197h-11.982l-26.437-33.198h-9.013v33.198h-9.674V56.589zm-20.885 9.069v25.886h20.665c11.322 0 17.093-4.506 17.093-13.135 0-8.52-5.935-12.751-17.093-12.751zM384.716 133.537h-10.388l-8.464-20.996h-37.32l-8.409 20.996h-10.058l31.274-76.948h12.036zm-52.49-30.174h29.955l-14.95-37.21zM445.114 65.768h-26.217v67.769h-9.673V65.768h-26.272v-9.179h62.162zM531.566 95.063c0 23.03-16.763 39.628-39.847 39.628s-39.848-16.599-39.848-39.628 16.764-39.628 39.848-39.628 39.847 16.599 39.847 39.628zm-69.582 0c0 18.083 12.807 30.339 29.735 30.339 16.928 0 29.735-12.256 29.735-30.34 0-18.081-12.807-30.338-29.735-30.338-16.928 0-29.735 12.257-29.735 30.339zM579.652 56.59c17.368 0 26.931 7.804 26.931 21.82 0 13.355-10.388 21.93-26.876 21.93h-.605l27.096 33.197h-11.981l-26.437-33.198h-9.014v33.198h-9.673V56.589zm-20.886 9.069v25.886h20.666c11.322 0 17.093-4.506 17.093-13.135 0-8.52-5.936-12.751-17.093-12.751zM72.292.762h11.75v34.419h-11.75zM58.159 1.087l-23.85 14.566a1.06 1.06 0 01-1.106 0L9.352 1.087a3.272 3.272 0 00-1.705-.48h-.03a3.27 3.27 0 00-3.27 3.27v31.304H16.09V20.327a1.175 1.175 0 011.787-1.002l13.366 8.177a4.188 4.188 0 004.304.04l14.104-8.273a1.174 1.174 0 011.769 1.013v14.9h11.742V3.876a3.27 3.27 0 00-3.27-3.27h-.03a3.266 3.266 0 00-1.703.48zM142.742.753h-11.916v15.794a1.175 1.175 0 01-1.727 1.037L98.22 1.137A3.268 3.268 0 0096.68.753h-.02a3.27 3.27 0 00-3.27 3.27v31.158h11.82V19.64a1.174 1.174 0 011.725-1.038l31.004 16.445a3.27 3.27 0 001.533.381 3.27 3.27 0 003.27-3.27V.753zM152.279 35.173V.753h5.463v34.42zM189.208 35.926c-14.545 0-24.863-6.9-24.863-17.963C164.345 6.962 174.725 0 189.208 0c14.482 0 24.924 6.899 24.924 17.963s-10.194 17.963-24.924 17.963zm0-31.327c-10.815 0-19.145 4.724-19.145 13.364 0 8.702 8.33 13.363 19.145 13.363s19.206-4.662 19.206-13.363c0-8.64-8.392-13.364-19.206-13.364z"})})})}))}},88878:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 255.999"},e),{},{children:(0,a.jsx)("path",{id:"recover-icn",d:"M17866.783-5487a16.655,16.655,0,0,1-4.354-.6l-57.238-15.5a14.778,14.778,0,0,1-10.492-18.271l15.535-57.135c5.1-18.748,33.652-11.014,28.557,7.734l-5.8,21.333-1.033,3.5c.176-.094.342-.2.525-.288a84.861,84.861,0,0,0,39.223-113.4,85.2,85.2,0,0,0-62.492-46.565,12.846,12.846,0,0,1-10.568-14.789,12.864,12.864,0,0,1,14.811-10.552,110.978,110.978,0,0,1,81.389,60.667,109.742,109.742,0,0,1,11.158,47.846v.683a110.648,110.648,0,0,1-62.258,99.21c-.059.032-.121.049-.18.077l9.572,2.328,17.045,4.615c17.252,4.673,12.115,29.111-3.393,29.111Zm-122.105-11.284a13.242,13.242,0,0,1-2.135-.175,110.98,110.98,0,0,1-81.387-60.667,109.694,109.694,0,0,1-11.154-48.088v-.229a110.629,110.629,0,0,1,62.252-99.421c.064-.032.123-.05.186-.081l-9.576-2.323-17.041-4.615c-17.234-4.669-12.129-29.053,3.334-29.115h.131a16.69,16.69,0,0,1,4.283.606l57.242,15.5a14.775,14.775,0,0,1,10.488,18.272l-15.531,57.134c-5.1,18.749-33.658,11.015-28.562-7.734l5.8-21.336,1.039-3.5c-.176.094-.346.2-.531.288a84.855,84.855,0,0,0-39.217,113.4,85.188,85.188,0,0,0,62.486,46.569,12.845,12.845,0,0,1,10.57,14.785,12.866,12.866,0,0,1-12.674,10.731ZM17757-5615a21,21,0,0,1,21-21,21,21,0,0,1,21,21,21,21,0,0,1-21,21A21,21,0,0,1,17757-5615Z",transform:"translate(-17650.002 5743.001)"})}))}},28789:function(e,t,n){"use strict";n.r(t);var r=n(1413),a=(n(72791),n(80184));t.default=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 373",d:"M18 145.888A110.2 110.2 0 0 1 126.767 35.85L113.78 22.869c-12.378-12.378 6.448-31.2 18.822-18.824l37.722 37.72a13.32 13.32 0 0 1 0 18.979l-37.722 37.714c-12.374 12.374-31.2-6.442-18.822-18.82l14.085-14.085a80.434 80.434 0 0 0-80.1 80.335 80.443 80.443 0 0 0 80.349 80.35 80.441 80.441 0 0 0 80.349-80.35 14.878 14.878 0 0 1 14.879-14.877 14.879 14.879 0 0 1 14.882 14.877A110.234 110.234 0 0 1 128.114 256 110.232 110.232 0 0 1 18 145.888Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 871",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},51979:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 6970",d:"M27 101h202a27 27 0 0 1 0 54H27a27 27 0 0 1 0-54Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 916",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},74900:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("g",{"data-name":"search-icn",children:(0,a.jsx)("path",{"data-name":"Trazado 399",d:"M200.076 179.436a109.04 109.04 0 0 0 24.225-68.582C224.301 49.663 174.057 0 112.151 0S.001 49.663.001 110.854s50.243 110.855 112.15 110.855a111.975 111.975 0 0 0 66.393-21.58l52.037 51.437A15.108 15.108 0 0 0 241.048 256a14.929 14.929 0 0 0 10.467-25.423ZM29.908 110.854c0-44.933 36.785-81.293 82.243-81.293s82.243 36.36 82.243 81.293-37.084 81.293-82.243 81.293-82.243-36.36-82.243-81.293Z"})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 866",fill:"none",d:"M0 0h256v255.7H0z"})]})]}))}},2289:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Select Multiple",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{d:"M234.667 234.667v-30.486h-30.473v30.485h30.473m-91.43 0v-30.485h-30.473v30.485h30.473m-91.43 0v-30.485H21.333v30.485h30.473m182.861-91.43v-30.472h-30.473v30.473h30.473m-91.43 0v-30.473h-30.473v30.473h30.473m-91.43 0v-30.473H21.333v30.473h30.473m182.861-91.43V21.333h-30.473v30.473h30.473m-91.43 0V21.333h-30.473v30.473h30.473m-91.43 0V21.333H21.333v30.473h30.473M241.779 256h-44.7a14.225 14.225 0 0 1-14.221-14.234v-44.684a14.225 14.225 0 0 1 14.221-14.234h44.7A14.225 14.225 0 0 1 256 197.082v44.685A14.225 14.225 0 0 1 241.779 256Zm-91.43 0h-44.7a14.225 14.225 0 0 1-14.219-14.234v-44.684a14.225 14.225 0 0 1 14.221-14.234h44.7a14.225 14.225 0 0 1 14.221 14.234v44.685A14.225 14.225 0 0 1 150.349 256Zm-91.43 0h-44.7A14.233 14.233 0 0 1 0 241.766v-44.684a14.233 14.233 0 0 1 14.221-14.234h44.7a14.225 14.225 0 0 1 14.221 14.234v44.685A14.225 14.225 0 0 1 58.918 256Zm182.861-91.43h-44.7a14.222 14.222 0 0 1-14.221-14.221v-44.7a14.214 14.214 0 0 1 14.223-14.219h44.7A14.214 14.214 0 0 1 256 105.651v44.7a14.222 14.222 0 0 1-14.221 14.219Zm-91.43 0h-44.7a14.222 14.222 0 0 1-14.22-14.221v-44.7a14.214 14.214 0 0 1 14.221-14.219h44.7a14.214 14.214 0 0 1 14.221 14.221v44.7a14.222 14.222 0 0 1-14.223 14.219Zm-91.43 0h-44.7A14.23 14.23 0 0 1 0 150.349v-44.7A14.222 14.222 0 0 1 14.221 91.43h44.7a14.214 14.214 0 0 1 14.221 14.221v44.7a14.222 14.222 0 0 1-14.224 14.219Zm182.861-91.43h-44.7a14.214 14.214 0 0 1-14.221-14.221v-44.7A14.214 14.214 0 0 1 197.082 0h44.7A14.214 14.214 0 0 1 256 14.221v44.7a14.214 14.214 0 0 1-14.221 14.218Zm-91.43 0h-44.7A14.214 14.214 0 0 1 91.43 58.918v-44.7A14.214 14.214 0 0 1 105.651 0h44.7a14.214 14.214 0 0 1 14.219 14.221v44.7a14.214 14.214 0 0 1-14.221 14.218Zm-91.43 0h-44.7A14.222 14.222 0 0 1 0 58.918v-44.7A14.222 14.222 0 0 1 14.221 0h44.7a14.214 14.214 0 0 1 14.218 14.221v44.7a14.214 14.214 0 0 1-14.221 14.218Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 915",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},95792:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"settings-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 341",d:"m247.385 99.227-26.7-3.841a92.362 92.362 0 0 0-4.166-9.853l16.176-21.584a9.834 9.834 0 0 0-.9-12.9l-26.889-27.1a9.825 9.825 0 0 0-12.893-.887l-21.6 16.254a89.085 89.085 0 0 0-9.857-4.134l-3.83-26.7a9.856 9.856 0 0 0-9.852-8.476H108.73a9.843 9.843 0 0 0-9.844 8.476l-3.836 26.7a89.115 89.115 0 0 0-9.859 4.134L63.53 23.06a9.881 9.881 0 0 0-12.936.887l-26.881 26.9a9.832 9.832 0 0 0-.9 12.9l16.27 21.584a87.181 87.181 0 0 0-4.166 9.851l-26.68 3.843a9.85 9.85 0 0 0-8.482 9.854v38.036a9.851 9.851 0 0 0 8.482 9.854l26.68 3.84a85.76 85.76 0 0 0 4.166 9.855l-16.27 21.777a9.848 9.848 0 0 0 .9 12.914l26.881 26.9a9.891 9.891 0 0 0 12.936.879l21.561-16.256a85.986 85.986 0 0 0 9.859 4.136l3.844 26.705a9.843 9.843 0 0 0 9.857 8.475h38.031a9.867 9.867 0 0 0 9.859-8.475l3.842-26.705a90.284 90.284 0 0 0 9.859-4.136l21.568 16.157a9.852 9.852 0 0 0 12.906-.878l26.9-26.9a9.856 9.856 0 0 0 .889-12.915l-16.061-21.485a89.562 89.562 0 0 0 4.131-9.853l26.709-3.842a9.867 9.867 0 0 0 8.475-9.853v-38.133a9.868 9.868 0 0 0-8.374-9.749Zm-11.236 39.413-24.443 3.549a9.888 9.888 0 0 0-8.088 7.1 82.022 82.022 0 0 1-6.875 17.436 9.813 9.813 0 0 0 0 10.549l14.764 19.707-14.764 15.072-19.719-15.072a9.863 9.863 0 0 0-10.461 0 75.566 75.566 0 0 1-17.711 7.291 9.814 9.814 0 0 0-7.105 8.085l-3.549 24.034h-20.895l-3.549-24.436a9.8 9.8 0 0 0-7.092-8.073 76.134 76.134 0 0 1-17.738-7.294 9.831 9.831 0 0 0-10.439.393l-19.711 14.777-15.072-14.777 15.072-19.707a9.844 9.844 0 0 0 0-10.549 82.861 82.861 0 0 1-7.3-17.634 9.841 9.841 0 0 0-8.074-7.095l-24.035-3.55v-20.889l24.443-3.55a9.85 9.85 0 0 0 8.074-7.1 82.89 82.89 0 0 1 6.891-17.635 9.84 9.84 0 0 0 0-10.546l-15.072-19.71 15.072-15.071 19.711 15.071a9.816 9.816 0 0 0 10.439 0 76.209 76.209 0 0 1 17.738-7.291 9.806 9.806 0 0 0 7.092-8.074l3.549-24.044h20.895l3.549 24.435a9.839 9.839 0 0 0 7.105 8.084 75.193 75.193 0 0 1 17.711 7.291 9.866 9.866 0 0 0 10.461-.4l19.719-14.778 15.057 14.778-15.057 19.71a9.822 9.822 0 0 0-.7 10.839 82.237 82.237 0 0 1 7.3 17.644 9.84 9.84 0 0 0 8.074 7.088l24.443 3.547Z"}),(0,a.jsx)("path",{"data-name":"Trazado 342",d:"M127.742 78.73a49.269 49.269 0 0 0-49.258 49.275 49.266 49.266 0 0 0 49.258 49.267 49.271 49.271 0 0 0 49.281-49.267 49.274 49.274 0 0 0-49.281-49.275Zm0 78.836a29.553 29.553 0 0 1-29.547-29.561 29.56 29.56 0 0 1 29.547-29.57 29.555 29.555 0 0 1 29.564 29.57 29.548 29.548 0 0 1-29.564 29.561Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 888",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},8135:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-reg-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1593","data-name":"Rect\xe1ngulo 1593",width:"12",height:"12"})})}),(0,a.jsx)("g",{id:"Grupo_2469","data-name":"Grupo 2469",clipPath:"url(#clip-path-reg-menu-icon)",children:(0,a.jsx)("path",{id:"Trazado_7117","data-name":"Trazado 7117",d:"M11.4,7.564a1.848,1.848,0,0,0,.6-1.17,1.848,1.848,0,0,0-.6-1.17,1.866,1.866,0,0,1-.377-.532,2.022,2.022,0,0,1,0-.693,1.858,1.858,0,0,0-.17-1.282,1.7,1.7,0,0,0-1.126-.567A1.8,1.8,0,0,1,9.1,1.94a1.924,1.924,0,0,1-.374-.546A1.775,1.775,0,0,0,7.854.442,1.649,1.649,0,0,0,6.646.671,1.833,1.833,0,0,1,6,.89,1.833,1.833,0,0,1,5.354.671,1.649,1.649,0,0,0,4.146.442a1.78,1.78,0,0,0-.872.952,1.926,1.926,0,0,1-.377.549,1.806,1.806,0,0,1-.625.209,1.7,1.7,0,0,0-1.126.567A1.865,1.865,0,0,0,.977,3.994a2.053,2.053,0,0,1,0,.693A1.915,1.915,0,0,1,.6,5.223,1.844,1.844,0,0,0,0,6.394a1.843,1.843,0,0,0,.6,1.17,1.932,1.932,0,0,1,.377.53,2.061,2.061,0,0,1,0,.694,1.865,1.865,0,0,0,.169,1.282,1.7,1.7,0,0,0,1.126.567,1.806,1.806,0,0,1,.625.209,1.925,1.925,0,0,1,.377.548,1.775,1.775,0,0,0,.872.948,1.649,1.649,0,0,0,1.208-.228A1.831,1.831,0,0,1,6,11.894a1.832,1.832,0,0,1,.646.219,2.244,2.244,0,0,0,.908.281.929.929,0,0,0,.3-.049,1.773,1.773,0,0,0,.872-.951,1.934,1.934,0,0,1,.377-.548,1.8,1.8,0,0,1,.625-.209,1.7,1.7,0,0,0,1.126-.567,1.853,1.853,0,0,0,.169-1.284,2.051,2.051,0,0,1,0-.693,1.881,1.881,0,0,1,.377-.529M5.367,8.69,3.051,6.269l.821-.855L5.367,6.973,8.128,4.1l.821.858Z",transform:"translate(0 -0.394)"})})]}))}},25183:function(e,t,n){"use strict";n.d(t,{CR:function(){return x},R7:function(){return _},Qz:function(){return i},sx:function(){return j},o0:function(){return S},EY:function(){return y},ag:function(){return w},an:function(){return u},lx:function(){return s},BN:function(){return p},Gp:function(){return o},lj:function(){return h},cg:function(){return d},Ud:function(){return l},_F:function(){return f},uV:function(){return m},ep:function(){return g},tF:function(){return Z},V1:function(){return b.Z},aw:function(){return v},ub:function(){return c},v9:function(){return E}});var r=n(1413),a=(n(72791),n(80184)),o=function(e){return(0,a.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.001"},e),{},{children:(0,a.jsx)("path",{id:"InspectIcon",d:"M-2191.428,31a1.876,1.876,0,0,1-1.715-2V27.5h1.285V29a.47.47,0,0,0,.429.5h6.857a.47.47,0,0,0,.428-.5V27.5h1.286V29a1.877,1.877,0,0,1-1.715,2ZM-2194,26V24h12v2Zm2.142-3.5h-1.284V21a1.876,1.876,0,0,1,1.715-2h6.857a1.876,1.876,0,0,1,1.715,2v1.5h-1.286V21a.469.469,0,0,0-.428-.5h-6.857a.469.469,0,0,0-.429.5v1.5h0Z",transform:"translate(2194 -19)"})}))},i=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 14.117 13"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-audit-log-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1591","data-name":"Rect\xe1ngulo 1591",width:"14.117",height:"13"})})}),(0,a.jsxs)("g",{id:"Grupo_2463","data-name":"Grupo 2463",clipPath:"url(#clip-path-audit-log-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7111","data-name":"Trazado 7111",d:"M10.518,108.483a5.376,5.376,0,0,1-2.413.561H8.093a5.47,5.47,0,0,1-4.394-2.2H1.142a.3.3,0,0,1-.29-.3h0v-.694a.3.3,0,0,1,.29-.3H2.987a5.318,5.318,0,0,1-.248-.857H0v6.482a.732.732,0,0,0,.731.726h9.415a.732.732,0,0,0,.731-.726v-2.333Z",transform:"translate(0 -98.898)"}),(0,a.jsx)("path",{id:"Trazado_7112","data-name":"Trazado 7112",d:"M2.636,41.038a5.331,5.331,0,0,1,.683-2.616H.731A.732.732,0,0,0,0,39.154v2.125H2.641c0-.08-.006-.16-.006-.241",transform:"translate(0 -36.296)"}),(0,a.jsx)("path",{id:"Trazado_7114","data-name":"Trazado 7114",d:"M70.167,9.1h0L68.422,7.37a4.685,4.685,0,0,0,.809-2.629,4.795,4.795,0,0,0-9.589,0,4.773,4.773,0,0,0,4.793,4.741h.014a4.754,4.754,0,0,0,2.524-.719l1.779,1.757a1.008,1.008,0,0,0,.7.3h.011a1.005,1.005,0,0,0,.7-1.714M64.394,7.53a2.8,2.8,0,0,1-2.819-2.777,2.819,2.819,0,0,1,5.637,0A2.8,2.8,0,0,1,64.394,7.53",transform:"translate(-56.343)"})]})]}))},s=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("g",{id:"health-icon",transform:"translate(-7440.898 -155.188)",children:(0,a.jsx)("path",{id:"Uni\xf3n_51","data-name":"Uni\xf3n 51",d:"M29.764,256A29.756,29.756,0,0,1,0,226.113V74.364H32.285V223.717H181.242V256Zm189.61-6.664V219.62h29.721v29.716Zm4.342-68.343V32.283H74.76V0H226.227A29.815,29.815,0,0,1,256,29.713v151.28Zm-72.251-.018V151.259h29.8v29.716Zm-76.706,0V151.259h29.8v29.716Zm76.706-76.9V74.364h29.8V104.08Zm-76.649,0V74.364h29.72V104.08ZM6.9,36.867V7.151h29.72V36.867Z",transform:"translate(7440.898 155.188)"})})}))},l=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 15 15"},e),{},{children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1589","data-name":"Rect\xe1ngulo 1589",width:"15",height:"15",rx:"2",fill:"#081836",opacity:"0.601"}),(0,a.jsxs)("g",{id:"OpenListIcon-full",transform:"translate(4 4.984)",children:[(0,a.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(0.167 4.016) rotate(-90)",children:(0,a.jsx)("path",{id:"Trazado_6842","data-name":"Trazado 6842",d:"M.422,0a.433.433,0,0,0-.3.117.37.37,0,0,0,0,.557L2.983,3.325.126,5.986a.37.37,0,0,0,0,.557.443.443,0,0,0,.6,0L3.889,3.609a.373.373,0,0,0,.126-.274.344.344,0,0,0-.126-.274L.727.127A.443.443,0,0,0,.422,0Z",transform:"translate(0 0)"})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_896","data-name":"Rect\xe1ngulo 896",width:"0.462",height:"0.462",transform:"translate(0 1.75)",fill:"none"})]})]}))},c=function(e){return(0,a.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,a.jsxs)("g",{id:"trace-icon",transform:"translate(0 0)",children:[(0,a.jsx)("path",{id:"trace-icn",d:"M-4327.66-381.522l2.667,2.932v5.186a.377.377,0,0,1-.383.368h-.566a.379.379,0,0,1-.384-.368v-4.614l-2.666-3.135v-3.477a.376.376,0,0,1,.382-.368h.567a.376.376,0,0,1,.383.368Zm2.667-3.109a.377.377,0,0,0-.383-.368h-.566a.378.378,0,0,0-.384.368v3.332l2.668,3.135v4.758a.377.377,0,0,0,.383.368h.567a.377.377,0,0,0,.382-.368v-5.33l-2.667-2.931Zm2.284-.368h-.567a.377.377,0,0,0-.383.368v1.827a.377.377,0,0,0,.383.368h.567a.377.377,0,0,0,.382-.368v-1.827A.377.377,0,0,0-4322.709-385Zm2.1,5.554h.568a.377.377,0,0,0,.383-.368v-4.817a.377.377,0,0,0-.383-.368h-.568a.377.377,0,0,0-.383.368v4.817A.377.377,0,0,0-4320.61-379.445Zm3.233-5.554h-.567a.377.377,0,0,0-.383.368v1.827a.377.377,0,0,0,.383.368h.567a.377.377,0,0,0,.384-.368v-1.827A.377.377,0,0,0-4317.376-385Zm0,8.117h-.567a.377.377,0,0,0-.383.368v3.108a.377.377,0,0,0,.383.368h.567a.377.377,0,0,0,.384-.368v-3.108A.377.377,0,0,0-4317.376-376.882Zm0-3.845h-.567a.377.377,0,0,0-.383.368v.828l-2.667,2.648v3.477a.377.377,0,0,0,.383.368h.568a.377.377,0,0,0,.383-.368v-2.622l2.667-3.135v-1.2A.377.377,0,0,0-4317.376-380.727Zm-10.667,2.136h-.567a.376.376,0,0,0-.382.368v4.817a.376.376,0,0,0,.382.368h.567a.376.376,0,0,0,.383-.368v-4.817A.376.376,0,0,0-4328.043-378.591Z",transform:"translate(4328.993 384.999)"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_880","data-name":"Rect\xe1ngulo 880",width:"11.078",height:"11.844",transform:"translate(0.472 0.156)",fill:"none"})]})}))},u=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 10.087"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-groups-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_992","data-name":"Rect\xe1ngulo 992",width:"12",height:"10.087"})})}),(0,a.jsxs)("g",{id:"Grupo_2367","data-name":"Grupo 2367",clipPath:"url(#clip-path-groups-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7090","data-name":"Trazado 7090",d:"M204.925,3.5a2.963,2.963,0,0,1-.177,1.011c.042,0,.084,0,.127,0a2.274,2.274,0,0,0,2.284-2.258,2.288,2.288,0,0,0-4-1.486A3.005,3.005,0,0,1,204.925,3.5",transform:"translate(-195.887 0)"}),(0,a.jsx)("path",{id:"Trazado_7091","data-name":"Trazado 7091",d:"M207.3,137.346a3.458,3.458,0,0,0-1.31-1.03,3.642,3.642,0,0,0-.725-.242,3.479,3.479,0,0,0-.748-.082c-.05,0-.1,0-.151,0h-.017l-.1.007a3.039,3.039,0,0,1-1.442,1.357,4.587,4.587,0,0,1,.583.219,4.389,4.389,0,0,1,1.656,1.3,1.775,1.775,0,0,1,.177.28h1.242a1.169,1.169,0,0,0,.3-.039,1.066,1.066,0,0,0,.27-.113,1.02,1.02,0,0,0,.225-.181,1.036,1.036,0,0,0,.168-.242,1.179,1.179,0,0,0-.128-1.239",transform:"translate(-195.543 -131.125)"}),(0,a.jsx)("path",{id:"Trazado_7092","data-name":"Trazado 7092",d:"M22.838,4.516c.043,0,.086,0,.129,0A2.962,2.962,0,0,1,22.789,3.5,3.005,3.005,0,0,1,24.556.773a2.288,2.288,0,0,0-4,1.485,2.274,2.274,0,0,0,2.284,2.258",transform:"translate(-19.819 -0.001)"}),(0,a.jsx)("path",{id:"Trazado_7093","data-name":"Trazado 7093",d:"M3.757,137.784a4.577,4.577,0,0,1,.986-.428,3.039,3.039,0,0,1-1.431-1.35c-.1-.009-.206-.014-.31-.014-.05,0-.1,0-.151,0H2.834a3.293,3.293,0,0,0-.367.039,3.506,3.506,0,0,0-2.194,1.286l-.057.077h0a1.154,1.154,0,0,0-.089,1.194,1.058,1.058,0,0,0,.171.239,1.042,1.042,0,0,0,.226.179,1.079,1.079,0,0,0,.269.112,1.169,1.169,0,0,0,.3.039H2.331a1.764,1.764,0,0,1,.126-.2v0l0,0,.071-.1a4.235,4.235,0,0,1,1.225-1.071",transform:"translate(-0.001 -131.126)"}),(0,a.jsx)("path",{id:"Trazado_7094","data-name":"Trazado 7094",d:"M95.021,28.466a2.6,2.6,0,1,0,2.6-2.574,2.592,2.592,0,0,0-2.6,2.574",transform:"translate(-91.621 -24.965)"}),(0,a.jsx)("path",{id:"Trazado_7095","data-name":"Trazado 7095",d:"M76.691,181.3a4.152,4.152,0,0,0-.827-.276,3.966,3.966,0,0,0-.853-.094c-.057,0-.115,0-.172,0h-.02a3.753,3.753,0,0,0-.419.045,4,4,0,0,0-2.5,1.466l-.065.088h0a1.315,1.315,0,0,0-.1,1.362,1.208,1.208,0,0,0,.195.272,1.189,1.189,0,0,0,.257.2,1.233,1.233,0,0,0,.307.127,1.333,1.333,0,0,0,.342.044h4.4a1.331,1.331,0,0,0,.345-.045,1.216,1.216,0,0,0,.307-.129,1.164,1.164,0,0,0,.256-.207,1.183,1.183,0,0,0,.191-.276,1.344,1.344,0,0,0-.146-1.412,3.943,3.943,0,0,0-1.494-1.174",transform:"translate(-69.028 -174.452)"})]})]}))},d=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 15 15"},e),{},{children:(0,a.jsxs)("g",{id:"Grupo_2449","data-name":"Grupo 2449",transform:"translate(-140 -181)",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1589","data-name":"Rect\xe1ngulo 1589",width:"15",height:"15",rx:"2",transform:"translate(140 181)",fill:"#08193a",opacity:"0.601"}),(0,a.jsxs)("g",{id:"OpenListIcon-full",transform:"translate(144 250.612)",children:[(0,a.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(6.827 -63.612) rotate(90)",children:(0,a.jsx)("path",{id:"Trazado_6842","data-name":"Trazado 6842",d:"M.422,6.661a.433.433,0,0,1-.3-.117.37.37,0,0,1,0-.557L2.983,3.335.126.675a.37.37,0,0,1,0-.557.443.443,0,0,1,.6,0L3.889,3.052a.373.373,0,0,1,.126.274.344.344,0,0,1-.126.274L.727,6.533a.443.443,0,0,1-.306.127Z",transform:"translate(0 0)"})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_896","data-name":"Rect\xe1ngulo 896",width:"0.462",height:"0.462",transform:"translate(0 -61.808)",fill:"none"})]})]})}))},f=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-metrics-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_946","data-name":"Rect\xe1ngulo 946",width:"12",height:"12",transform:"translate(0 0)"})})}),(0,a.jsx)("g",{id:"DashboardIcon-Full",transform:"translate(0.037 0.021)",children:(0,a.jsx)("g",{id:"Grupo_2300","data-name":"Grupo 2300",transform:"translate(-0.037 -0.021)",clipPath:"url(#clip-path-metrics-menu-icon)",children:(0,a.jsx)("path",{id:"Trazado_7036","data-name":"Trazado 7036",d:"M11.722.239A.805.805,0,0,0,11.15,0H.809A.811.811,0,0,0,0,.81V11.151a.811.811,0,0,0,.809.809H11.15a.811.811,0,0,0,.809-.809V.811a.805.805,0,0,0-.237-.572M1.935,2.544a.724.724,0,0,1,.724-.724H4.94a.724.724,0,0,1,.724.724V3.613a.724.724,0,0,1-.724.724H2.659a.724.724,0,0,1-.724-.724Zm3.73,6.932a.7.7,0,0,1-.724.664H2.659a.7.7,0,0,1-.724-.664V6.01a.7.7,0,0,1,.724-.664H4.94a.7.7,0,0,1,.724.664Zm4.627-.059a.724.724,0,0,1-.724.724H7.286a.724.724,0,0,1-.724-.724V8.349a.724.724,0,0,1,.724-.724H9.568a.724.724,0,0,1,.724.724Zm0-3.466a.7.7,0,0,1-.724.664H7.286a.7.7,0,0,1-.724-.664V2.484a.7.7,0,0,1,.724-.664H9.567a.7.7,0,0,1,.724.664Z",transform:"translate(0.006 0.002)"})})})]}))},p=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 17 12.782"},e),{},{children:(0,a.jsx)("path",{id:"Sustracci\xf3n_4","data-name":"Sustracci\xf3n 4",d:"M14.01,11.782H1.99a2,2,0,0,1-1.99-2V2A2,2,0,0,1,1.99,0H14.01A2,2,0,0,1,16,2V9.786A2,2,0,0,1,14.01,11.782ZM2.793,10.4H6.814a1.166,1.166,0,0,0,1.055-.676A1.434,1.434,0,0,0,7.73,8.29,3.755,3.755,0,0,0,5.573,6.862a3.448,3.448,0,0,0-.791-.093c-.056,0-.116,0-.184,0A3.665,3.665,0,0,0,1.879,8.261q-.024.032-.046.065l-.015.023a1.411,1.411,0,0,0-.1,1.388,1.183,1.183,0,0,0,1.06.666ZM9.627,9.093a.627.627,0,1,0,0,1.254H14a.627.627,0,1,0,0-1.254Zm0-2.383a.627.627,0,1,0,0,1.255H14A.627.627,0,1,0,14,6.71ZM4.906.941A2.621,2.621,0,0,0,2.345,3.613,2.622,2.622,0,0,0,4.906,6.286a2.441,2.441,0,0,0,1-.211A2.538,2.538,0,0,0,6.718,5.5a2.677,2.677,0,0,0,.549-.85,2.739,2.739,0,0,0,.2-1.039A2.621,2.621,0,0,0,4.906.941ZM9.627,4.264a.627.627,0,1,0,0,1.254H14a.627.627,0,1,0,0-1.254Z",transform:"translate(0.5 0.5)",stroke:"rgba(0,0,0,0)",strokeWidth:"1"})}))},h=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-logs-menu",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_982","data-name":"Rect\xe1ngulo 982",width:"12",height:"12",transform:"translate(0 0)"})})}),(0,a.jsx)("g",{id:"logs-icon",transform:"translate(-0.245 0.078)",children:(0,a.jsxs)("g",{id:"Grupo_2346","data-name":"Grupo 2346",transform:"translate(0.245 -0.078)",clipPath:"url(#clip-path-logs-menu)",children:[(0,a.jsx)("path",{id:"Trazado_7070","data-name":"Trazado 7070",d:"M.1,86.274v7.138a.806.806,0,0,0,.805.8H11.273a.806.806,0,0,0,.805-.8V86.274Zm4.482,1.274v.764a.324.324,0,0,1-.318.331H1.358a.325.325,0,0,1-.319-.331v-.764a.325.325,0,0,1,.319-.33H4.264a.324.324,0,0,1,.318.33Z",transform:"translate(-0.135 -82.221)"}),(0,a.jsx)("path",{id:"Trazado_7071","data-name":"Trazado 7071",d:"M11.273.1H.905A.806.806,0,0,0,.1.906v2.34H12.078V.906A.806.806,0,0,0,11.273.1",transform:"translate(-0.135 -0.084)"})]})})]}))},m=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 16 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-monitoring-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1587","data-name":"Rect\xe1ngulo 1587",width:"16",height:"16"})})}),(0,a.jsxs)("g",{id:"Grupo_2441","data-name":"Grupo 2441",clipPath:"url(#clip-path-monitoring-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7103","data-name":"Trazado 7103",d:"M15.551,13.464,12.973,10.9a6.932,6.932,0,0,0,.846-1.72H10.813A4.386,4.386,0,0,1,2.646,7.03a4.377,4.377,0,0,1,8.744-.222h2.776A7.086,7.086,0,0,0,0,7.013a7.056,7.056,0,0,0,7.083,7.012H7.1a7.019,7.019,0,0,0,3.73-1.063l2.629,2.6A1.489,1.489,0,0,0,14.5,16h.016a1.487,1.487,0,0,0,1.038-2.536Z"}),(0,a.jsx)("path",{id:"Trazado_7104","data-name":"Trazado 7104",d:"M164.692,167.057a.271.271,0,0,0-.264-.213h0a.271.271,0,0,0-.264.211l-.218.966-.187-.572a.271.271,0,0,0-.526.051l-.249,2.03-.859-4.085a.271.271,0,0,0-.527-.011l-.765,3a.713.713,0,1,0,.512.183l.489-1.919.955,4.54a.271.271,0,0,0,.265.215h.012a.271.271,0,0,0,.257-.238l.3-2.437.114.351a.271.271,0,0,0,.521-.025l.167-.741.156.71a.271.271,0,0,0,.264.213h6.909a.271.271,0,0,0,0-.542h-6.692Z",transform:"translate(-156.025 -160.967)"})]})]}))},v=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 13.264 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-support-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1590","data-name":"Rect\xe1ngulo 1590",width:"13.264",height:"16"})})}),(0,a.jsxs)("g",{id:"Grupo_2451","data-name":"Grupo 2451",clipPath:"url(#clip-path-support-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7107","data-name":"Trazado 7107",d:"M141.4,175.257a1.765,1.765,0,1,0,1.765-1.763,1.758,1.758,0,0,0-1.765,1.763",transform:"translate(-136.66 -167.676)"}),(0,a.jsx)("path",{id:"Trazado_7108","data-name":"Trazado 7108",d:"M13.256,11.233l-.791-3.756.064-1.906a.373.373,0,0,0,0-.052A6.285,6.285,0,0,0,9.25.642h0L9.185.608c-.153-.08-.31-.155-.471-.223a.375.375,0,0,0-.13-.031A7.2,7.2,0,0,0,7.731.106v5.28a2.51,2.51,0,0,1,.343,4.16l.876,1.516a.376.376,0,0,1-.275.564.373.373,0,0,1-.147-.01.376.376,0,0,1-.228-.178L7.424,9.923A2.514,2.514,0,0,1,5.282,5.385V0a6.15,6.15,0,0,0-1.141.28A.377.377,0,0,0,4.065.3q-.231.087-.453.192A6.281,6.281,0,0,0,1.869,10.647l-.5,3.2a.376.376,0,0,0,.152.363.379.379,0,0,0,.124.058l6.6,1.722a.376.376,0,0,0,.467-.315l.283-2.165,1.738.4a.376.376,0,0,0,.454-.306l.313-1.912h1.39a.376.376,0,0,0,.368-.453",transform:"translate(0 0.001)"})]})]}))},g=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-performance-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_985","data-name":"Rect\xe1ngulo 985",width:"12",height:"12"})})}),(0,a.jsxs)("g",{id:"Grupo_2352","data-name":"Grupo 2352",clipPath:"url(#clip-path-performance-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7077","data-name":"Trazado 7077",d:"M120.417,129.741a.387.387,0,1,0,.387.387h0a.387.387,0,0,0-.387-.387",transform:"translate(-114.404 -123.659)"}),(0,a.jsx)("path",{id:"Trazado_7078","data-name":"Trazado 7078",d:"M6,0a6,6,0,1,0,6,6A6,6,0,0,0,6,0M5.974,1.662h.02a.366.366,0,1,1-.006.733H5.974a.366.366,0,0,1,0-.733m-4.1,4.026v0a.139.139,0,0,1-.139.12H1.717a.139.139,0,0,1-.12-.156v0h0a.139.139,0,0,1,.156-.119h0a.139.139,0,0,1,.118.157M2.2,4.447h0a.2.2,0,0,1-.179-.3v0h0a.2.2,0,1,1,.178.3M3.323,3.238l-.015.013,0,0a.249.249,0,0,1-.165.064v0a.25.25,0,0,1-.164-.438l0,0h0l0,0a.25.25,0,0,1,.341.366M4.555,2.6l0,0-.008,0a.329.329,0,0,1-.119.025v0a.331.331,0,0,1-.117-.642l.01,0h0a.331.331,0,1,1,.238.619m2.1,6.622h0a.176.176,0,0,1-.176.176H5.531a.176.176,0,1,1,0-.353h.952a.177.177,0,0,1,.178.175Zm.781-3.493-.652.556a.016.016,0,0,0,0,.015.8.8,0,1,1-.489-.57.016.016,0,0,0,.016,0l.649-.556h0a.366.366,0,0,1,.476.556m-.05-3.025v0a.4.4,0,0,1-.143-.026l-.012,0a.406.406,0,1,1,.284-.76l.014.005a.408.408,0,0,1-.143.789m1.292.827a.46.46,0,0,1-.3-.114L8.37,3.41a.46.46,0,0,1,.6-.694l.013.011a.46.46,0,0,1-.3.806m.47.964-.009-.016a.529.529,0,1,1,.916-.529l.013.023.009.017h0a.529.529,0,0,1-.213.717h0A.529.529,0,0,1,9.154,4.5m1.014,1.772a.6.6,0,0,1-.675-.512v-.02a.6.6,0,0,1,.592-.679.6.6,0,0,1,.591.516l0,.023a.6.6,0,0,1-.512.672"})]})]}))},y=function(e){return(0,a.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,a.jsxs)("g",{id:"diagnostic-icn-full",transform:"translate(0 -0.131)",children:[(0,a.jsx)("path",{id:"Uni\xf3n_17","data-name":"Uni\xf3n 17",d:"M0,5.962A5.956,5.956,0,0,1,5.935,0h.491V2.461a3.512,3.512,0,1,1-.981,0V1.009a4.893,4.893,0,0,0-1.752.515A4.981,4.981,0,0,0,2.276,2.611a4.994,4.994,0,0,0-.949,1.524,4.96,4.96,0,1,0,9.564,1.827.49.49,0,0,1,.144-.348.485.485,0,0,1,.346-.144.492.492,0,0,1,.491.493A5.936,5.936,0,1,1,0,5.962ZM4.634,3.771a2.553,2.553,0,0,0-.806,3.618,2.568,2.568,0,0,0,.687.69,2.541,2.541,0,0,0,.432.236,2.51,2.51,0,0,0,.989.2,2.555,2.555,0,0,0,1.3-4.745,2.522,2.522,0,0,0-.811-.313V4.878a1.2,1.2,0,0,1,.5.431,1.188,1.188,0,1,1-1.986,0,1.2,1.2,0,0,1,.5-.431V3.458A2.521,2.521,0,0,0,4.634,3.771Z",transform:"translate(0.129 0.131)"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_878","data-name":"Rect\xe1ngulo 878",width:"11.92",height:"11.975",transform:"translate(0 0.156)",fill:"none"})]})}))},x=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 11.749 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-access-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1586","data-name":"Rect\xe1ngulo 1586",width:"11.749",height:"16"})})}),(0,a.jsx)("g",{id:"Grupo_2439","data-name":"Grupo 2439",clipPath:"url(#clip-path-access-menu-icon)",children:(0,a.jsx)("path",{id:"Trazado_7102","data-name":"Trazado 7102",d:"M11.018,3.348h-2.1c.009-.1.014-.194.014-.293a3.057,3.057,0,0,0-6.113,0c0,.1.005.2.015.3H.744A1.019,1.019,0,0,0,0,4.343v5.913A2.814,2.814,0,0,0,.4,11.7c1,1.676,2.625,2.648,4.955,4.143A.965.965,0,0,0,5.88,16h0a.956.956,0,0,0,.5-.145c2.264-1.4,3.8-2.315,4.984-4.234a2.665,2.665,0,0,0,.381-1.4V4.337a1.024,1.024,0,0,0-.731-.989M5.875,1.05a2,2,0,0,1,1.983,2.3l-3.966,0a2,2,0,0,1,1.983-2.3m0,4.073a2.189,2.189,0,1,1,0,4.377h0a2.189,2.189,0,1,1,0-4.377m2.786,7.212a1,1,0,0,1-.162.233.984.984,0,0,1-.216.175,1.028,1.028,0,0,1-.26.109,1.127,1.127,0,0,1-.29.038H4.023a1.123,1.123,0,0,1-.29-.037,1.04,1.04,0,0,1-.259-.108,1,1,0,0,1-.218-.172,1.019,1.019,0,0,1-.164-.23,1.112,1.112,0,0,1,.086-1.15c.017-.026.036-.05.055-.074A3.376,3.376,0,0,1,5.346,9.88,3.182,3.182,0,0,1,5.7,9.841h.017c.048,0,.1,0,.145,0a3.348,3.348,0,0,1,.72.079,3.506,3.506,0,0,1,.7.234,3.33,3.33,0,0,1,1.262.992h0a1.136,1.136,0,0,1,.123,1.193",transform:"translate(0 0.001)"})})]}))},b=n(8135),w=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-drives-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_989","data-name":"Rect\xe1ngulo 989",width:"12",height:"12"})})}),(0,a.jsxs)("g",{id:"Grupo_2361","data-name":"Grupo 2361",clipPath:"url(#clip-path-drives-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7083","data-name":"Trazado 7083",d:"M6,2.839H6c3.882,0,6-.938,6-1.42S9.882,0,6,0,0,.938,0,1.42s2.118,1.42,6,1.42",transform:"translate(0)"}),(0,a.jsx)("path",{id:"Trazado_7084","data-name":"Trazado 7084",d:"M6,135.08a15.409,15.409,0,0,1-6-1v3.228c0,.482,2.118,1.42,6,1.42s6-.93,6-1.42v-3.233a15.245,15.245,0,0,1-6,1m-3.939,2.063a.915.915,0,0,1-1.234-.281.849.849,0,0,1,.291-1.192.915.915,0,0,1,1.234.281.849.849,0,0,1-.291,1.192",transform:"translate(0 -126.731)"}),(0,a.jsx)("path",{id:"Trazado_7085","data-name":"Trazado 7085",d:"M6,53.034a15.306,15.306,0,0,1-6-1V55.1c0,.482,2.118,1.42,6,1.42s6-.938,6-1.42V52.032a15.244,15.244,0,0,1-6,1M2.061,55.19a.915.915,0,0,1-1.234-.281.849.849,0,0,1,.291-1.192A.915.915,0,0,1,2.353,54a.849.849,0,0,1-.291,1.192",transform:"translate(0 -49.181)"})]})]}))},_=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"account",children:[(0,a.jsx)("path",{"data-name":"Trazado 463",d:"M32.291 232.53a32.336 32.336 0 0 1-32.289-32.3V76.935a32.33 32.33 0 0 1 32.289-32.3 8.837 8.837 0 0 1 8.832 8.822 8.845 8.845 0 0 1-8.832 8.831 14.663 14.663 0 0 0-14.648 14.648v123.295a14.661 14.661 0 0 0 14.648 14.64h191.4a14.66 14.66 0 0 0 14.641-14.64V76.936a14.661 14.661 0 0 0-14.641-14.648h-54.07a8.845 8.845 0 0 1-8.832-8.831 8.762 8.762 0 0 1 2.586-6.236 8.735 8.735 0 0 1 6.246-2.586h54.07a32.345 32.345 0 0 1 32.313 32.3V200.23a32.351 32.351 0 0 1-32.312 32.3Zm140.445-33.006a3.078 3.078 0 0 1-3.082-3.07V179.02a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.434a3.075 3.075 0 0 1-3.07 3.07Zm-113.141 0a22.643 22.643 0 0 1-20.648-12.767 26.835 26.835 0 0 1 1.891-26.579l.02-.019c.094-.143.2-.285.3-.428.273-.409.559-.827.871-1.245a70.651 70.651 0 0 1 52.277-28.5 62.967 62.967 0 0 1 3.543-.095 67.043 67.043 0 0 1 15.211 1.777 71.594 71.594 0 0 1 14.734 5.219 71.248 71.248 0 0 1 26.73 22.149 27.371 27.371 0 0 1 2.672 27.53 22.363 22.363 0 0 1-20.629 12.956Zm-3.719-30.372v.01l-.047.058c-.191.256-.371.5-.531.741v.028l-.258.371a8.365 8.365 0 0 0-.715 8.261 5.526 5.526 0 0 0 5.27 3.1h76.969a6.062 6.062 0 0 0 3.156-.761 4.988 4.988 0 0 0 1.949-2.243 8.485 8.485 0 0 0 .715-4.524 9.18 9.18 0 0 0-1.7-4.468 54.088 54.088 0 0 0-42.969-22.007c-.93 0-1.75.019-2.508.066h-.012a53.055 53.055 0 0 0-39.318 21.368Zm116.859-5.01a3.08 3.08 0 0 1-3.082-3.079v-17.425a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.425a3.077 3.077 0 0 1-3.07 3.079Zm-.59-38.7a2.5 2.5 0 0 1-2.492-2.5V82.066a2.5 2.5 0 0 1 2.492-2.5h48.348a2.5 2.5 0 0 1 2.492 2.5v40.876a2.5 2.5 0 0 1-2.492 2.5ZM50.981 74.213c0-28.233 22.09-51.209 49.242-51.209s49.258 22.976 49.258 51.209a52.579 52.579 0 0 1-3.867 19.906 51.257 51.257 0 0 1-10.551 16.274 49.07 49.07 0 0 1-15.656 11 47.257 47.257 0 0 1-19.184 4.041c-27.151 0-49.241-22.976-49.241-51.22Zm17.977 0c0 18.033 14.031 32.711 31.266 32.711 17.262 0 31.3-14.678 31.3-32.711s-14.039-32.7-31.3-32.7c-17.234 0-31.265 14.668-31.265 32.701Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 883",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 10.456"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-profile-menu-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1599","data-name":"Rect\xe1ngulo 1599",width:"12",height:"10.456"})})}),(0,a.jsxs)("g",{id:"Grupo_2475","data-name":"Grupo 2475",clipPath:"url(#clip-path-profile-menu-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7122","data-name":"Trazado 7122",d:"M33.036,1.016H43.058L43.3.207A.161.161,0,0,0,43.145,0h-10.2a.161.161,0,0,0-.154.207Z",transform:"translate(-32.063)"}),(0,a.jsx)("path",{id:"Trazado_7123","data-name":"Trazado 7123",d:"M11.551,67.822H.449A.449.449,0,0,0,0,68.333l.644,4.659a.451.451,0,0,0,.018.078H11.334a.451.451,0,0,0,.018-.078L12,68.333a.449.449,0,0,0-.445-.511",transform:"translate(0 -66.323)"}),(0,a.jsx)("path",{id:"Trazado_7124","data-name":"Trazado 7124",d:"M16.471,328.2H5.652a.476.476,0,0,0-.452.624l.845,2.576H16.078l.845-2.576a.476.476,0,0,0-.452-.624",transform:"translate(-5.062 -320.942)"})]})]}))},S=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 13.754 14.047"},e),{},{children:(0,a.jsx)("path",{id:"call-home-icon",d:"M-2188.145,31.22l-5.076-5.082a2.671,2.671,0,0,1-.779-1.885,2.671,2.671,0,0,1,.779-1.885l1.453-1.453a.312.312,0,0,1,.439,0l2.334,2.336a.31.31,0,0,1,0,.439l-.717.718a.285.285,0,0,0,0,.4l2.9,2.9a.285.285,0,0,0,.4,0l.717-.718a.311.311,0,0,1,.44,0l2.327,2.332a.311.311,0,0,1,0,.44l-1.453,1.452a2.664,2.664,0,0,1-1.885.779A2.667,2.667,0,0,1-2188.145,31.22Zm2.6-6.814a.561.561,0,0,1-.562-.562V22.09h-.209a.561.561,0,0,1-.53-.362.56.56,0,0,1,.156-.622l2.245-1.964a.56.56,0,0,1,.748,0l2.245,1.964a.56.56,0,0,1,.156.622.561.561,0,0,1-.53.362h-.21v1.754a.56.56,0,0,1-.561.562Z",transform:"translate(2194.5 -18.452)",stroke:"rgba(0,0,0,0)",strokeWidth:"1"})}))},j=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 16 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-buckets",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_928","data-name":"Rect\xe1ngulo 928",width:"15.957",height:"15.928"})})}),(0,a.jsxs)("g",{id:"BucketsIcons-Full",transform:"translate(0.283)",children:[(0,a.jsxs)("g",{id:"BucketsIcon-full",transform:"translate(-0.283)",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_884","data-name":"Rect\xe1ngulo 884",width:"15.939",height:"15.911",transform:"translate(0.061)",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2272","data-name":"Grupo 2272",transform:"translate(0 0.072)",children:(0,a.jsx)("g",{id:"Grupo_2271","data-name":"Grupo 2271",clipPath:"url(#clip-path-buckets)",children:(0,a.jsx)("path",{id:"Trazado_7002","data-name":"Trazado 7002",d:"M15.619.545A1.341,1.341,0,0,0,14.553,0H1.386A1.34,1.34,0,0,0,.32.545a1.606,1.606,0,0,0-.3,1.242c.325,1.888,1.009,5.869,1.557,9.045v.006c.277,1.616.519,3.023.661,3.84A1.422,1.422,0,0,0,3.6,15.911h8.733A1.423,1.423,0,0,0,13.7,14.679l.659-3.836,0-.023.893-5.2,0-.015.658-3.821a1.6,1.6,0,0,0-.3-1.242M13.187,11.3l-10.426,0-.2-1.189H13.383Zm.89-5.216-12.221,0L1.651,4.9H14.273Z",transform:"translate(0.061 -0.072)"})})})]}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_929","data-name":"Rect\xe1ngulo 929",width:"15.957",height:"15.928",transform:"translate(-0.283 0.072)",fill:"none"})]})]}))},E=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 9.008 12"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-users-menu",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_991","data-name":"Rect\xe1ngulo 991",width:"9.008",height:"12"})})}),(0,a.jsxs)("g",{id:"users-icon",clipPath:"url(#clip-path-users-menu)",children:[(0,a.jsx)("path",{id:"Trazado_7088","data-name":"Trazado 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)"}),(0,a.jsx)("path",{id:"Trazado_7089","data-name":"Trazado 7089",d:"M8.639,157.056a5.164,5.164,0,0,0-1.957-1.538,5.439,5.439,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.581,1.581,0,0,0,.255.356,1.559,1.559,0,0,0,.337.267,1.614,1.614,0,0,0,.4.167,1.743,1.743,0,0,0,.449.058H7.389a1.748,1.748,0,0,0,.452-.058,1.594,1.594,0,0,0,.4-.169,1.525,1.525,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)"})]})]}))}},85090:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 849",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"sync-icn",d:"M37.848 131.79c0-.057.006-.114.006-.166l-5.4 6.524-9.992 11.438c-11.006 12.6-30.166-4.136-19.16-16.739l33.545-38.416a12.732 12.732 0 0 1 18.1-1.222l38.41 33.549c12.6 11.006-4.133 30.171-16.74 19.165l-14.342-12.527-2.316-2.123c0 .175.023.346.023.517a73.159 73.159 0 0 0 73.078 73.078 73.28 73.28 0 0 0 59.584-30.763 11.067 11.067 0 0 1 15.432-2.6 11.062 11.062 0 0 1 2.6 15.432 95.45 95.45 0 0 1-77.611 40.059 95.316 95.316 0 0 1-95.217-95.206Zm163.207 21.989-38.4-33.549c-12.6-11.011 4.131-30.176 16.738-19.17l14.338 12.532 2.32 2.118c0-.171-.023-.336-.023-.512A73.159 73.159 0 0 0 122.95 42.12a73.289 73.289 0 0 0-59.588 30.759 11.068 11.068 0 0 1-15.432 2.6 11.071 11.071 0 0 1-2.6-15.431 95.439 95.439 0 0 1 77.615-40.06 95.317 95.317 0 0 1 95.209 95.209c0 .057-.01.109-.01.166l5.4-6.529 9.992-11.433c11.006-12.6 30.17 4.136 19.16 16.739l-33.545 38.415a12.894 12.894 0 0 1-9.689 4.43 12.7 12.7 0 0 1-8.407-3.205Z",stroke:"rgba(0,0,0,0)",strokeMiterlimit:10})]})]}))}},88449:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 394",d:"M222.617 88.875a26.012 26.012 0 0 0-23.281 14.452l-44.307-6.454a74.856 74.856 0 0 0 2.892-20.607A74.732 74.732 0 0 0 83.285 1.439 74.732 74.732 0 0 0 8.643 76.266a74.763 74.763 0 0 0 65.415 74.236l-1.38 25.452c-.127-.006-.249-.019-.371-.019a18.44 18.44 0 0 0-18.42 18.46 18.441 18.441 0 0 0 18.42 18.466 18.443 18.443 0 0 0 18.42-18.466 18.459 18.459 0 0 0-7.851-15.108l1.535-28.223a74.164 74.164 0 0 0 32.006-7.749l39.5 51.413a36.849 36.849 0 0 0-10.488 25.784 36.884 36.884 0 0 0 36.84 36.927 36.88 36.88 0 0 0 36.834-36.927 36.881 36.881 0 0 0-36.834-36.931 36.539 36.539 0 0 0-18.137 4.811l-38.7-50.376a75.035 75.035 0 0 0 25.967-31.174l45.242 6.59c-.029.519-.078 1.032-.078 1.556a26.082 26.082 0 0 0 26.051 26.112 26.082 26.082 0 0 0 26.05-26.112 26.082 26.082 0 0 0-26.047-26.113Z"}),(0,a.jsx)("path",{"data-name":"Trazado 395",d:"M181.396 256a38.679 38.679 0 0 1-38.636-38.643 38.393 38.393 0 0 1 9.576-25.436l-36.435-47.307a74.862 74.862 0 0 1-28.494 6.932l-1.318 24.217a20.571 20.571 0 0 1 7.657 15.975 20.545 20.545 0 0 1-20.52 20.514 20.54 20.54 0 0 1-20.518-20.514 20.549 20.549 0 0 1 18.6-20.432l1.125-20.571A75.865 75.865 0 0 1 8.2 75.818 75.907 75.907 0 0 1 84.02-.005a75.908 75.908 0 0 1 75.822 75.823 75.76 75.76 0 0 1-2.229 18.236l39.257 5.7a27.844 27.844 0 0 1 24.216-13.965 28.051 28.051 0 0 1 28.018 28.022 28.051 28.051 0 0 1-28.018 28.022 28.052 28.052 0 0 1-28.02-27.48l-40.61-5.9a76.059 76.059 0 0 1-23.551 28.463l35.308 45.854a38.644 38.644 0 0 1 17.18-4.049 38.678 38.678 0 0 1 38.633 38.634A38.678 38.678 0 0 1 181.396 256Zm-64.078-117.413 41.329 53.665-1.453 1.492a33.619 33.619 0 0 0-9.635 23.618 33.876 33.876 0 0 0 33.837 33.84 33.875 33.875 0 0 0 33.835-33.84 33.874 33.874 0 0 0-33.835-33.837 33.822 33.822 0 0 0-16.657 4.409l-1.814 1.027-40.89-53.094 2.092-1.434a71.22 71.22 0 0 0 24.718-29.586l.739-1.65 48.482 7.038-.133 2.2c-.049.739-.073 1.055-.073 1.381a23.253 23.253 0 0 0 23.227 23.225 23.249 23.249 0 0 0 23.222-23.225 23.246 23.246 0 0 0-23.222-23.224 23.1 23.1 0 0 0-20.759 12.852l-.776 1.549-48.012-6.975.759-2.639a71.253 71.253 0 0 0 2.749-19.559A71.1 71.1 0 0 0 84.022 4.794 71.1 71.1 0 0 0 12.999 75.82a71.061 71.061 0 0 0 62.243 70.465l2.225.273-1.608 29.524-2.318-.043h-.037a15.779 15.779 0 0 0-16 15.7 15.739 15.739 0 0 0 15.721 15.717 15.741 15.741 0 0 0 15.722-15.717 15.763 15.763 0 0 0-6.7-12.866l-1.09-.763 1.7-31.26 2.235-.033a70.305 70.305 0 0 0 30.455-7.355Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 868",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},54599:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1557",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 826",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 10",d:"M71.113 256a37.94 37.94 0 01-37.889-37.9V60.906a15.426 15.426 0 01-14.227-15.353V29.621a15.423 15.423 0 0115.4-15.4h41.541A15.378 15.378 0 0191.258.003h72.871a15.393 15.393 0 0115.334 14.218h41.531a15.423 15.423 0 0115.4 15.4v15.932a15.426 15.426 0 01-14.227 15.353V218.1a37.942 37.942 0 01-37.9 37.9zm-19.605-37.9a19.634 19.634 0 0019.605 19.614h113.164A19.637 19.637 0 00203.89 218.1V60.951H51.507zM218.117 38.6v-6.1h-56.893V18.278H94.177V32.5H37.286v6.1z"})]})]})]}))}},97506:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,className:"min-icon",fill:"currentcolor"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"registration-icon_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1593",fill:"#4ccb92",d:"M0 0h20v20H0z"})})}),(0,a.jsx)("g",{"data-name":"Grupo 2469",clipPath:"url(#registration-icon_svg__a)",children:(0,a.jsx)("path",{"data-name":"Trazado 7117",d:"M19.075 11.962a3.1 3.1 0 0 0 1.008-1.965 3.1 3.1 0 0 0-1.008-1.963 3.134 3.134 0 0 1-.633-.894 3.4 3.4 0 0 1 0-1.164 3.121 3.121 0 0 0-.286-2.154 2.856 2.856 0 0 0-1.892-.952 3.024 3.024 0 0 1-1.053-.353 3.232 3.232 0 0 1-.628-.917A2.982 2.982 0 0 0 13.118 0a2.77 2.77 0 0 0-2.029.383 3.079 3.079 0 0 1-1.085.368 3.079 3.079 0 0 1-1.085-.37A2.77 2.77 0 0 0 6.89-.002a2.99 2.99 0 0 0-1.465 1.599 3.236 3.236 0 0 1-.633.922 3.033 3.033 0 0 1-1.05.351 2.856 2.856 0 0 0-1.892.953 3.133 3.133 0 0 0-.284 2.142 3.448 3.448 0 0 1 0 1.164 3.216 3.216 0 0 1-.633.9A3.1 3.1 0 0 0-.075 9.996a3.1 3.1 0 0 0 1.008 1.965 3.246 3.246 0 0 1 .633.89 3.462 3.462 0 0 1 0 1.166 3.133 3.133 0 0 0 .284 2.154 2.856 2.856 0 0 0 1.892.952 3.033 3.033 0 0 1 1.05.351 3.234 3.234 0 0 1 .633.921 2.982 2.982 0 0 0 1.465 1.592 2.77 2.77 0 0 0 2.029-.383 3.076 3.076 0 0 1 1.085-.37 3.077 3.077 0 0 1 1.085.368 3.769 3.769 0 0 0 1.525.472 1.561 1.561 0 0 0 .5-.082 2.978 2.978 0 0 0 1.465-1.6 3.249 3.249 0 0 1 .633-.921 3.032 3.032 0 0 1 1.05-.351 2.856 2.856 0 0 0 1.892-.952 3.113 3.113 0 0 0 .284-2.157 3.445 3.445 0 0 1 0-1.164 3.16 3.16 0 0 1 .633-.889m-10.13 1.894-3.89-4.066 1.38-1.437 2.51 2.618 4.638-4.833 1.38 1.442Z",fill:"currentcolor"})})]}))}},89357:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({id:"WarnIcon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256"},e),{},{className:"min-icon",fill:"currentcolor",children:[(0,a.jsx)("g",{id:"download-icn",transform:"translate(0 0.087)",children:(0,a.jsx)("path",{id:"Uni\xf3n_24","data-name":"Uni\xf3n 24",d:"M19388-6740.606a107.642,107.642,0,0,0-107.52,107.52,107.642,107.642,0,0,0,107.52,107.52,107.642,107.642,0,0,0,107.52-107.52,107.642,107.642,0,0,0-107.52-107.52m0-20.48a128,128,0,0,1,128,128,128,128,0,0,1-128,128,128,128,0,0,1-128-128A128,128,0,0,1,19388-6761.087Z",transform:"translate(-19260 6761)"})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_893","data-name":"Rect\xe1ngulo 893",width:"256",height:"256",fill:"none"}),(0,a.jsx)("path",{id:"Trazado_7001","data-name":"Trazado 7001",d:"M43.3-140H12.1l3.6,91.9h24ZM27.8-35.5c-10.2,0-19.1,8.7-19.1,18.9A19.565,19.565,0,0,0,27.8,2.5c10.1,0,18.9-8.9,18.9-19.1A19.282,19.282,0,0,0,27.8-35.5Z",transform:"translate(101 201)"})]}))}},2486:function(e,t,n){"use strict";var r=n(1413),a=(n(72791),n(80184));t.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"watch-icn",transform:"translate(4333.082 464.859)",children:[(0,a.jsxs)("g",{"data-name":"Grupo 1495",children:[(0,a.jsx)("path",{"data-name":"Trazado 345",d:"M-4237.731-461.928h-70.438a21.991 21.991 0 0 0-21.981 21.98v72.661a5.084 5.084 0 0 0 5.083 5.084h7.4a5.09 5.09 0 0 0 5.1-5.084v-57.382a19.671 19.671 0 0 1 19.665-19.672h55.169a5.081 5.081 0 0 0 5.076-5.084v-7.416a5.081 5.081 0 0 0-5.074-5.087Z"}),(0,a.jsx)("path",{"data-name":"Trazado 345 - Contorno",d:"M-4308.169-464.859h70.439a8.021 8.021 0 0 1 8.008 8.015v7.416a8.021 8.021 0 0 1-8.008 8.015h-55.17a16.756 16.756 0 0 0-16.733 16.74v57.386a8.032 8.032 0 0 1-8.03 8.015h-7.4a8.023 8.023 0 0 1-8.014-8.015v-72.661a24.94 24.94 0 0 1 24.908-24.911Zm70.439 17.583a2.151 2.151 0 0 0 2.145-2.152v-7.416a2.151 2.151 0 0 0-2.145-2.156h-70.439a19.071 19.071 0 0 0-19.05 19.049v72.661a2.154 2.154 0 0 0 2.151 2.153h7.4a2.163 2.163 0 0 0 2.168-2.153v-57.386a22.625 22.625 0 0 1 22.6-22.6Z"}),(0,a.jsx)("path",{"data-name":"Trazado 346",d:"M-4101.983-461.928h-77.172a5.088 5.088 0 0 0-5.09 5.084v7.416a5.088 5.088 0 0 0 5.09 5.084h61.9a19.677 19.677 0 0 1 19.674 19.672v57.386a5.085 5.085 0 0 0 5.089 5.084h7.4a5.076 5.076 0 0 0 5.074-5.084v-72.661a21.977 21.977 0 0 0-21.965-21.981Z"}),(0,a.jsx)("path",{"data-name":"Trazado 346 - Contorno",d:"M-4179.155-464.859h77.172a24.935 24.935 0 0 1 24.9 24.911v72.661a8.02 8.02 0 0 1-8.006 8.015h-7.4a8.028 8.028 0 0 1-8.021-8.015v-57.386a16.761 16.761 0 0 0-16.743-16.74h-61.9a8.027 8.027 0 0 1-8.021-8.015v-7.416a8.027 8.027 0 0 1 8.019-8.015Zm94.067 99.725a2.15 2.15 0 0 0 2.143-2.153v-72.661A19.066 19.066 0 0 0-4101.983-459h-77.172a2.158 2.158 0 0 0-2.158 2.153v7.416a2.158 2.158 0 0 0 2.158 2.152h61.9a22.63 22.63 0 0 1 22.605 22.6v57.386a2.158 2.158 0 0 0 2.158 2.153Z"}),(0,a.jsx)("path",{"data-name":"Trazado 347",d:"M-4085.088-313.79h-7.4a5.085 5.085 0 0 0-5.089 5.084v59.661a19.685 19.685 0 0 1-19.674 19.68h-61.9a5.086 5.086 0 0 0-5.094 5.075v7.424a5.085 5.085 0 0 0 5.09 5.075h77.172a21.972 21.972 0 0 0 21.97-21.98v-74.935a5.075 5.075 0 0 0-5.075-5.084Z"}),(0,a.jsx)("path",{"data-name":"Trazado 347 - Contorno",d:"M-4092.489-316.721h7.4a8.02 8.02 0 0 1 8.006 8.015v74.935a24.935 24.935 0 0 1-24.9 24.911h-77.172a8.023 8.023 0 0 1-8.021-8.006v-7.424a8.023 8.023 0 0 1 8.021-8.007h61.9a16.765 16.765 0 0 0 16.743-16.749v-59.661a8.027 8.027 0 0 1 8.023-8.014Zm-9.494 102a19.065 19.065 0 0 0 19.039-19.049v-74.935a2.15 2.15 0 0 0-2.143-2.153h-7.4a2.158 2.158 0 0 0-2.158 2.153v59.661a22.634 22.634 0 0 1-22.605 22.611h-61.9a2.153 2.153 0 0 0-2.158 2.144v7.424a2.153 2.153 0 0 0 2.158 2.143Z"}),(0,a.jsx)("path",{"data-name":"Trazado 348",d:"M-4237.731-229.365h-55.169a19.679 19.679 0 0 1-19.665-19.68v-59.661a5.089 5.089 0 0 0-5.1-5.084h-7.4a5.083 5.083 0 0 0-5.083 5.084v74.935a21.985 21.985 0 0 0 21.979 21.981h70.439a5.079 5.079 0 0 0 5.076-5.075v-7.425a5.079 5.079 0 0 0-5.077-5.075Z"}),(0,a.jsx)("path",{"data-name":"Trazado 348 - Contorno",d:"M-4237.73-208.859h-70.439a24.94 24.94 0 0 1-24.913-24.911v-74.935a8.023 8.023 0 0 1 8.014-8.015h7.4a8.032 8.032 0 0 1 8.03 8.015v59.661a16.76 16.76 0 0 0 16.733 16.749h55.169a8.016 8.016 0 0 1 8.008 8.007v7.424a8.016 8.016 0 0 1-8.002 8.005Zm-87.338-102a2.154 2.154 0 0 0-2.151 2.153v74.935a19.071 19.071 0 0 0 19.05 19.049h70.439a2.147 2.147 0 0 0 2.145-2.143v-7.424a2.147 2.147 0 0 0-2.145-2.144h-55.17a22.629 22.629 0 0 1-22.6-22.611v-59.661a2.163 2.163 0 0 0-2.168-2.153Z"})]}),(0,a.jsx)("ellipse",{"data-name":"Elipse 56",cx:56.415,cy:56.414,rx:56.415,ry:56.414,transform:"translate(-4260.489 -392.445)"}),(0,a.jsx)("path",{"data-name":"Elipse 56 - Contorno",d:"M-4205.074-393.376a51.345 51.345 0 1 1-51.346 51.345 51.4 51.4 0 0 1 51.346-51.345Zm0 96.827a45.482 45.482 0 1 0-45.483-45.482 45.535 45.535 0 0 0 45.483 45.482Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 890",fill:"none",d:"M0 0h256v256H0z"})]})]}))}},93656:function(e,t,n){"use strict";n.d(t,{fr:function(){return oe},sR:function(){return ie},De:function(){return qe},dt:function(){return Ie.Z},Zm:function(){return Ce.Z},OC:function(){return ye},eE:function(){return rn},Sx:function(){return it},e0:function(){return z},LZ:function(){return G},YI:function(){return on},jz:function(){return Dt},nA:function(){return jt},ub:function(){return $t},xC:function(){return cn},xN:function(){return He},Xn:function(){return Je},Wq:function(){return q},xR:function(){return Pt},wN:function(){return At.default},Qu:function(){return Ht},_q:function(){return Ne},QX:function(){return T},I:function(){return qt},J$:function(){return Z},ot:function(){return M},aW:function(){return O},W5:function(){return vt},UM:function(){return ot},qN:function(){return D},Nv:function(){return gt},Ej:function(){return ee},zD:function(){return Gt},ZF:function(){return Me.Z},TI:function(){return Se.default},ye:function(){return ht},x2:function(){return wt},Z9:function(){return he},P3:function(){return Ct},QG:function(){return k},pJ:function(){return Y.default},ut:function(){return un},to:function(){return et},MX:function(){return be.Z},dR:function(){return l},cY:function(){return Xe},_8:function(){return at.Z},Q_:function(){return ut},cn:function(){return Oe},FU:function(){return pe},dY:function(){return x.Z},Jp:function(){return fn},wK:function(){return Q},EO:function(){return o},nF:function(){return Qe},E3:function(){return ue},c3:function(){return rt},rt:function(){return Ve.default},nf:function(){return S},jG:function(){return mt.default},Nq:function(){return ne.default},Ok:function(){return Lt.default},ZA:function(){return le.default},q$:function(){return Te.default},bP:function(){return ve},xD:function(){return i.default},lr:function(){return st.default},mY:function(){return C.default},UU:function(){return se.default},hj:function(){return Nt.default},p2:function(){return Bt.default},n9:function(){return Wt.default},ar:function(){return Be},hz:function(){return s.default},xh:function(){return m.default},k1:function(){return dn},RO:function(){return y.default},Q:function(){return c},UQ:function(){return ae},Vw:function(){return Le},ww:function(){return ct},sj:function(){return Vt},ln:function(){return F.Z},by:function(){return me.Z},M9:function(){return v},F_:function(){return Tt.default},v4:function(){return $e.Z},iH:function(){return b},lT:function(){return h},cC:function(){return lt.Z},HN:function(){return De},fN:function(){return en},jR:function(){return sn},DJ:function(){return Fe},QI:function(){return ke},mB:function(){return Kt},BH:function(){return U},R0:function(){return St.Z},I$:function(){return Ut},fR:function(){return Xt},$E:function(){return _e},YE:function(){return P},nw:function(){return R},D6:function(){return Ee.Z},IH:function(){return pt},N$:function(){return Qt},X2:function(){return _t},hF:function(){return te},R4:function(){return we},xg:function(){return j.Z},b_:function(){return Ot.Z},Gv:function(){return Jt},gx:function(){return kt},$3:function(){return de},v1:function(){return Ae.Z},YL:function(){return yt.Z},pP:function(){return L},TN:function(){return xe.Z},Q2:function(){return je.Z},JU:function(){return an},mG:function(){return K.Z},tv:function(){return tt},Fs:function(){return We},Cx:function(){return re},P9:function(){return W},a$:function(){return Pe},MY:function(){return X},D7:function(){return Rt.Z},zG:function(){return E},Du:function(){return f.default},HF:function(){return Ue.Z},Mh:function(){return ge},rH:function(){return J},E9:function(){return tn},fe:function(){return V},Xj:function(){return Ke},W1:function(){return w.Z},QQ:function(){return ln},am:function(){return $.Z},SB:function(){return A},tV:function(){return H},nO:function(){return I},dv:function(){return Ft},ew:function(){return zt.Z},aA:function(){return g},QB:function(){return u},id:function(){return d},bn:function(){return Zt.Z},Dg:function(){return nn},zb:function(){return xt.Z},EH:function(){return fe},y2:function(){return ft},gX:function(){return Ge},oE:function(){return N},xp:function(){return Et},C_:function(){return ze},XH:function(){return nt.Z},G1:function(){return bt},oX:function(){return dt},rG:function(){return It},jh:function(){return Mt},oN:function(){return ce},oy:function(){return Ye},SA:function(){return Re.Z},Db:function(){return p},cR:function(){return Yt},e6:function(){return _.Z},B7:function(){return Ze},fO:function(){return B.Z}});var r=n(1413),a=(n(72791),n(80184)),o=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 10.906 10.906"},e),{},{children:(0,a.jsx)("path",{id:"Trazado_7002","data-name":"Trazado 7002",d:"M8.577,3a5.447,5.447,0,1,0,5.144,4.037,8.109,8.109,0,0,1-.951.783,6.211,6.211,0,0,1-2.174,1,2.252,2.252,0,0,1-2.143-.373,2.252,2.252,0,0,1-.373-2.143,6.234,6.234,0,0,1,1-2.174,8.085,8.085,0,0,1,.783-.951A5.483,5.483,0,0,0,8.577,3Zm2.961,8.536a4.343,4.343,0,0,0,1.228-2.42c-1.934,1.115-3.964,1.225-5.083.106s-1.009-3.149.106-5.083a4.362,4.362,0,1,0,3.75,7.4Z",transform:"translate(-3.001 -3.001)",fill:"#969fa8"})}))},i=n(69812),s=n(84033),l=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 16 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"disabled-clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1068","data-name":"Rect\xe1ngulo 1068",width:"16",height:"16",fill:"none"})})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1065","data-name":"Rect\xe1ngulo 1065",width:"16",height:"16",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2455","data-name":"Grupo 2455",children:(0,a.jsx)("g",{id:"Grupo_2454","data-name":"Grupo 2454",clipPath:"url(#disabled-clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7232","data-name":"Trazado 7232",d:"M8,0a8,8,0,1,0,8,8A8,8,0,0,0,8,0m3.235,5.4L8.965,8.174,10.949,10.6a.857.857,0,0,1-1.327,1.086h0L7.857,9.528,6.092,11.686A.857.857,0,0,1,4.765,10.6L6.749,8.174,4.479,5.4A.857.857,0,0,1,5.806,4.314L7.857,6.821l2.05-2.506A.857.857,0,1,1,11.235,5.4",fill:"#969fa8"})})})]}))},c=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1043","data-name":"Rect\xe1ngulo 1043",width:"255.479",height:"241.736",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Format_Drives",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Format_Drives","data-name":"Format Drives",clipPath:"url(#clip-Format_Drives)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Format_Drives_Icon","data-name":"Format Drives Icon",children:[(0,a.jsx)("g",{id:"Format_Drives_Icon-2","data-name":"Format Drives Icon",transform:"translate(0 -3)",children:(0,a.jsxs)("g",{id:"Grupo_2430","data-name":"Grupo 2430",transform:"translate(0 10)",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7192","data-name":"Trazado 7192",d:"M0,256.464v65.03c0,9.7,41.2,28.6,116.725,28.6s116.722-18.726,116.722-28.6v-65.13c-26.62,13.381-71.916,20.19-116.722,20.19S26.621,269.674,0,256.464M40.1,318.11A17.441,17.441,0,1,1,45.765,294.1,17.442,17.442,0,0,1,40.1,318.11",transform:"translate(0 -108.359)"}),(0,a.jsx)("path",{id:"Trazado_7193","data-name":"Trazado 7193",d:"M223.775,18.83C207.485,9.744,170.954,0,116.724,0,41.2,0,0,18.9,0,28.6S41.2,57.2,116.724,57.2l0,0a393.878,393.878,0,0,0,42.7-2.213,48.4,48.4,0,0,0,.4,20.494,428.272,428.272,0,0,1-43.1,2.145c-44.807,0-90.1-6.877-116.724-20.19v61.728c0,9.7,41.2,28.6,116.724,28.6s116.722-18.9,116.722-28.6V104.95a48.484,48.484,0,0,0-9.672-86.12M40.1,121.058a17.441,17.441,0,1,1,5.666-24.006A17.441,17.441,0,0,1,40.1,121.058m167.186-18.426a38.3,38.3,0,1,1,38.3-38.3,38.3,38.3,0,0,1-38.3,38.3",transform:"translate(0)"}),(0,a.jsx)("path",{id:"Trazado_7194","data-name":"Trazado 7194",d:"M352.322,69.425,344.043,77.7l-.913-.912a9.594,9.594,0,0,0-13.553,0L316.939,89.432a.185.185,0,0,0-.014.017.823.823,0,0,0-.054.065h0a1.109,1.109,0,0,0-.091.125c-.006.009-.013.016-.018.025l-4.4,7.751a1.091,1.091,0,0,0,.177,1.309l2.98,2.979v0l0,0,3.79,3.79,0,0,0,0,3.79,3.79v0h0l3.789,3.789,0,0,0,0,3.79,3.79v0h0l3.79,3.79,0,0,0,0,2.981,2.98a1.09,1.09,0,0,0,1.719-.233l4.327-7.623,12.534-12.534a9.6,9.6,0,0,0,0-13.553l-.912-.913,8.279-8.28a7.844,7.844,0,0,0-11.093-11.093M338,121.1l-1.383-1.385,2.27-4a1.091,1.091,0,0,0-1.9-1.077l-1.973,3.477-2.193-2.193,2.27-4a1.09,1.09,0,0,0-1.9-1.076l-1.973,3.477-2.194-2.195,2.27-4a1.09,1.09,0,0,0-1.9-1.077l-1.973,3.477-2.193-2.193,2.27-4a1.09,1.09,0,0,0-1.9-1.076l-1.973,3.477-2.194-2.194,2.27-4a1.09,1.09,0,0,0-1.9-1.077l-1.973,3.477-2.194-2.194,2.271-4a1.091,1.091,0,0,0-1.9-1.077l-1.973,3.477-1.382-1.382,3.283-5.784,23.33,23.33Z",transform:"translate(-131.967 -28.375)"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1044","data-name":"Rect\xe1ngulo 1044",width:"256",height:"256",fill:"none"})]})]})]}))},u=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"SpeedTestIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 850",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 426",d:"m63.413 63.057-.1.084a5.326 5.326 0 0 0 3.505 9.344l-.011.063a5.319 5.319 0 0 0 3.516-1.371l.1-.084q.167-.135.322-.281a5.337 5.337 0 1 0-7.333-7.756Z"}),(0,a.jsx)("path",{"data-name":"Trazado 427",d:"M48.827 88.433a4.336 4.336 0 0 0-5.884 1.729v.095a4.336 4.336 0 0 0 3.817 6.344l-.011.01a4.361 4.361 0 0 0 2.078-8.178Z"}),(0,a.jsx)("path",{"data-name":"Trazado 428",d:"M127.29 52.816h.293a7.816 7.816 0 1 0-.046-15.631h-.247a7.816 7.816 0 0 0 0 15.631Z"}),(0,a.jsx)("path",{"data-name":"Trazado 429",d:"M37.263 119.721h-.028a2.958 2.958 0 0 0-3.324 2.541v.08a2.973 2.973 0 0 0 2.559 3.336 3.173 3.173 0 0 0 .379 0l-.021.007a2.972 2.972 0 0 0 2.959-2.558v-.056a2.966 2.966 0 0 0-2.524-3.35Z"}),(0,a.jsx)("path",{"data-name":"Trazado 430",d:"m91.954 44.052-.209.078a7.07 7.07 0 0 0 2.5 13.688l-.022.065a7.009 7.009 0 0 0 2.537-.529l.165-.066.1-.039a7.071 7.071 0 1 0-5.076-13.2Z"}),(0,a.jsx)("path",{"data-name":"Trazado 431",d:"M192.48 73.763a9.817 9.817 0 0 0-.929-13.852l-.268-.235a9.817 9.817 0 0 0-12.881 14.8l.246.212a9.806 9.806 0 0 0 6.452 2.426 9.815 9.815 0 0 0 7.38-3.351Z"}),(0,a.jsx)("path",{"data-name":"Trazado 432",d:"M205.131 108.033Z"}),(0,a.jsx)("path",{"data-name":"Trazado 433",d:"m227.69 121.128-.067-.495a12.786 12.786 0 0 0-12.612-11.007 12.761 12.761 0 0 0-12.638 14.485v.428a12.786 12.786 0 0 0 12.612 11.047 13.068 13.068 0 0 0 1.778-.12 12.76 12.76 0 0 0 10.927-14.338Z"}),(0,a.jsx)("path",{"data-name":"Trazado 434",d:"M210.416 102.215a11.283 11.283 0 0 0 4.537-15.3l-.2-.361a16.398 16.398 0 0 0-.27-.5 11.283 11.283 0 1 0-19.545 11.281l.187.336a11.278 11.278 0 0 0 15.289 4.538Z"}),(0,a.jsx)("path",{"data-name":"Trazado 435",d:"m160.575 42.633-.289-.111a8.657 8.657 0 1 0-6.052 16.222l.255.1a8.643 8.643 0 0 0 3.048.556l-.01.066a8.7 8.7 0 0 0 3.048-16.833Z"}),(0,a.jsx)("path",{"data-name":"Trazado 436",d:"m148.433 112.148-13.839 11.867a.333.333 0 0 1-.331 0 17.171 17.171 0 1 0 10.435 12.167.333.333 0 0 1 0-.316l13.9-11.866a7.807 7.807 0 0 0-10.165-11.851Zm-12.039 27.588a8.26 8.26 0 1 1-8.26-8.26 8.26 8.26 0 0 1 8.26 8.259Z"}),(0,a.jsx)("path",{"data-name":"Trazado 437",d:"M138.134 194.756h-20.3a3.765 3.765 0 0 0 0 7.53h20.33a3.764 3.764 0 0 0 3.764-3.765v-.03a3.765 3.765 0 0 0-3.794-3.735Z"}),(0,a.jsx)("path",{"data-name":"Trazado 438",d:"M127.999 0a128 128 0 1 0 128 128 128.15 128.15 0 0 0-128-128Zm0 233.412A105.412 105.412 0 1 1 233.414 128a105.412 105.412 0 0 1-105.415 105.412Z"})]})]})]}))},d=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 864",fill:"none",d:"M0 0h256v255.259H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 396",d:"M241.464 0H14.521A14.433 14.433 0 0 0 .001 14.3v51.963a14.433 14.433 0 0 0 14.52 14.3h226.943A14.437 14.437 0 0 0 256 66.263V14.3A14.437 14.437 0 0 0 241.464 0Zm.285 66.263a.283.283 0 0 1-.285.28l-227.224-.28.281-52.241 227.229.278Z",stroke:"#000"}),(0,a.jsx)("path",{"data-name":"Trazado 397",d:"M241.464 87.715H14.521a14.431 14.431 0 0 0-14.52 14.3v51.959a14.432 14.432 0 0 0 14.52 14.3h226.943a14.436 14.436 0 0 0 14.536-14.3v-51.959a14.435 14.435 0 0 0-14.536-14.3Zm.285 66.259a.281.281 0 0 1-.285.28l-227.224-.28.281-52.241 227.229.282Z",stroke:"#000"}),(0,a.jsx)("path",{"data-name":"Trazado 398",d:"M241.464 175.427H14.521a14.441 14.441 0 0 0-14.52 14.31v51.959a14.434 14.434 0 0 0 14.52 14.3h226.943a14.437 14.437 0 0 0 14.536-14.3v-51.959a14.445 14.445 0 0 0-14.536-14.31Zm.285 66.269a.279.279 0 0 1-.285.281l-227.224-.281.281-52.245 227.229.286Z",stroke:"#000"}),(0,a.jsx)("rect",{"data-name":"Rect\\xE1ngulo 813",width:23.651,height:15.695,rx:.643,transform:"translate(20.301 21.991)",stroke:"#000",strokeWidth:.5}),(0,a.jsx)("rect",{"data-name":"Rect\\xE1ngulo 814",width:23.651,height:15.695,rx:.643,transform:"translate(20.301 111.056)",stroke:"#000",strokeWidth:.5}),(0,a.jsx)("rect",{"data-name":"Rect\\xE1ngulo 815",width:23.651,height:15.695,rx:.643,transform:"translate(20.301 200.016)",stroke:"#000",strokeWidth:.5})]})]}))},f=n(28789),p=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{d:"m144.506 255.256-14.883-15.1a2.5 2.5 0 0 1-.721-1.758v-88.02c-4.229 2.145-8.4 4.255-12.479 6.313-5.391 2.731-10.971 5.553-16.449 8.336l-20.359 10.364-11.967 6.092a2.514 2.514 0 0 1-2.635-.217 2.508 2.508 0 0 1-.973-2.458 120.437 120.437 0 0 1 4.3-16.642 154.087 154.087 0 0 1 7.375-18.167 160.659 160.659 0 0 1 10.453-18.526 148.6 148.6 0 0 1 13.559-17.688 161.263 161.263 0 0 1 21-19.616 157.34 157.34 0 0 1 24.42-15.569 2.512 2.512 0 0 1 2.455.086 2.512 2.512 0 0 1 1.205 2.145v43.791a27.491 27.491 0 0 0 8.039-6.747 27.647 27.647 0 0 0 5.527-11.558 27.41 27.41 0 0 0-.295-12.7 27.57 27.57 0 0 0-6.549-11.788c-5.266-5.679-10.748-11.349-16.051-16.837-4.262-4.407-8.676-8.97-12.955-13.52-.342-.365-.689-.729-1.039-1.1-2.916-3.07-5.934-6.248-7.914-10.09a22.79 22.79 0 0 1-1.416-17.614 23.808 23.808 0 0 1 4.559-8.124 24.373 24.373 0 0 1 7.617-5.952A23.519 23.519 0 0 1 138.992 0a25.109 25.109 0 0 1 12.957 3.756 30.3 30.3 0 0 1 9.525 9.222l1.318 1.945c.018.026.035.056.053.082l1.033 1.663c2.971 4.767 6.035 9.7 9.018 14.584a9375.397 9375.397 0 0 1 19.088 31.434 7.057 7.057 0 0 1 .754 1.962c.049.183.1.352.141.486a2.514 2.514 0 0 1-1.117 2.948l-.582.343a2.514 2.514 0 0 1-2.895-.251 27.192 27.192 0 0 0-.447-.369 13.275 13.275 0 0 1-1.291-1.137l-2.756-2.875c-8.3-8.649-16.881-17.593-25.3-26.415a2847.157 2847.157 0 0 1-5.229-5.5c-4.15-4.372-9.322-9.816-10.338-10.841a5.772 5.772 0 0 0-4-1.88 4.533 4.533 0 0 0-3.152 1.333 4.7 4.7 0 0 0-1.594 3.269 5.364 5.364 0 0 0 1.693 3.791 7287.52 7287.52 0 0 0 18.535 19.351c4.8 5.01 9.777 10.19 14.656 15.292a47.4 47.4 0 0 1 6.354 8.306 46.309 46.309 0 0 1 4.229 9.152 46.6 46.6 0 0 1 2.131 9.648 46.826 46.826 0 0 1 .061 9.786 46.84 46.84 0 0 1-1.953 9.539 46.211 46.211 0 0 1-3.947 9 46.028 46.028 0 0 1-5.895 8.114 46.986 46.986 0 0 1-7.812 6.874 79.956 79.956 0 0 1-9.746 5.548 192.77 192.77 0 0 0-3.555 1.833c-.039.021-.084.047-.121.065v113.437a2.517 2.517 0 0 1-1.561 2.323 2.529 2.529 0 0 1-.951.186 2.513 2.513 0 0 1-1.79-.748Zm-23.9-141.771a136 136 0 0 0-10.672 11.727 137.8 137.8 0 0 0-9.287 12.973q-2.262 3.589-4.359 7.394c.139-.074.277-.143.416-.217 4.941-2.527 9.605-4.915 14.33-7.342l1.783-.916c5.258-2.7 10.693-5.5 16-8.306.018-.014.039-.035.061-.053.061-7.372.053-15.174.039-22.768a139.007 139.007 0 0 0-8.312 7.508Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 861",fill:"none",d:"M0 0h256v256H0z"})]})]}))},h=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{d:"m127.996 255.998-48-64H42.252a31.385 31.385 0 0 1-14.189-3.563 54.7 54.7 0 0 1-14.061-10.69 55.543 55.543 0 0 1-10.5-14.313 32.835 32.835 0 0 1-3.5-14.434v-106a32.839 32.839 0 0 1 3.5-14.438 55.538 55.538 0 0 1 10.5-14.312A54.623 54.623 0 0 1 28.063 3.561 31.4 31.4 0 0 1 42.252 0h171.494a31.389 31.389 0 0 1 14.188 3.561 54.7 54.7 0 0 1 14.068 10.687 55.531 55.531 0 0 1 10.5 14.313 32.839 32.839 0 0 1 3.5 14.437v106a32.835 32.835 0 0 1-3.5 14.438 55.532 55.532 0 0 1-10.5 14.313 54.676 54.676 0 0 1-14.064 10.69 31.371 31.371 0 0 1-14.187 3.563h-37.758l-47.994 64Zm2.3-164.808c3.25 6.531 8.105 16.287 12.771 25.671l2.207 4.436c4.8 9.657 8.277 16.634 8.4 16.856a28.061 28.061 0 0 0 11.422 12.328 33.352 33.352 0 0 0 16.873 4.511 34.058 34.058 0 0 0 9.076-1.229 7.893 7.893 0 0 0 4.939-3.831 6.445 6.445 0 0 0 .395-5.167 7.229 7.229 0 0 0-2.971-3.688 8.874 8.874 0 0 0-4.754-1.376 9.005 9.005 0 0 0-2.395.324 16.147 16.147 0 0 1-4.268.574 15.731 15.731 0 0 1-8.162-2.244 13.156 13.156 0 0 1-5.385-6.093l-.385-.771-2.3-4.636-.037-.073c-8.051-16.214-29.434-59.283-32.84-65.75l-.711-1.376-.127-.241v-.007c-2.111-3.99-5.3-10.021-10.895-15.062a34.192 34.192 0 0 0-10.361-6.44 40.584 40.584 0 0 0-14.949-2.656c-4.457 0-8.082 3.223-8.082 7.185s3.625 7.19 8.082 7.19h.014c12.277 0 16.834 6.963 21.516 16.065l.779 1.469c.379.724 1 1.938 1.85 3.617l.105.211 1.953 3.842-44.129 69.447a6.471 6.471 0 0 0-.658 5.161 7.3 7.3 0 0 0 3.842 4.43 8.881 8.881 0 0 0 3.973.933 8.922 8.922 0 0 0 3.906-.893 7.746 7.746 0 0 0 3-2.558l38.313-60.161Z"})]})]}))},m=n(52009),v=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 21 21"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-help-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_961","data-name":"Rect\xe1ngulo 961",width:"21",height:"21",transform:"translate(0 -0.159)",fill:"currentcolor"})})}),(0,a.jsx)("g",{id:"HelpIcon-Full",transform:"translate(0 0.159)",children:(0,a.jsx)("g",{id:"Grupo_2320","data-name":"Grupo 2320",clipPath:"url(#clip-path-help-icon)",children:(0,a.jsx)("path",{id:"Trazado_7048","data-name":"Trazado 7048",d:"M10.42,0A10.42,10.42,0,1,0,20.84,10.42,10.42,10.42,0,0,0,10.42,0M9.534,18.477a2,2,0,0,1-1.953-1.953h0a1.943,1.943,0,1,1,1.953,1.953m1.309-6.32-.082,1.176H8.3V9.856h.982c1.974,0,3.037-.624,3.037-1.82,0-1.1-1.053-1.7-3.007-1.7-.552,0-1.125.041-1.554.081L7.561,3.73A15.939,15.939,0,0,1,9.626,3.6c3.569,0,5.635,1.647,5.635,4.234,0,2.362-1.575,3.876-4.418,4.326",fill:"currentcolor"})})})]}))},g=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 860",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"share-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 410",d:"M251.315 67.671 207.79 25.459c-14.279-13.851-35.342 7.862-21.063 21.716l12.959 12.567a156.689 156.689 0 0 0-82.95 23.182 156.774 156.774 0 0 0-71.051 97.677 15.547 15.547 0 0 0 11.474 18.755 15.62 15.62 0 0 0 3.655.438 15.555 15.555 0 0 0 15.1-11.909c14.6-60.586 70.74-100.461 130.9-96.758l-3.335 4.317-15.767 16.248c-13.849 14.285 7.867 35.345 21.719 21.063l42.214-43.518a15.131 15.131 0 0 0-.33-21.566Z"}),(0,a.jsx)("path",{"data-name":"Trazado 411",d:"M229.501 156.071c-7.927 0-14.351 6.747-14.351 15.066v54.731H28.703V30.133h126.71c7.925 0 14.351-6.744 14.351-15.066S163.337.001 155.413.001h-130.1C11.356.001.002 11.921.002 26.575v202.854c0 14.652 11.354 26.572 25.311 26.572h193.23c13.957 0 25.311-11.92 25.311-26.572v-58.291c-.001-8.32-6.428-15.067-14.353-15.067Z"})]})]})]}))},y=n(56673),x=n(33548),b=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"JSONIcon",children:[(0,a.jsx)("g",{"data-name":"Grupo 2269",children:(0,a.jsx)("path",{"data-name":"Uni\\xF3n 21",d:"M190.07 233.208a8.967 8.967 0 0 1-2.645-6.377 8.974 8.974 0 0 1 2.645-6.389 8.949 8.949 0 0 1 6.375-2.633 24.023 24.023 0 0 0 9.363-1.895 23.98 23.98 0 0 0 7.656-5.163 24.228 24.228 0 0 0 5.152-7.648 23.763 23.763 0 0 0 1.895-9.361v-47.057a26.541 26.541 0 0 1 7.129-18.122 26.567 26.567 0 0 1-7.129-18.133V63.373a23.707 23.707 0 0 0-1.895-9.351 23.978 23.978 0 0 0-5.152-7.648 23.977 23.977 0 0 0-7.656-5.162 23.815 23.815 0 0 0-9.363-1.9 8.959 8.959 0 0 1-6.375-2.644 8.95 8.95 0 0 1-2.645-6.378 8.949 8.949 0 0 1 2.645-6.377 8.959 8.959 0 0 1 6.375-2.644 42.145 42.145 0 0 1 42.109 42.1v47.057a8.636 8.636 0 0 0 8.625 8.624 8.959 8.959 0 0 1 6.375 2.644 8.967 8.967 0 0 1 2.645 6.377c0 .148 0 .307-.012.488.012.17.012.329.012.477a8.974 8.974 0 0 1-2.645 6.389 8.949 8.949 0 0 1-6.375 2.633 8.636 8.636 0 0 0-8.625 8.624v47.057a42.154 42.154 0 0 1-42.109 42.109 8.959 8.959 0 0 1-6.375-2.64ZM17.465 193.742v-47.057a8.641 8.641 0 0 0-8.625-8.624 8.981 8.981 0 0 1-6.387-2.645 8.936 8.936 0 0 1-2.633-6.377c0-.147 0-.307.012-.477-.012-.182-.012-.34-.012-.488a8.956 8.956 0 0 1 2.633-6.377 8.98 8.98 0 0 1 6.387-2.644 8.641 8.641 0 0 0 8.625-8.624V63.372a42.142 42.142 0 0 1 42.1-42.1 8.972 8.972 0 0 1 6.391 2.633 8.963 8.963 0 0 1 2.633 6.388 8.957 8.957 0 0 1-2.633 6.378 8.982 8.982 0 0 1-6.391 2.644 23.8 23.8 0 0 0-9.359 1.9 24.22 24.22 0 0 0-7.648 5.151 23.985 23.985 0 0 0-5.164 7.659 23.975 23.975 0 0 0-1.883 9.351v47.057a26.56 26.56 0 0 1-7.137 18.133 26.512 26.512 0 0 1 7.137 18.122v47.057a24.07 24.07 0 0 0 1.883 9.361 24.068 24.068 0 0 0 5.164 7.648 24.076 24.076 0 0 0 7.648 5.163 23.994 23.994 0 0 0 9.359 1.884 8.982 8.982 0 0 1 6.391 2.644 8.963 8.963 0 0 1 2.633 6.389 8.956 8.956 0 0 1-2.633 6.377 8.982 8.982 0 0 1-6.391 2.644 42.151 42.151 0 0 1-42.1-42.115ZM160 128.008a16 16 0 0 1 16-16 16.006 16.006 0 0 1 16.012 16 16.012 16.012 0 0 1-16.012 16 16.007 16.007 0 0 1-16-16Zm-48 0a16 16 0 0 1 16-16 16 16 0 0 1 16 16 16 16 0 0 1-16 16 16.01 16.01 0 0 1-16-16Zm-47 0a15.758 15.758 0 0 1 15.5-16 15.758 15.758 0 0 1 15.5 16 15.764 15.764 0 0 1-15.5 16 15.764 15.764 0 0 1-15.5-16Z"})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 891",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},w=n(74900),_=n(89357),Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("circle",{"data-name":"circle-icn",cx:128,cy:128,r:128}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 852",fill:"none",d:"M0 0h256v256H0z"})]})]}))},S=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 456",d:"M235.996 77.198c.388-15.754.958-32.242-.5-47.942-1.093-11.755-6.192-21.735-17.831-25.915a42.548 42.548 0 0 0-5.016-1.447c-6.55-1.479-13.433-1.6-20.09-1.8-11.727-.343-23.45.365-35.176.314-23.494-.1-46.986.322-70.479.414q-4.228.016-8.456.017H36.242a17.26 17.26 0 0 0-17.241 17.24v220.679a17.26 17.26 0 0 0 17.241 17.24h182.54a17.26 17.26 0 0 0 17.241-17.24V128.816c-.002-17.184-.45-34.46-.027-51.618Zm-20.923 145.983a14.889 14.889 0 0 1-14.889 14.889H51.815a14.889 14.889 0 0 1-14.888-14.888V33.662a14.887 14.887 0 0 1 14.889-14.888h99.548v25.458a37.8 37.8 0 0 0 37.756 37.76h25.952Zm0-157.656h-25.952a21.32 21.32 0 0 1-21.3-21.3V18.767h32.358a14.888 14.888 0 0 1 14.889 14.889Z"}),(0,a.jsx)("path",{"data-name":"Trazado 457",d:"M139.565 84.765a46.768 46.768 0 0 0-42.22 26.113 42.762 42.762 0 0 0-5.095-.3 42.914 42.914 0 0 0-42.866 42.867 42.916 42.916 0 0 0 42.866 42.866h73.123a38.608 38.608 0 0 0 38.566-38.565 38.754 38.754 0 0 0-17.656-32.377 46.973 46.973 0 0 0-46.718-40.6Zm25.809 94.632H92.251a25.986 25.986 0 0 1-25.957-25.957 25.987 25.987 0 0 1 25.957-25.957 25.525 25.525 0 0 1 7.753 1.2 8.459 8.459 0 0 0 6.505-.577 8.446 8.446 0 0 0 4.154-5.039 29.968 29.968 0 0 1 28.9-21.39 30.142 30.142 0 0 1 30.24 29.173 8.453 8.453 0 0 0 4.83 7.341 21.744 21.744 0 0 1 12.4 19.553 21.68 21.68 0 0 1-21.654 21.652Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 898",fill:"none",d:"M0 0h256v256H0z"})]})]}))},j=n(82314),E=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 373",d:"M18 145.888A110.2 110.2 0 0 1 126.767 35.85L113.78 22.869c-12.378-12.378 6.448-31.2 18.822-18.824l37.722 37.72a13.32 13.32 0 0 1 0 18.979l-37.722 37.714c-12.374 12.374-31.2-6.442-18.822-18.82l14.085-14.085a80.434 80.434 0 0 0-80.1 80.335 80.443 80.443 0 0 0 80.349 80.35 80.441 80.441 0 0 0 80.349-80.35 14.878 14.878 0 0 1 14.879-14.877 14.879 14.879 0 0 1 14.882 14.877A110.234 110.234 0 0 1 128.114 256 110.232 110.232 0 0 1 18 145.888Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 871",fill:"none",d:"M0 0h256v256H0z"})]})]}))},T=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1045","data-name":"Rect\xe1ngulo 1045",width:"256",height:"230.638",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Change_Access_Policy",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Change_Access_Policy","data-name":"Change Access Policy",clipPath:"url(#clip-Change_Access_Policy)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Change_Access_Policy_Icon","data-name":"Change Access Policy Icon",children:[(0,a.jsx)("g",{id:"Grupo_2432","data-name":"Grupo 2432",transform:"translate(0 13)",children:(0,a.jsx)("g",{id:"Grupo_2431","data-name":"Grupo 2431",clipPath:"url(#clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7195","data-name":"Trazado 7195",d:"M230.943,74.7A72.225,72.225,0,0,0,217.05,30.786,74.4,74.4,0,0,0,82.376,74.139a73.1,73.1,0,0,0,3.216,21.5L0,181.212v49.426H49.426l2.217-2.22L38.01,214.786l17.257-17.257L68.9,211.161l14.776-14.778L70.043,182.753,87.3,165.5l13.629,13.63L135,145.045a73.794,73.794,0,0,0,41.481.594A45.523,45.523,0,1,0,230.943,74.7m15.771,40.663a35.971,35.971,0,1,1-35.971-35.971,35.971,35.971,0,0,1,35.971,35.971M228.838,99.516A8.172,8.172,0,0,0,222.913,97a8.71,8.71,0,0,0-6,2.447l-22.22,22.245a2.041,2.041,0,0,0-.593,1.112L191.8,134a2.062,2.062,0,0,0,.593,1.928,2.246,2.246,0,0,0,1.555.593.938.938,0,0,0,.444-.074l11.11-2.152a2.036,2.036,0,0,0,1.111-.593l22.219-22.245a8.511,8.511,0,0,0,0-11.938M148.261,65.9a16.475,16.475,0,1,1,16.475,16.475A16.475,16.475,0,0,1,148.261,65.9",transform:"translate(0 0)"})})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1046","data-name":"Rect\xe1ngulo 1046",width:"256",height:"256",fill:"none"})]})]})]}))},C=n(84820),A=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"servers-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 404",d:"M128 0C64.408 0 0 15.267 0 44.414v167.17c0 29.147 64.408 44.415 128 44.415s128-15.268 128-44.415V44.414C256 15.267 191.592 0 128 0Zm105.743 211.584c0 8.945-37.324 25.909-105.739 25.909s-105.74-17.118-105.74-25.909v-58.911c24.116 11.967 65.15 18.2 105.74 18.2s81.623-6.169 105.739-18.29Zm0-85.128c0 8.791-37.324 25.908-105.739 25.908s-105.74-17.118-105.74-25.908V70.537c24.116 12.06 65.15 18.29 105.74 18.29s81.623-6.168 105.739-18.29ZM128.004 70.321c-68.416 0-105.74-17.118-105.74-25.908s37.324-25.908 105.74-25.908 105.739 17.119 105.739 25.909S196.415 70.323 128 70.323Z"}),(0,a.jsx)("circle",{"data-name":"Elipse 59",cx:15.793,cy:15.793,r:15.793,transform:"rotate(-31.72 348.405 44.732)"}),(0,a.jsx)("circle",{"data-name":"Elipse 60",cx:15.793,cy:15.793,r:15.793,transform:"rotate(-31.72 207.061 4.576)"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 854",fill:"none",d:"M0 0h256v256H0z"})]})]}))},M=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{transform:"translate(14.827 15.767) rotate(180)",children:[(0,a.jsx)("path",{fill:"currentcolor",d:"M-147.9-183c-4.1-4.1-10.8-4.1-14.9,0c0,0,0,0,0,0l-63.3,63.3c-4.1,4.1-4.1,10.8,0,14.9 c0,0,0,0,0,0l63.3,63.3c4.1,4.1,10.8,4.1,14.9,0c4.1-4.1,4.1-10.8,0-14.9l-55.9-55.9l55.9-55.9C-143.7-172.2-143.7-178.9-147.9-183 C-147.9-183-147.9-183-147.9-183L-147.9-183z"}),(0,a.jsx)("path",{fill:"currentcolor",d:"M-60.4-112.2c0-5.8-4.7-10.5-10.5-10.5h-137.1c-5.8,0-10.6,4.7-10.6,10.6 c0,5.8,4.7,10.6,10.6,10.6h137.1C-65.1-101.7-60.4-106.4-60.4-112.2C-60.4-112.2-60.4-112.2-60.4-112.2z M-7.6,14.4 c-5.8,0-10.5-4.7-10.5-10.5v-232.2c0-5.8,4.7-10.6,10.6-10.6c5.8,0,10.6,4.7,10.6,10.6V3.9C2.9,9.7-1.8,14.4-7.6,14.4L-7.6,14.4z"})]})}))},P=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 10.868 22"},e),{},{children:(0,a.jsx)("path",{id:"minio-logo-color",d:"M36.179,13.541q-.834-1.379-1.673-2.755c-.29-.476-.585-.949-.88-1.422l-.116-.172a2.047,2.047,0,0,0-2.624-.836,1.84,1.84,0,0,0-.846,2.481,4.385,4.385,0,0,0,.749.931c.841.894,1.709,1.762,2.544,2.662a2.626,2.626,0,0,1-.915,4.225l-.056.023V14.492a13.556,13.556,0,0,0-3.918,3.036,13.227,13.227,0,0,0-3.075,6.117L28.2,22.2c.942-.479,1.878-.95,2.856-1.446V28.83l1.3,1.323V20.076s.03-.014.127-.067a10.787,10.787,0,0,0,1.143-.633,3.862,3.862,0,0,0,.567-5.84c-.969-1.013-1.942-2.022-2.91-3.037a.623.623,0,0,1,0-.93.643.643,0,0,1,.935.053c.135.136,1.043,1.1,1.367,1.435q1.228,1.286,2.459,2.567a1.752,1.752,0,0,0,.136.116l.051-.03A.815.815,0,0,0,36.179,13.541Zm-5.124,5.715a.235.235,0,0,1-.119.159c-.519.275-1.042.543-1.564.811l-1.9.976a12.318,12.318,0,0,1,3.568-4.421l.023-.019C31.06,17.572,31.063,18.448,31.055,19.257Z",transform:"translate(-25.369 -8.153)"})}))},k=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 18",d:"M17.271 255.95a17.247 17.247 0 0 1-12.236-5.086 17.291 17.291 0 0 1-5.086-12.239V17.274A17.25 17.25 0 0 1 5.035 5.035 17.245 17.245 0 0 1 17.271-.051h221.354a17.237 17.237 0 0 1 12.244 5.091 17.238 17.238 0 0 1 5.08 12.253v221.332a17.256 17.256 0 0 1-5.084 12.239 17.256 17.256 0 0 1-12.24 5.086Zm5.121-233.556a14.786 14.786 0 0 0-4.357 10.526v190.083a14.784 14.784 0 0 0 4.357 10.521 14.782 14.782 0 0 0 10.52 4.362h190.09a14.788 14.788 0 0 0 10.518-4.362 14.778 14.778 0 0 0 4.359-10.521l-.016-190.083a14.758 14.758 0 0 0-4.357-10.521 14.758 14.758 0 0 0-10.514-4.362H32.912a14.777 14.777 0 0 0-10.52 4.356Zm133.525 194.628a15.4 15.4 0 0 1-10.963-4.539 15.409 15.409 0 0 1-4.545-10.969V178.65a15.406 15.406 0 0 1 4.545-10.964 15.4 15.4 0 0 1 10.957-4.539h48.84a15.4 15.4 0 0 1 10.959 4.539 15.409 15.409 0 0 1 4.539 10.964v22.873a15.4 15.4 0 0 1-4.539 10.959 15.385 15.385 0 0 1-10.959 4.539Zm-99.047-.02c-8.545 0-15.5-6.375-15.5-14.213v-74.217c0-7.838 6.957-14.218 15.5-14.218h48.834c8.547 0 15.5 6.38 15.5 14.218v74.217c0 7.837-6.949 14.213-15.5 14.213Zm99.047-75.462c-8.545 0-15.5-6.375-15.5-14.213V53.11c0-7.838 6.957-14.218 15.5-14.218h48.824c8.553 0 15.508 6.38 15.508 14.218v74.217c0 7.838-6.955 14.213-15.508 14.213ZM56.87 92.781a15.4 15.4 0 0 1-10.957-4.539 15.407 15.407 0 0 1-4.545-10.964V54.395a15.406 15.406 0 0 1 4.545-10.964 15.4 15.4 0 0 1 10.957-4.539h48.824a15.408 15.408 0 0 1 10.969 4.544A15.4 15.4 0 0 1 121.2 54.4v22.873a15.4 15.4 0 0 1-4.537 10.964 15.408 15.408 0 0 1-10.969 4.544Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 881",fill:"none",d:"M0 0h256v256H0z"})]})]}))},O=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 41",d:"M175.369 255.999a41.227 41.227 0 0 1-40.01-31.491h-14.736a41.3 41.3 0 0 1-39.988 31.491h-.006a41.192 41.192 0 0 1-41.152-41.145 41.068 41.068 0 0 1 14.268-31.134l-8.084-14.819a41.386 41.386 0 0 1-4.5.251A41.2 41.2 0 0 1 .007 128.003a41.2 41.2 0 0 1 41.154-41.154 41.31 41.31 0 0 1 6.041.443l7.676-14.071a41.09 41.09 0 0 1-15.393-32.069A41.194 41.194 0 0 1 80.637-.002a41.211 41.211 0 0 1 40.893 36.5h12.957a41.207 41.207 0 0 1 40.891-36.5 41.194 41.194 0 0 1 41.152 41.154 41.115 41.115 0 0 1-14.035 30.886l8.193 15.021a41.42 41.42 0 0 1 4.172-.21 41.2 41.2 0 0 1 41.148 41.154 41.273 41.273 0 0 1-41.148 41.149q-1.31 0-2.6-.082l-8.652 15.861a41.05 41.05 0 0 1 12.926 29.922 41.263 41.263 0 0 1-41.148 41.145Zm-15.461-41.145a15.479 15.479 0 0 0 15.461 15.462 15.485 15.485 0 0 0 15.471-15.462 15.515 15.515 0 0 0-15.471-15.471 15.485 15.485 0 0 0-15.461 15.473Zm-94.744 0a15.484 15.484 0 0 0 15.465 15.462 15.484 15.484 0 0 0 15.467-15.462 15.512 15.512 0 0 0-15.471-15.471 15.485 15.485 0 0 0-15.461 15.473Zm69.055-.351a41.147 41.147 0 0 1 18.393-33.922l-8.525-14.725a40.926 40.926 0 0 1-16.082 3.3 40.981 40.981 0 0 1-12.812-2.042l-8.984 15.522a41.109 41.109 0 0 1 15.578 31.87Zm61.25-35.552 6.477-11.871a41.28 41.28 0 0 1-27.734-32.58h-5.58a41.235 41.235 0 0 1-14.312 25.076l9.186 15.868a41.037 41.037 0 0 1 11.865-1.744 40.9 40.9 0 0 1 20.098 5.253Zm-133.391-.828a40.919 40.919 0 0 1 18.551-4.423 40.934 40.934 0 0 1 15.193 2.907l8.617-14.884A41.216 41.216 0 0 1 87.363 134.5h-5.582a41.378 41.378 0 0 1-26.059 31.969Zm137.309-50.119a15.477 15.477 0 0 0 15.465 15.462 15.477 15.477 0 0 0 15.461-15.462 15.5 15.5 0 0 0-15.471-15.471 15.483 15.483 0 0 0-15.455 15.472ZM128 143.467a15.477 15.477 0 0 0 15.465-15.462A15.5 15.5 0 0 0 128 112.534a15.4 15.4 0 0 0-5.734 1.1l-3.818 2.21A15.452 15.452 0 0 0 112.54 128a15.441 15.441 0 0 0 5.914 12.155l3.789 2.2a15.379 15.379 0 0 0 5.757 1.112ZM25.686 128.005a15.482 15.482 0 0 0 15.467 15.462 15.481 15.481 0 0 0 15.465-15.462 15.507 15.507 0 0 0-15.465-15.471 15.49 15.49 0 0 0-15.467 15.471Zm148.379-5.5a41.276 41.276 0 0 1 26.506-33.1l-6.379-11.693a40.928 40.928 0 0 1-18.818 4.591 41.039 41.039 0 0 1-11.865-1.743l-9.17 15.843a41.135 41.135 0 0 1 14.451 26.1Zm-86.848 0a41.2 41.2 0 0 1 17.221-28.223l-8.627-14.9a40.952 40.952 0 0 1-15.176 2.925h-.006a40.908 40.908 0 0 1-17.254-3.794l-6.3 11.548a41.266 41.266 0 0 1 24.863 32.448Zm56.881-32.375 8.514-14.707a41.2 41.2 0 0 1-18.049-28.922h-13.135a41.238 41.238 0 0 1-15.242 26.844l9 15.549A41 41 0 0 1 128 86.852a40.932 40.932 0 0 1 16.1 3.278Zm15.811-48.976a15.476 15.476 0 0 0 15.461 15.461 15.482 15.482 0 0 0 15.471-15.461 15.515 15.515 0 0 0-15.471-15.471 15.484 15.484 0 0 0-15.462 15.471Zm-94.744 0A15.481 15.481 0 0 0 80.63 56.615a15.481 15.481 0 0 0 15.467-15.461 15.512 15.512 0 0 0-15.471-15.471 15.484 15.484 0 0 0-15.462 15.471Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 924",fill:"none",d:"M0 0h256v256H0z"})]})]}))},R=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 39",d:"M119.5 246.769v-19a9 9 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9.006 9.006 0 0 1-9-9Zm0-43.852v-19a9.006 9.006 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9.006 9.006 0 0 1-9-9Zm117.967-22.283-71.154-41.4a12.875 12.875 0 0 1-6.463-11.237 12.889 12.889 0 0 1 6.463-11.237l71.154-41.394A13 13 0 0 1 257 86.6v82.794a13.018 13.018 0 0 1-13.021 13.02 12.877 12.877 0 0 1-6.514-1.78Zm-54.674-52.636 56.211 32.7v-65.4ZM0 169.4V86.6a13 13 0 0 1 19.535-11.237l71.15 41.394a12.879 12.879 0 0 1 6.461 11.237 12.865 12.865 0 0 1-6.461 11.237l-71.15 41.4a12.9 12.9 0 0 1-6.518 1.783A13.015 13.015 0 0 1 0 169.4Zm18-8.7L74.205 128 18 95.3Zm101.5-1.636v-19a9 9 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9 9 0 0 1-9-8.998Zm0-43.857v-19a9.006 9.006 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9.006 9.006 0 0 1-9-8.999Zm0-43.852v-19a9 9 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9 9 0 0 1-9-8.998Zm0-43.857v-19a9.006 9.006 0 0 1 9-9 9 9 0 0 1 9 9v19a9 9 0 0 1-9 9 9.006 9.006 0 0 1-9-8.998Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 923",fill:"none",d:"M0 0h256v256H0z"})]})]}))},N=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"ToolsIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 846",fill:"none",d:"M0 0h255.535v255.516H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1552",children:[(0,a.jsx)("path",{"data-name":"Uni\\xF3n 12",d:"M187.377 246.393 68.398 127.416q-2.3.164-4.6.164a63.373 63.373 0 0 1-45.111-18.629A64.284 64.284 0 0 1 2.218 47.216a19.958 19.958 0 0 1 33.414-9.02l12.7 12.695 3.006-3-12.7-12.7a19.962 19.962 0 0 1 9.02-33.412A65.038 65.038 0 0 1 64.283-.384a63.344 63.344 0 0 1 45.113 18.635 64.122 64.122 0 0 1 18.461 49.688l.59.59c.146-.153.291-.3.441-.453l23.5-23.312-.055-3.286a19.965 19.965 0 0 1 10.5-17.912l40.215-21.659a19.949 19.949 0 0 1 23.523 3.4l23.526 23.33a19.973 19.973 0 0 1 3.266 24.089l-22.524 39.362a19.955 19.955 0 0 1-17.4 10.049l-2.51-.009-24.086 23.888c-.15.151-.3.3-.461.443l60.469 60.463a31.038 31.038 0 0 1 0 43.848l-15.619 15.622a31.015 31.015 0 0 1-43.855 0Zm14.119-14.117a11.039 11.039 0 0 0 15.617 0l15.619-15.617a11.033 11.033 0 0 0 0-15.617L106.566 74.884a43.813 43.813 0 0 0-53.811-53.81L79.57 47.886l-31.239 31.23-26.812-26.8a43.815 43.815 0 0 0 53.809 53.8Zm-29.2-191.135.2 11.8-29.549 29.307 29.838 29.6 29.951-29.712 10.777.041 22.524-39.368-23.52-23.331Z"}),(0,a.jsx)("g",{"data-name":"Grupo 1551",children:(0,a.jsx)("path",{"data-name":"Trazado 444",d:"m80.891 143.919-57.656 57.656a10.859 10.859 0 0 0 0 15.357l15.357 15.359a10.861 10.861 0 0 0 15.359 0l57.652-57.655-30.712-30.717m0-20a20 20 0 0 1 14.142 5.858l30.716 30.717a20 20 0 0 1 0 28.284l-57.656 57.656a30.661 30.661 0 0 1-21.822 9.039 30.658 30.658 0 0 1-21.821-9.039l-15.358-15.36a30.657 30.657 0 0 1-9.038-21.82 30.656 30.656 0 0 1 9.04-21.822l57.654-57.655a20 20 0 0 1 14.143-5.858Z"})})]})]})]})]}))},z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"arrow-icn",d:"M19.795 108.063c-26.394 0-26.394 40.032 0 40.032h167.688l-22.739 22.669c-18.656 18.622 9.725 46.922 28.382 28.316l56.877-56.732a19.991 19.991 0 000-28.548l-56.877-56.716c-18.656-18.6-47.038 9.684-28.382 28.3l22.739 22.68H19.795z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 863",fill:"none",d:"M0 0h256v256H0z"})]})]}))},I=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 463",d:"M32.291 232.53a32.336 32.336 0 0 1-32.289-32.3V76.935a32.33 32.33 0 0 1 32.289-32.3 8.837 8.837 0 0 1 8.832 8.822 8.845 8.845 0 0 1-8.832 8.831 14.663 14.663 0 0 0-14.648 14.648v123.295a14.661 14.661 0 0 0 14.648 14.64h191.4a14.66 14.66 0 0 0 14.641-14.64V76.936a14.661 14.661 0 0 0-14.641-14.648h-54.07a8.845 8.845 0 0 1-8.832-8.831 8.762 8.762 0 0 1 2.586-6.236 8.735 8.735 0 0 1 6.246-2.586h54.07a32.345 32.345 0 0 1 32.313 32.3V200.23a32.351 32.351 0 0 1-32.312 32.3Zm140.445-33.006a3.078 3.078 0 0 1-3.082-3.07V179.02a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.434a3.075 3.075 0 0 1-3.07 3.07Zm-113.141 0a22.643 22.643 0 0 1-20.648-12.767 26.835 26.835 0 0 1 1.891-26.579l.02-.019c.094-.143.2-.285.3-.428.273-.409.559-.827.871-1.245a70.651 70.651 0 0 1 52.277-28.5 62.967 62.967 0 0 1 3.543-.095 67.043 67.043 0 0 1 15.211 1.777 71.594 71.594 0 0 1 14.734 5.219 71.248 71.248 0 0 1 26.73 22.149 27.371 27.371 0 0 1 2.672 27.53 22.363 22.363 0 0 1-20.629 12.956Zm-3.719-30.372v.01l-.047.058c-.191.256-.371.5-.531.741v.028l-.258.371a8.365 8.365 0 0 0-.715 8.261 5.526 5.526 0 0 0 5.27 3.1h76.969a6.062 6.062 0 0 0 3.156-.761 4.988 4.988 0 0 0 1.949-2.243 8.485 8.485 0 0 0 .715-4.524 9.18 9.18 0 0 0-1.7-4.468 54.088 54.088 0 0 0-42.969-22.007c-.93 0-1.75.019-2.508.066h-.012a53.055 53.055 0 0 0-39.318 21.368Zm116.859-5.01a3.08 3.08 0 0 1-3.082-3.079v-17.425a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.425a3.077 3.077 0 0 1-3.07 3.079Zm-.59-38.7a2.5 2.5 0 0 1-2.492-2.5V82.066a2.5 2.5 0 0 1 2.492-2.5h48.348a2.5 2.5 0 0 1 2.492 2.5v40.876a2.5 2.5 0 0 1-2.492 2.5ZM50.981 74.213c0-28.233 22.09-51.209 49.242-51.209s49.258 22.976 49.258 51.209a52.579 52.579 0 0 1-3.867 19.906 51.257 51.257 0 0 1-10.551 16.274 49.07 49.07 0 0 1-15.656 11 47.257 47.257 0 0 1-19.184 4.041c-27.151 0-49.241-22.976-49.241-51.22Zm17.977 0c0 18.033 14.031 32.711 31.266 32.711 17.262 0 31.3-14.678 31.3-32.711s-14.039-32.7-31.3-32.7c-17.234 0-31.265 14.668-31.265 32.701Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 883",fill:"none",d:"M0 0h256v256H0z"})]})]}))},L=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256",width:"16.52",height:"12.86"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"online-registration-back_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1600",fill:"#2781b0",d:"M0 0h256v199.269H0z"})})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 1602",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("g",{"data-name":"Grupo 2521",children:(0,a.jsxs)("g",{"data-name":"Grupo 2520",clipPath:"url(#online-registration-back_svg__a)",fill:"#2781b0",transform:"translate(0 22.634)",children:[(0,a.jsx)("path",{"data-name":"Trazado 7245",d:"M110.325 123.433a78.259 78.259 0 0 0 .768 10.936h13.5v-21.871h-13.5a78.271 78.271 0 0 0-.768 10.936Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7246",d:"M112.411 105.696h12.187V85.56c-4.871 2.382-9.583 9.676-12.187 20.141"}),(0,a.jsx)("path",{"data-name":"Trazado 7247",d:"M124.599 161.316v-20.141h-12.188c2.6 10.464 7.316 17.761 12.187 20.141"}),(0,a.jsx)("path",{"data-name":"Trazado 7248",d:"M162.4 105.7a38.951 38.951 0 0 0-18.91-17.748 52.941 52.941 0 0 1 7.113 17.748Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7249",d:"M103.53 123.433a85.92 85.92 0 0 1 .711-10.937H90.854a38.2 38.2 0 0 0 0 21.873h13.384a86.293 86.293 0 0 1-.711-10.936"}),(0,a.jsx)("path",{"data-name":"Trazado 7250",d:"M112.5 87.95a38.954 38.954 0 0 0-18.909 17.748h11.8a53.038 53.038 0 0 1 7.113-17.748"}),(0,a.jsx)("path",{"data-name":"Trazado 7251",d:"M93.597 141.173a38.956 38.956 0 0 0 18.909 17.748 52.942 52.942 0 0 1-7.113-17.748Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7252",d:"M151.757 112.499a84.331 84.331 0 0 1 0 21.873h13.385a38.182 38.182 0 0 0 0-21.873Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7253",d:"M143.491 158.922a38.962 38.962 0 0 0 18.91-17.748h-11.8a52.968 52.968 0 0 1-7.113 17.748"}),(0,a.jsx)("path",{"data-name":"Trazado 7254",d:"M192.789 69.359c.12-1.539.177-2.98.177-4.393a64.966 64.966 0 0 0-129.932 0c0 1.413.058 2.854.177 4.393a64.967 64.967 0 0 0 1.754 129.91h126.069a64.967 64.967 0 0 0 1.754-129.91Zm-21.947 69.376a3.373 3.373 0 0 1-.2.561 45.463 45.463 0 0 1-85.276 0 3.126 3.126 0 0 1-.2-.561 44.686 44.686 0 0 1 0-30.59 3.233 3.233 0 0 1 .2-.561 45.463 45.463 0 0 1 85.277 0 3.128 3.128 0 0 1 .2.561 44.711 44.711 0 0 1 0 30.59"}),(0,a.jsx)("path",{"data-name":"Trazado 7255",d:"M131.398 141.173v20.141c4.871-2.38 9.583-9.677 12.187-20.141Z"}),(0,a.jsx)("path",{"data-name":"Trazado 7256",d:"M131.398 85.557v20.141h12.187c-2.6-10.464-7.316-17.758-12.187-20.141"}),(0,a.jsx)("path",{"data-name":"Trazado 7257",d:"M145.671 123.433a78.26 78.26 0 0 0-.769-10.937h-13.5v21.872h13.5a78.262 78.262 0 0 0 .769-10.936Z"})]})})]}))},D=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 43",d:"M65.865 256a8.03 8.03 0 0 1-8.029-8.035 8.03 8.03 0 0 1 8.029-8.034h163.867a8.035 8.035 0 0 1 8.033 8.034 8.035 8.035 0 0 1-8.033 8.035Zm-57.834 0a8.03 8.03 0 0 1-8.029-8.035 8.03 8.03 0 0 1 8.029-8.034h29.99a8.035 8.035 0 0 1 8.033 8.034A8.035 8.035 0 0 1 38.021 256Zm57.834-28.917a8.03 8.03 0 0 1-8.029-8.034 8.03 8.03 0 0 1 8.029-8.035h163.867a8.035 8.035 0 0 1 8.033 8.035 8.035 8.035 0 0 1-8.033 8.034Zm-57.834 0a8.03 8.03 0 0 1-8.029-8.034 8.03 8.03 0 0 1 8.029-8.035h29.99a8.035 8.035 0 0 1 8.033 8.035 8.035 8.035 0 0 1-8.033 8.034Zm163.459-28.384H142a8.173 8.173 0 0 1-2.906-.533H65.865a8.03 8.03 0 0 1-8.029-8.034 8.03 8.03 0 0 1 8.029-8.035h34.445a8.134 8.134 0 0 1-3.521-2.068L76 159.218a8.128 8.128 0 0 1-2.377-5.208 8.128 8.128 0 0 1 1.641-5.474l12.373-16.585a68.993 68.993 0 0 1-2.988-7.079l-20.311-2.926a8.163 8.163 0 0 1-7.025-8.15V84.375a8.167 8.167 0 0 1 7.025-8.15l20.311-2.926a70.215 70.215 0 0 1 2.988-7.073L75.258 49.792a8.178 8.178 0 0 1-1.635-5.48 8.113 8.113 0 0 1 2.381-5.2l20.781-20.807a8.141 8.141 0 0 1 5.779-2.393 8.1 8.1 0 0 1 4.93 1.657l16.5 12.373a69.937 69.937 0 0 1 7.09-2.972l2.914-20.333a8.146 8.146 0 0 1 2.723-5.016 8.155 8.155 0 0 1 5.428-2h29.572a8.159 8.159 0 0 1 5.342 2 8.138 8.138 0 0 1 2.727 5.016l2.92 20.333a72.131 72.131 0 0 1 7.086 2.972l16.439-12.373a8.039 8.039 0 0 1 4.9-1.657 8.109 8.109 0 0 1 5.766 2.393l20.8 20.958a8.142 8.142 0 0 1 2.381 5.2 8.135 8.135 0 0 1-1.633 5.474l-12.314 16.434a71.975 71.975 0 0 1 2.994 7.079l20.334 2.926a8.147 8.147 0 0 1 4.957 2.757 8.174 8.174 0 0 1 1.971 5.318v29.5a8.192 8.192 0 0 1-1.971 5.387 8.161 8.161 0 0 1-5.039 2.757l-20.34 2.926a67.225 67.225 0 0 1-2.971 7.079l12.234 16.353a8.209 8.209 0 0 1 1.627 5.486 8.133 8.133 0 0 1-2.367 5.208l-20.8 20.8a8.119 8.119 0 0 1-3.8 2.149h16.77a8.035 8.035 0 0 1 8.033 8.035 8.035 8.035 0 0 1-8.033 8.034h-55.26a8.157 8.157 0 0 1-2.9.533Zm37.543-16.6a8.118 8.118 0 0 1-2.953-1.413l-16.418-12.3a71.877 71.877 0 0 1-7.084 2.972l-1.547 10.745Zm-44.514 0 2.627-17.766a8.133 8.133 0 0 1 5.891-6.691 57.883 57.883 0 0 0 13.561-5.59 8.188 8.188 0 0 1 4.322-1.228 8.164 8.164 0 0 1 4.328 1.234l.039.029 14.875 11.371 10.77-10.995-11.168-14.9a8.122 8.122 0 0 1-1.275-4.368 8.1 8.1 0 0 1 1.264-4.35 62.735 62.735 0 0 0 5.26-13.358l.006-.011a8.194 8.194 0 0 1 6.7-5.868l18.439-2.676-.215-15.16-18.449-2.676a8.116 8.116 0 0 1-6.684-5.868 63.168 63.168 0 0 0-5.6-13.532 8.106 8.106 0 0 1 .578-8.961l11.367-14.876-10.984-10.774-14.9 11.168a8.1 8.1 0 0 1-4.594 1.413 8.215 8.215 0 0 1-4.066-1.083 57.452 57.452 0 0 0-13.562-5.584h-.006a8.154 8.154 0 0 1-5.891-6.7l-2.682-18.438h-15.23l-2.676 18.143a8.113 8.113 0 0 1-5.873 6.679 58.28 58.28 0 0 0-13.592 5.59 8.08 8.08 0 0 1-4.309 1.24 8.15 8.15 0 0 1-4.322-1.245l-.039-.029-14.877-11.371-10.988 10.995 11.395 14.911a8.111 8.111 0 0 1 1.264 4.362 8.137 8.137 0 0 1-1.252 4.344 64.4 64.4 0 0 0-5.283 13.509v.006a8.131 8.131 0 0 1-6.68 5.874l-18.449 2.688v15.229l18.139 2.676a8.163 8.163 0 0 1 6.678 5.874 63.854 63.854 0 0 0 5.59 13.509 8.183 8.183 0 0 1 1.258 4.356 8.161 8.161 0 0 1-1.264 4.368l-.029.035-11.365 14.864 10.988 10.775 14.9-11.168a8.127 8.127 0 0 1 4.58-1.408 8.129 8.129 0 0 1 4.063 1.089 58.074 58.074 0 0 0 13.59 5.584h.006a8.142 8.142 0 0 1 5.873 6.691l2.629 18.073Zm-31.975 0-1.551-10.745a68.569 68.569 0 0 1-7.08-2.972l-16.416 12.373a8.134 8.134 0 0 1-2.682 1.344ZM8.03 198.168a8.03 8.03 0 0 1-8.029-8.034 8.03 8.03 0 0 1 8.029-8.035h29.99a8.035 8.035 0 0 1 8.033 8.035 8.035 8.035 0 0 1-8.033 8.034Zm0-28.917a8.03 8.03 0 0 1-8.029-8.035 8.025 8.025 0 0 1 8.029-8.029h29.99a8.03 8.03 0 0 1 8.033 8.029 8.035 8.035 0 0 1-8.033 8.035Zm0-28.917a8.03 8.03 0 0 1-8.029-8.035 8.025 8.025 0 0 1 8.029-8.029h29.99a8.03 8.03 0 0 1 8.033 8.029 8.035 8.035 0 0 1-8.033 8.035Zm133.771-5.561a38.591 38.591 0 0 1-12.279-8.278 38.613 38.613 0 0 1-8.279-12.286 38.374 38.374 0 0 1-3.035-15.038 38.381 38.381 0 0 1 3.035-15.044 38.551 38.551 0 0 1 8.279-12.286 38.512 38.512 0 0 1 12.279-8.284 38.369 38.369 0 0 1 15.037-3.035 38.407 38.407 0 0 1 15.051 3.035 38.476 38.476 0 0 1 12.291 8.284 38.551 38.551 0 0 1 8.279 12.286 38.381 38.381 0 0 1 3.035 15.044 38.374 38.374 0 0 1-3.035 15.038 38.613 38.613 0 0 1-8.279 12.286 38.554 38.554 0 0 1-12.291 8.278 38.408 38.408 0 0 1-15.051 3.041 38.4 38.4 0 0 1-15.038-3.045Zm6.354-56.19a22.131 22.131 0 0 0-7.094 4.791 22.181 22.181 0 0 0-4.785 7.1 22.193 22.193 0 0 0-1.754 8.7 22.187 22.187 0 0 0 1.754 8.689 22.221 22.221 0 0 0 4.785 7.1 22.2 22.2 0 0 0 7.094 4.785 22.166 22.166 0 0 0 8.684 1.755 22.233 22.233 0 0 0 8.7-1.755 22.259 22.259 0 0 0 7.1-4.785 22.268 22.268 0 0 0 4.779-7.1 22.222 22.222 0 0 0 1.754-8.689 22.228 22.228 0 0 0-1.754-8.7 22.228 22.228 0 0 0-4.779-7.1 22.186 22.186 0 0 0-7.1-4.791 22.232 22.232 0 0 0-8.7-1.755 22.166 22.166 0 0 0-8.683 1.751ZM8.03 111.416a8.03 8.03 0 0 1-8.029-8.035 8.025 8.025 0 0 1 8.029-8.029h29.99a8.03 8.03 0 0 1 8.033 8.029 8.035 8.035 0 0 1-8.033 8.035Zm0-28.917a8.03 8.03 0 0 1-8.029-8.034 8.025 8.025 0 0 1 8.029-8.029h29.99a8.03 8.03 0 0 1 8.033 8.029 8.035 8.035 0 0 1-8.033 8.034Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 925",fill:"none",d:"M0 0h256v256H0z"})]})]}))},B=n(2486),H=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1007","data-name":"Rect\xe1ngulo 1007",width:"256",height:"174.517",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-New_Service_Account_Created",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"New_Service_Account_Created","data-name":"New Service Account Created",clipPath:"url(#clip-New_Service_Account_Created)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Create_Service_Account_Icon","data-name":"Create Service Account Icon",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1006","data-name":"Rect\xe1ngulo 1006",width:"256",height:"256",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2394","data-name":"Grupo 2394",transform:"translate(0 41.709)",children:(0,a.jsx)("g",{id:"Grupo_2393","data-name":"Grupo 2393",transform:"translate(0 -0.001)",clipPath:"url(#clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7132","data-name":"Trazado 7132",d:"M209.54,0a46.254,46.254,0,0,0-29.083,10.24H27.839a27.482,27.482,0,0,0-10.808,2.2A28.109,28.109,0,0,0,2.2,27.269,27.507,27.507,0,0,0,0,38.078v108.6a27.507,27.507,0,0,0,2.2,10.809,28.112,28.112,0,0,0,14.834,14.834,27.5,27.5,0,0,0,10.808,2.2H195.985a27.5,27.5,0,0,0,10.808-2.2,28.11,28.11,0,0,0,14.833-14.834,27.486,27.486,0,0,0,2.2-10.809v-56A46.462,46.462,0,0,0,209.54,0m-5.828,67.986V53.635H189.362V39.283h14.351V24.933h14.351V39.283h14.351V53.635H218.064V67.985Zm-69.071,1.7h34.67a46.667,46.667,0,0,0,17.844,17.486H134.641a8.743,8.743,0,1,1,0-17.486M68.625,23.35h0c19.765,0,35.837,16.716,35.837,37.255a38.068,38.068,0,0,1-2.816,14.482,37.124,37.124,0,0,1-7.674,11.841,35.566,35.566,0,0,1-11.39,8A34.44,34.44,0,0,1,68.65,97.872h-.025C48.872,97.872,32.8,81.148,32.8,60.606S48.872,23.35,68.625,23.35m41.452,122.5a16.272,16.272,0,0,1-14.76,9.426H38.868a16.474,16.474,0,0,1-14.823-9.289,19.517,19.517,0,0,1,1.376-19.337l.013-.014c.051-.08.111-.164.162-.236l.056-.078c.24-.358.435-.637.635-.9a51.4,51.4,0,0,1,38.031-20.735c.806-.046,1.673-.07,2.578-.07v0a48.828,48.828,0,0,1,11.065,1.3,52.471,52.471,0,0,1,10.723,3.8,51.858,51.858,0,0,1,19.446,16.116,19.952,19.952,0,0,1,1.946,20.028m85.765,8.641h-61.2a8.743,8.743,0,1,1,0-17.486h61.2a8.743,8.743,0,1,1,0,17.486m0-33.223h-61.2a8.743,8.743,0,1,1,0-17.485h61.2a8.743,8.743,0,1,1,0,17.485m13.976-38.1a36.707,36.707,0,1,1,36.707-36.707,36.707,36.707,0,0,1-36.707,36.707",transform:"translate(0 0.001)",fill:"#4ccb92"})})})]})]})]}))},F=n(51846),U=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",viewBox:"0 0 284.616 49.568",className:"min-icon",fill:"currentcolor"},e),{},{children:(0,a.jsx)("g",{transform:"translate(0.5 0.5)",children:(0,a.jsx)("path",{d:"M10822.423,3589.089c0-14.873,14.033-24.285,33.612-24.285s33.7,9.328,33.7,24.285-13.782,24.282-33.7,24.282C10836.374,3613.371,10822.423,3604.046,10822.423,3589.089Zm7.731,0c0,11.763,11.263,18.065,25.881,18.065s25.966-6.3,25.966-18.065c0-11.681-11.345-18.068-25.966-18.068S10830.154,3577.408,10830.154,3589.089Zm-43.43,23.094-41.918-22.23a1.586,1.586,0,0,0-2.329,1.4v21.011H10726.5v-42.123a4.421,4.421,0,0,1,4.42-4.422h.029a4.4,4.4,0,0,1,2.077.519l41.752,22.233a1.587,1.587,0,0,0,2.334-1.4v-21.35h16.11v42.454a4.42,4.42,0,0,1-6.493,3.905Zm-88.75.186v-46.534h15.884v46.534Zm-28.218,0v-20.147a1.588,1.588,0,0,0-2.392-1.367l-19.068,11.186a5.668,5.668,0,0,1-5.818-.055l-18.07-11.057a1.589,1.589,0,0,0-2.416,1.355v20.084h-15.876v-42.323a4.423,4.423,0,0,1,4.423-4.422h.038a4.453,4.453,0,0,1,2.3.648l32.246,19.694a1.429,1.429,0,0,0,1.5,0l32.243-19.694a4.453,4.453,0,0,1,2.3-.648h.041a4.421,4.421,0,0,1,4.42,4.422v42.323Zm136.353-.011v-46.534h7.39v46.534Z",transform:"translate(-10606.116 -3564.803)",stroke:"rgba(0,0,0,0)",strokeWidth:"1"})})}))},V=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 33.055 39.954"},e),{},{children:[(0,a.jsx)("path",{id:"Trazado_6934","data-name":"Trazado 6934",d:"M2.663,53.686,0,55.018V78.391l2.663,1.324.016-.019V53.7l-.016-.018",transform:"translate(0 -46.754)",fill:"#8c3123"}),(0,a.jsx)("path",{id:"Trazado_6935","data-name":"Trazado 6935",d:"M34.876,76.323,20.624,79.715V53.686L34.876,57V76.323",transform:"translate(-17.961 -46.754)",fill:"#e05243"}),(0,a.jsx)("path",{id:"Trazado_6936","data-name":"Trazado 6936",d:"M81.178,125.086l6.045.77.038-.088.034-9.913-.072-.077-6.045.758v8.55",transform:"translate(-70.696 -100.829)",fill:"#8c3123"}),(0,a.jsx)("path",{id:"Trazado_6937","data-name":"Trazado 6937",d:"M128,76.361l13.864,3.362.022-.035V53.709l-.022-.023L128,57.043V76.361",transform:"translate(-111.469 -46.754)",fill:"#8c3123"}),(0,a.jsx)("path",{id:"Trazado_6938","data-name":"Trazado 6938",d:"M134.043,125.086l-6.047.77V115.778l6.047.758v8.55",transform:"translate(-111.469 -100.829)",fill:"#e05243"}),(0,a.jsx)("path",{id:"Trazado_6939","data-name":"Trazado 6939",d:"M93.27,78.958l-6.047,1.1-6.045-1.1,6.038-1.583,6.055,1.583",transform:"translate(-70.696 -67.384)",fill:"#5e1f18"}),(0,a.jsx)("path",{id:"Trazado_6940","data-name":"Trazado 6940",d:"M93.27,212.319l-6.047-1.109-6.045,1.109L87.216,214l6.054-1.685",transform:"translate(-70.696 -183.938)",fill:"#f2b0a9"}),(0,a.jsx)("path",{id:"Trazado_6941","data-name":"Trazado 6941",d:"M81.178,11.573l6.045-1.5.049-.015V.04L87.223,0,81.178,3.023v8.55",transform:"translate(-70.696)",fill:"#8c3123"}),(0,a.jsx)("path",{id:"Trazado_6942","data-name":"Trazado 6942",d:"M134.043,11.573,128,10.077V0l6.047,3.023v8.55",transform:"translate(-111.469)",fill:"#e05243"}),(0,a.jsx)("path",{id:"Trazado_6943","data-name":"Trazado 6943",d:"M87.219,231.378l-6.046-3.022v-8.55l6.046,1.5.089.1-.024,9.8-.065.174",transform:"translate(-70.692 -191.424)",fill:"#8c3123"}),(0,a.jsx)("path",{id:"Trazado_6944","data-name":"Trazado 6944",d:"M128,231.378l6.046-3.022v-8.55L128,221.3v10.077",transform:"translate(-111.469 -191.424)",fill:"#e05243"}),(0,a.jsx)("path",{id:"Trazado_6945","data-name":"Trazado 6945",d:"M235.367,53.686l2.664,1.332V78.391l-2.664,1.331V53.686",transform:"translate(-204.976 -46.754)",fill:"#e05243"})]}))},G=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{d:"M19.805 108.063c-26.4 0-26.4 40.032 0 40.032h167.684l-22.739 22.668c-18.656 18.622 9.725 46.922 28.382 28.316l56.873-56.731a19.991 19.991 0 0 0 0-28.548l-56.877-56.716c-18.656-18.6-47.038 9.684-28.382 28.3l22.743 22.679H19.805Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 863",fill:"none",d:"M.003 0h256v256h-256z"})]})]}))},W=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({version:"1.1",id:"Layer_1",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("rect",{id:"SVGID_1_",x:"2.6",y:"47.4",width:"250.4",height:"161.2"})}),(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:"M127.8,95.5c-18,0-32.5,14.6-32.5,32.5c0,18,14.6,32.5,32.5,32.5l0,0 c18,0,32.5-14.6,32.5-32.5C160.3,110,145.8,95.5,127.8,95.5",fill:"currentcolor"}),(0,a.jsx)("path",{d:"M248.2,112C204.1,45.5,114.5,27.4,48,71.4C31.9,82.1,18.1,95.9,7.5,112 c-6.5,9.7-6.5,22.3,0,32c44.1,66.5,133.7,84.6,200.1,40.5c16.1-10.7,29.9-24.5,40.5-40.5C254.6,134.3,254.6,121.7,248.2,112 M127.8,181.2c-29.4,0-53.2-23.8-53.2-53.2s23.8-53.2,53.2-53.2S181,98.6,181,128l0,0C181,157.4,157.2,181.2,127.8,181.2",fill:"currentcolor"})]})]})}))},q=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1024","data-name":"Rect\xe1ngulo 1024",width:"256",height:"255.998",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Enable_Bucket_Quota",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Enable_Bucket_Quota","data-name":"Enable Bucket Quota",clipPath:"url(#clip-Enable_Bucket_Quota)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsx)("g",{id:"Enable_Bucket_Quota_icon","data-name":"Enable Bucket Quota icon",children:(0,a.jsxs)("g",{id:"Grupo_2411","data-name":"Grupo 2411",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7154","data-name":"Trazado 7154",d:"M250.852,8.773A21.516,21.516,0,0,0,233.731,0H22.263A21.507,21.507,0,0,0,5.148,8.773,25.866,25.866,0,0,0,.394,28.758c5.223,30.385,16.208,94.421,25,145.533l.015.1c4.457,26,8.336,48.644,10.616,61.787C37.988,247.665,47.17,256,57.875,256H198.129c10.712,0,19.873-8.33,21.859-19.818l10.59-61.711.077-.375,14.334-83.62.049-.243L255.6,28.758a25.8,25.8,0,0,0-4.748-19.985M37.855,98a9.546,9.546,0,0,1-9.408-7.931l-.007-.041a9.544,9.544,0,0,1,9.406-11.159H73.505A76.487,76.487,0,0,0,61.131,98ZM52.393,181.92a9.542,9.542,0,0,1-9.408-7.93l-.007-.041a9.543,9.543,0,0,1,9.406-11.158h9.537a76.056,76.056,0,0,0,13.085,19.123ZM95.5,184.747A65.491,65.491,0,0,1,166.073,74.4l-6.682,6.683a56.3,56.3,0,0,0-68.414,88.287h.016a56.4,56.4,0,0,0,68.255,8.755l6.7,6.7a65.481,65.481,0,0,1-70.445-.081m81.526-2.408-3.147-3.147L124.27,129.579l49.47-49.515,3.27-3.27,3.27,3.27a69.643,69.643,0,0,1,14.386,20.891q.409.909.789,1.828a70,70,0,0,1,0,53.585l.016-.013q-.46,1.113-.964,2.208A69.625,69.625,0,0,1,180.3,179.069Zm36.084-8.449h0a9.543,9.543,0,0,1-9.413,7.989l-11.062,0a80.263,80.263,0,0,0,11.888-18.775c.039-.085.079-.177.118-.264a9.542,9.542,0,0,1,8.469,11.047M227.4,89.971a9.542,9.542,0,0,1-9.414,7.989l-12.633,0c-.216-.509-.431-1.019-.659-1.526a80.169,80.169,0,0,0-10.75-17.566h24.04a9.544,9.544,0,0,1,9.416,11.1",transform:"translate(0)"}),(0,a.jsx)("path",{id:"Trazado_7155","data-name":"Trazado 7155",d:"M137.27,129.555,176.915,169.2a60.81,60.81,0,0,0,0-79.259Z",transform:"translate(-0.011)"})]})})]})]}))},K=n(95466),$=n(2289),Y=n(74768),Q=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1012","data-name":"Rect\xe1ngulo 1012",width:"219.579",height:"256"})}),(0,a.jsx)("clipPath",{id:"clip-Edit_YAML",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Edit_YAML","data-name":"Edit YAML",clipPath:"url(#clip-Edit_YAML)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Edit_YAML_Icon","data-name":"Edit YAML Icon",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1013","data-name":"Rect\xe1ngulo 1013",width:"256",height:"256",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2399","data-name":"Grupo 2399",transform:"translate(25)",children:(0,a.jsxs)("g",{id:"Grupo_2398","data-name":"Grupo 2398",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7135","data-name":"Trazado 7135",d:"M393.716,60.148a7.412,7.412,0,0,0-5.1,2.082L369.7,81.158a1.738,1.738,0,0,0-.5.946l-1.953,9.528a1.754,1.754,0,0,0,.5,1.64,1.912,1.912,0,0,0,1.323.5.8.8,0,0,0,.378-.063l9.453-1.83a1.736,1.736,0,0,0,.946-.5l18.906-18.928a7.242,7.242,0,0,0,0-10.158,6.957,6.957,0,0,0-5.042-2.145",transform:"translate(-207.088 -33.921)"}),(0,a.jsx)("path",{id:"Trazado_7136","data-name":"Trazado 7136",d:"M176.1,0a43.4,43.4,0,0,0-34.3,16.755c-4.119.092-8.241.181-12.357.164-21.964-.1-43.951.3-65.928.385-2.625.014-5.267.014-7.914.014H16.136A16.146,16.146,0,0,0,0,33.445V239.878A16.142,16.142,0,0,0,16.136,256H186.882A16.131,16.131,0,0,0,203,239.877V137.027c0-16.076-.4-32.234-.013-48.284.089-3.731.185-7.51.262-11.308A43.478,43.478,0,0,0,176.1,0M51.689,162.377v19.369H37.8V162.56l-19.3-31.977H34.44l10.343,19.333,10.306-19.333H70.547Zm81.6,19.369H119.4V149.733L111.182,177h-14.8l-8.223-27.262v32.014H74.271V130.583H93.53L103.8,161.354l10.233-30.771h19.259Zm45.823,0H140.6V130.583h13.888v38.372h24.631ZM176.359,77.831a34.352,34.352,0,1,1,34.352-34.352,34.352,34.352,0,0,1-34.352,34.352"})]})})]})]})]}))},J=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Reported Usage",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 390",d:"M128.003 0a128.151 128.151 0 0 0-128 128c0 70.573 57.424 127.995 128 127.995a128.147 128.147 0 0 0 128-127.995 128.15 128.15 0 0 0-128-128Zm0 223.078a95.188 95.188 0 0 1-95.085-95.075 95.191 95.191 0 0 1 95.085-95.084v95.084h95.075a95.184 95.184 0 0 1-95.075 95.074Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 869",fill:"none",d:"M0 0h256v256H0z"})]})]}))},X=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"PrometheusIcon",children:[(0,a.jsx)("path",{d:"M128.908 0a128 128 0 1 0 128 128 128 128 0 0 0-128-128Zm0 239.565c-20.112 0-36.42-13.435-36.42-30h72.839c.004 16.561-16.302 30-36.419 30Zm60.154-39.941H68.751v-21.818h120.317v21.817Zm-.432-33.046H69.094c-.4-.458-.8-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.717-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722a49.95 49.95 0 0 1-12.23-32.117c0-25.658 19.68-48.08 12.58-66.2 6.91.562 14.3 14.583 14.8 36.506 7.346-10.152 10.42-28.691 10.42-40.057 0-11.769 7.755-25.44 15.512-25.908-6.915 11.4 1.79 21.165 9.53 45.4 2.9 9.1 2.532 24.423 4.772 34.139.744-20.178 4.213-49.621 17.014-59.785-5.647 12.8.836 28.819 5.27 36.519 7.154 12.424 11.49 21.836 11.49 39.639a49.518 49.518 0 0 1-11.84 31.959c8.452-1.586 14.289-3.016 14.289-3.016l27.451-5.355s-3.985 16.4-19.312 32.196Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 895",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},ee=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1028","data-name":"Rect\xe1ngulo 1028",width:"256",height:"256",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Generic_Confirmation",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Generic_Confirmation","data-name":"Generic Confirmation",clipPath:"url(#clip-Generic_Confirmation)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsx)("g",{id:"Generic_Confirmation_Icon","data-name":"Generic Confirmation Icon",children:(0,a.jsx)("g",{id:"Grupo_2416","data-name":"Grupo 2416",clipPath:"url(#clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7167","data-name":"Trazado 7167",d:"M128,0A128,128,0,1,0,256,128,128,128,0,0,0,128,0m.762,229.13A101.13,101.13,0,1,1,229.892,128a101.13,101.13,0,0,1-101.13,101.13M167.851,81.8,111,137.769,90.83,117.862A14.916,14.916,0,0,0,69.884,139.1l41.148,40.543,77.952-76.6a14.973,14.973,0,1,0-20.732-21.609q-.188.181-.37.367Z",fill:"#4ccb92"})})})]})]}))},te=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"NextArrowIcon",children:[(0,a.jsx)("path",{d:"M19.805 108.063c-26.4 0-26.4 40.032 0 40.032h167.684l-22.739 22.668c-18.656 18.622 9.725 46.922 28.382 28.316l56.873-56.731a19.991 19.991 0 0 0 0-28.548l-56.877-56.716c-18.656-18.6-47.038 9.684-28.382 28.3l22.743 22.679H19.805Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 863",fill:"none",d:"M.003 0h256v256h-256z"})]})]})]}))},ne=n(21733),re=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 36",d:"m203.074 254.064-74.746-44.835-74.746 44.835a13.592 13.592 0 0 1-20.586-11.636V46.276A46.324 46.324 0 0 1 79.277 0h98.078a46.328 46.328 0 0 1 46.281 46.276v196.152a13.576 13.576 0 0 1-20.562 11.636Zm-67.778-72.319 61.176 36.71V46.276a19.133 19.133 0 0 0-19.113-19.133H79.277a19.148 19.148 0 0 0-19.113 19.133v172.179l61.16-36.71a13.569 13.569 0 0 1 13.969 0Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 921",fill:"none",d:"M0 0h256v256H0z"})]})]}))},ae=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 42.239 33.998"},e),{},{children:(0,a.jsx)("g",{id:"google-cloud-logo-color",transform:"translate(-526 -141)",children:(0,a.jsxs)("g",{id:"Grupo_1820","data-name":"Grupo 1820",transform:"translate(526 141)",children:[(0,a.jsx)("path",{id:"Trazado_6946","data-name":"Trazado 6946",d:"M78,40.648h1.288l3.671-3.671.18-1.559A16.5,16.5,0,0,0,56.295,43.47a1.988,1.988,0,0,1,1.288-.076l7.343-1.212s.373-.619.568-.581a9.159,9.159,0,0,1,12.535-.953Z",transform:"translate(-51.201 -31.287)",fill:"#ea4335"}),(0,a.jsx)("path",{id:"Trazado_6947","data-name":"Trazado 6947",d:"M238.1,84.8a16.527,16.527,0,0,0-4.985-8.037l-5.152,5.152a9.161,9.161,0,0,1,3.362,7.267V90.1a4.587,4.587,0,0,1,0,9.173h-9.173l-.915.928v5.5l.915.915h9.173A11.932,11.932,0,0,0,238.1,84.8Z",transform:"translate(-201.103 -72.617)",fill:"#4285f4"}),(0,a.jsx)("path",{id:"Trazado_6948","data-name":"Trazado 6948",d:"M12.273,142.319a11.928,11.928,0,0,0-7.2,21.384l5.319-5.319a4.586,4.586,0,1,1,6.067-6.067L21.779,147a11.9,11.9,0,0,0-9.505-4.678Z",transform:"translate(-0.415 -132.197)",fill:"#fbbc05"})]})})}))},oe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"account",children:[(0,a.jsx)("path",{"data-name":"Trazado 463",d:"M32.291 232.53a32.336 32.336 0 0 1-32.289-32.3V76.935a32.33 32.33 0 0 1 32.289-32.3 8.837 8.837 0 0 1 8.832 8.822 8.845 8.845 0 0 1-8.832 8.831 14.663 14.663 0 0 0-14.648 14.648v123.295a14.661 14.661 0 0 0 14.648 14.64h191.4a14.66 14.66 0 0 0 14.641-14.64V76.936a14.661 14.661 0 0 0-14.641-14.648h-54.07a8.845 8.845 0 0 1-8.832-8.831 8.762 8.762 0 0 1 2.586-6.236 8.735 8.735 0 0 1 6.246-2.586h54.07a32.345 32.345 0 0 1 32.313 32.3V200.23a32.351 32.351 0 0 1-32.312 32.3Zm140.445-33.006a3.078 3.078 0 0 1-3.082-3.07V179.02a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.434a3.075 3.075 0 0 1-3.07 3.07Zm-113.141 0a22.643 22.643 0 0 1-20.648-12.767 26.835 26.835 0 0 1 1.891-26.579l.02-.019c.094-.143.2-.285.3-.428.273-.409.559-.827.871-1.245a70.651 70.651 0 0 1 52.277-28.5 62.967 62.967 0 0 1 3.543-.095 67.043 67.043 0 0 1 15.211 1.777 71.594 71.594 0 0 1 14.734 5.219 71.248 71.248 0 0 1 26.73 22.149 27.371 27.371 0 0 1 2.672 27.53 22.363 22.363 0 0 1-20.629 12.956Zm-3.719-30.372v.01l-.047.058c-.191.256-.371.5-.531.741v.028l-.258.371a8.365 8.365 0 0 0-.715 8.261 5.526 5.526 0 0 0 5.27 3.1h76.969a6.062 6.062 0 0 0 3.156-.761 4.988 4.988 0 0 0 1.949-2.243 8.485 8.485 0 0 0 .715-4.524 9.18 9.18 0 0 0-1.7-4.468 54.088 54.088 0 0 0-42.969-22.007c-.93 0-1.75.019-2.508.066h-.012a53.055 53.055 0 0 0-39.318 21.368Zm116.859-5.01a3.08 3.08 0 0 1-3.082-3.079v-17.425a3.08 3.08 0 0 1 3.082-3.08h47.18a3.077 3.077 0 0 1 3.07 3.08v17.425a3.077 3.077 0 0 1-3.07 3.079Zm-.59-38.7a2.5 2.5 0 0 1-2.492-2.5V82.066a2.5 2.5 0 0 1 2.492-2.5h48.348a2.5 2.5 0 0 1 2.492 2.5v40.876a2.5 2.5 0 0 1-2.492 2.5ZM50.981 74.213c0-28.233 22.09-51.209 49.242-51.209s49.258 22.976 49.258 51.209a52.579 52.579 0 0 1-3.867 19.906 51.257 51.257 0 0 1-10.551 16.274 49.07 49.07 0 0 1-15.656 11 47.257 47.257 0 0 1-19.184 4.041c-27.151 0-49.241-22.976-49.241-51.22Zm17.977 0c0 18.033 14.031 32.711 31.266 32.711 17.262 0 31.3-14.678 31.3-32.711s-14.039-32.7-31.3-32.7c-17.234 0-31.265 14.668-31.265 32.701Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 883",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},ie=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1018","data-name":"Rect\xe1ngulo 1018",width:"221.51",height:"256.002",fill:"#4ccb92"})}),(0,a.jsx)("clipPath",{id:"clip-Add_Access_Rule",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Add_Access_Rule","data-name":"Add Access Rule",clipPath:"url(#clip-Add_Access_Rule)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Add_Access_Rule_Icon","data-name":"Add Access Rule Icon",children:[(0,a.jsx)("g",{id:"Grupo_2406","data-name":"Grupo 2406",transform:"translate(18)",children:(0,a.jsxs)("g",{id:"Grupo_2405","data-name":"Grupo 2405",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7142","data-name":"Trazado 7142",d:"M104.258,94.5a8.671,8.671,0,1,0,12.263,0,8.672,8.672,0,0,0-12.263,0",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7143","data-name":"Trazado 7143",d:"M220.846,46.255a15.346,15.346,0,0,0-15.422-14.381h-.01l-2.217.017c-18.3,0-53.371-3.671-82.6-28.236A15.2,15.2,0,0,0,110.742,0a15.03,15.03,0,0,0-9.748,3.6C71.681,28.225,36.7,31.9,18.452,31.9l-2.764-.028A15.124,15.124,0,0,0,.665,46.358C-1.156,93.424-.821,159.771,23,192.41c22.161,30.467,65.486,55.314,78.912,61.614a20.721,20.721,0,0,0,17.7-.015c14.415-6.8,56.684-31.109,78.885-61.582,23.832-32.654,24.168-99,22.347-146.172m-92.069,94.893,0,25.363H118.635v12.845h10.146v11H118.635V203.2h10.148v1.651l-18.394,18.394L92,204.849l.007-63.7a38.469,38.469,0,0,1-9.2-6.8A39.158,39.158,0,0,1,116.79,68.09a38.019,38.019,0,0,1,23.45,13.338,39.022,39.022,0,0,1-11.463,59.72",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1019","data-name":"Rect\xe1ngulo 1019",width:"256",height:"256",fill:"none"})]})]})]}))},se=n(40599),le=n(27529),ce=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"UptimeIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 851",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1558",children:[(0,a.jsx)("path",{"data-name":"Sustracci\\xF3n 3",d:"M220.67 154.223h-10.627c.012-.6.016-1.149.016-1.669a82.374 82.374 0 0 0-1.073-13.283h-64.771v-78.9l25.611 11.287 45.143 34.182 4.232 33.5a53.041 53.041 0 0 1 5.371 4.445 22.28 22.28 0 0 1 3.4 3.962c.938 1.48 1.252 2.729.941 3.709-.577 1.836-3.35 2.767-8.243 2.767Z",fill:"#e3e3e3"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 9",d:"M24.003 152.341a102.96 102.96 0 0 1 24.863-67.172 104.134 104.134 0 0 1 61.651-35.019l.586-.1v22.866l-.4.084a81.178 81.178 0 0 0-64.137 79.337c0 44.762 36.557 81.18 81.492 81.18s81.492-36.418 81.492-81.18a80.636 80.636 0 0 0-18.828-51.854 81.865 81.865 0 0 0-20.838-17.8 80.846 80.846 0 0 0-26.053-10l-.408-.084V49.8l.582.089a103.267 103.267 0 0 1 34.789 11.962 104.595 104.595 0 0 1 27.953 22.727 103.042 103.042 0 0 1 25.363 67.76C232.114 209.5 185.437 256 128.062 256S24.003 209.5 24.003 152.341Zm104.625 9.91a10.07 10.07 0 0 1-1.023-.054c-4.723-.094-9.377-3.03-9.377-8.8V30.467l-10.9 10.113c-8.939 8.3-22.533-4.325-13.594-12.619l27.248-25.3a10.162 10.162 0 0 1 13.719 0l27.252 25.3c8.943 8.294-4.658 20.918-13.6 12.619L137.46 30.467v113.674h41.412a9.055 9.055 0 1 1 0 18.11Z"})]})]})]})]}))},ue=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 16 16"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"enabled-clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1067","data-name":"Rect\xe1ngulo 1067",width:"16",height:"16",fill:"none"})})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1066","data-name":"Rect\xe1ngulo 1066",width:"16",height:"16",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2453","data-name":"Grupo 2453",children:(0,a.jsx)("g",{id:"Grupo_2452","data-name":"Grupo 2452",clipPath:"url(#enabled-clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7231","data-name":"Trazado 7231",d:"M8,0a8,8,0,1,0,8,8A8,8,0,0,0,8,0m4.575,5.769-.005.005L7.837,11.69a.89.89,0,0,1-.635.284H7.185a.889.889,0,0,1-.628-.26h0L3.421,8.577a.889.889,0,1,1,1.2-1.31q.028.025.053.053L7.16,9.8l4.117-5.246.024-.026h0a.889.889,0,0,1,1.275,1.24",fill:"#969fa8"})})})]}))},de=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1031","data-name":"Rect\xe1ngulo 1031",width:"217",height:"256.004",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Object_Preview",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Object_Preview","data-name":"Object Preview",clipPath:"url(#clip-Object_Preview)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Object_Preview_Icon","data-name":"Object Preview Icon",children:[(0,a.jsx)("g",{id:"Grupo_2420","data-name":"Grupo 2420",transform:"translate(20)",children:(0,a.jsxs)("g",{id:"Grupo_2419","data-name":"Grupo 2419",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7171","data-name":"Trazado 7171",d:"M110.1,110.805A28.093,28.093,0,1,0,138.137,138.9,28.063,28.063,0,0,0,110.1,110.805m-.064,42.209a14.079,14.079,0,1,1,14.05-14.079,14.065,14.065,0,0,1-14.05,14.079",transform:"translate(-0.168)"}),(0,a.jsx)("path",{id:"Trazado_7172","data-name":"Trazado 7172",d:"M216.564,77.2c.166-6.9.359-13.945.413-21h-31.1A25.6,25.6,0,0,1,160.334,30.6l0-30.544q-3.775.06-7.553.148c-4.892.108-9.79.228-14.681.208C114.67.31,91.212.733,67.766.824c-2.8.016-5.619.016-8.444.016H17.216A17.241,17.241,0,0,0,0,18.08V238.769A17.238,17.238,0,0,0,17.216,256l182.163,0a17.226,17.226,0,0,0,17.2-17.235V128.815c0-17.186-.424-34.46-.013-51.618m-34.353,71.335a86.569,86.569,0,0,1-144.462,0,17.428,17.428,0,0,1,0-19.27,86.569,86.569,0,0,1,144.462,0,17.435,17.435,0,0,1,0,19.27",transform:"translate(0)"}),(0,a.jsx)("path",{id:"Trazado_7173","data-name":"Trazado 7173",d:"M203.277,0H171.758V22.411c-1.233,19.062,12.107,22.137,22.106,22.151h23.489V13.406c0-7.007-7.08-13.4-14.074-13.406",transform:"translate(-0.351)"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1032","data-name":"Rect\xe1ngulo 1032",width:"256",height:"256",fill:"none"})]})]})]}))},fe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Tenants Outline",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 452",d:"M135.881 213.702a42.222 42.222 0 0 1 7.779-24.429l-29.932-38.917a76.63 76.63 0 0 1-20.656 5.106l-.867 16.144a24.837 24.837 0 0 1 7.207 17.521 24.937 24.937 0 0 1-24.893 24.918 24.94 24.94 0 0 1-24.891-24.918 24.779 24.779 0 0 1 18.055-23.967l.6-11.047A78.47 78.47 0 0 1 7.002 77.955 78 78 0 0 1 84.861-.005a78 78 0 0 1 77.863 77.96 77.537 77.537 0 0 1-1.119 13.111l28.8 4.184a31.653 31.653 0 0 1 25.73-12.966 32.13 32.13 0 0 1 32.082 32.115 32.128 32.128 0 0 1-32.082 32.108 32.267 32.267 0 0 1-31.66-27.009l-31.1-4.519a78.56 78.56 0 0 1-18.219 22.474l28.188 36.653a42.235 42.235 0 0 1 14.787-2.7 42.307 42.307 0 0 1 42.238 42.293 42.313 42.313 0 0 1-42.238 42.293 42.322 42.322 0 0 1-42.25-42.29Zm28.877-23.668-3.377 1.911-2.689 2.762a27.045 27.045 0 0 0-7.75 19 27.231 27.231 0 0 0 27.182 27.218 27.232 27.232 0 0 0 27.184-27.218 27.232 27.232 0 0 0-27.184-27.218 27 27 0 0 0-13.366 3.548Zm-100.051-.906a9.84 9.84 0 0 0 9.813 9.842 9.847 9.847 0 0 0 9.824-9.842 9.889 9.889 0 0 0-4.2-8.058l-2.445-1.711-2.979-.054a9.827 9.827 0 0 0-10.016 9.826ZM22.078 77.956a62.885 62.885 0 0 0 55.014 62.386l4.365.535 4.355-.063a62.125 62.125 0 0 0 26.91-6.511l4-1.992 3.578-2.455a63.038 63.038 0 0 0 21.867-26.212l1.793-3.993 1.268-4.381a63.234 63.234 0 0 0 2.424-17.313 62.907 62.907 0 0 0-62.793-62.883A62.9 62.9 0 0 0 22.078 77.96Zm178.871 28.831-1.549 3.061-.219 3.54c-.051 10.4 7.58 18.045 16.949 18.045a17.044 17.044 0 0 0 17.018-17.032 17.046 17.046 0 0 0-17.018-17.04 16.888 16.888 0 0 0-15.181 9.429Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 865",fill:"none",d:"M0 0h256v256H0z"})]})]}))},pe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 423",d:"M34.549 188.281h186.9a6.641 6.641 0 1 1 0 13.282h-186.9a6.641 6.641 0 0 1-6.641-6.641 6.641 6.641 0 0 1 6.641-6.641Z"}),(0,a.jsx)("path",{"data-name":"Trazado 425",d:"M38.567 162.693a10.385 10.385 0 1 1-10.385 10.385 10.385 10.385 0 0 1 10.385-10.385Z"}),(0,a.jsx)("path",{"data-name":"Trazado 424",d:"M66.709 162.83a10.384 10.384 0 1 1-8.588 11.911 10.384 10.384 0 0 1 8.588-11.912Z"}),(0,a.jsx)("path",{"data-name":"Trazado 405",d:"M255.699 154.149a37.6 37.6 0 0 0-2.994-12.568l-41.95-104.219C207.537 29.62 199.33 24 191.241 24H64.759c-8.089 0-16.3 5.62-19.514 13.362L3.295 141.581a37.61 37.61 0 0 0-2.994 12.568 22.107 22.107 0 0 0-.3 3.612v51.4a22.089 22.089 0 0 0 22.065 22.064h211.87a22.09 22.09 0 0 0 22.065-22.064v-51.4a22.134 22.134 0 0 0-.302-3.612ZM65.754 46.413h124.491l36.053 89.283H30.013Zm167.833 162.4H22.412v-50.708h211.175Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 855",fill:"none",d:"M0 0h256v256H0z"})]})]}))},he=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1026","data-name":"Rect\xe1ngulo 1026",width:"255.576",height:"182.735",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Create_New_Path",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Create_New_Path","data-name":"Create New Path",clipPath:"url(#clip-Create_New_Path)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Create_New_Path_Icon","data-name":"Create New Path Icon",children:[(0,a.jsx)("g",{id:"Grupo_2415","data-name":"Grupo 2415",transform:"translate(0.424 26.642)",children:(0,a.jsxs)("g",{id:"Grupo_2414","data-name":"Grupo 2414",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7162","data-name":"Trazado 7162",d:"M21.8,141.76c-11.745,0-21.8,9.96-21.8,21.517a22.187,22.187,0,0,0,21.8,21.8c11.557,0,21.517-10.054,21.517-21.8A21.949,21.949,0,0,0,21.8,141.76",transform:"translate(0 -59.036)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7163","data-name":"Trazado 7163",d:"M21.8,235.632c-11.745,0-21.8,9.96-21.8,21.517a22.187,22.187,0,0,0,21.8,21.8c11.557,0,21.517-10.054,21.517-21.8A21.949,21.949,0,0,0,21.8,235.632",transform:"translate(0 -98.13)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7164","data-name":"Trazado 7164",d:"M200.314,0H187.871A11.54,11.54,0,0,0,177.5,6.479L99.6,166.135a11.54,11.54,0,0,0,10.371,16.6h12.443a11.54,11.54,0,0,0,10.371-6.479L210.684,16.6A11.539,11.539,0,0,0,200.314,0",transform:"translate(-40.986)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7165","data-name":"Trazado 7165",d:"M294.178,82.251c-1.23,0-2.445.061-3.652.149l32.106-65.8A11.539,11.539,0,0,0,312.262,0H299.819a11.539,11.539,0,0,0-10.371,6.479l-77.9,159.656a11.539,11.539,0,0,0,10.37,16.6h12.443a11.54,11.54,0,0,0,10.371-6.479l8.685-17.8a49,49,0,1,0,40.762-76.205m.292,87.721a38.717,38.717,0,1,1,38.717-38.717,38.717,38.717,0,0,1-38.717,38.717",transform:"translate(-87.607)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7166","data-name":"Trazado 7166",d:"M347.565,193.708H335.42v12.145H323.275V218H335.42v12.145h12.145V218h12.145V205.853H347.565Z",transform:"translate(-134.629 -80.67)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1027","data-name":"Rect\xe1ngulo 1027",width:"256",height:"256",fill:"none"})]})]})]}))},me=n(84570),ve=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1551",children:[(0,a.jsx)("path",{"data-name":"Trazado 458",d:"M235.995 76.194c.386-15.753.957-32.241-.5-47.94-1.093-11.754-6.192-21.735-17.832-25.914a42.4 42.4 0 0 0-5.016-1.447c-6.549-1.479-13.432-1.6-20.089-1.8-11.728-.343-23.449.366-35.176.314-23.494-.1-46.986.322-70.479.414q-4.227.018-8.456.017H36.241A17.26 17.26 0 0 0 19 17.078v220.681a17.259 17.259 0 0 0 17.24 17.24h182.541a17.259 17.259 0 0 0 17.24-17.24V127.81c-.002-17.182-.448-34.457-.026-51.616Zm-20.921 145.982a14.889 14.889 0 0 1-14.891 14.89H51.817a14.89 14.89 0 0 1-14.889-14.89V32.665a14.889 14.889 0 0 1 14.889-14.889h99.548v25.458a37.8 37.8 0 0 0 37.756 37.757h25.953Zm0-157.651h-25.953a21.319 21.319 0 0 1-21.294-21.3v-25.46h32.358a14.888 14.888 0 0 1 14.889 14.89Z"}),(0,a.jsx)("path",{"data-name":"Trazado 459",d:"m131.059 177.378-22.8 22.8a17.95 17.95 0 0 1-25.356 0 17.815 17.815 0 0 1-5.251-12.68 17.814 17.814 0 0 1 5.254-12.678l22.8-22.8a17.972 17.972 0 0 1 25.331-.015 7.521 7.521 0 0 0 10.621.187 7.458 7.458 0 0 0 2.292-5.271 7.458 7.458 0 0 0-2.1-5.344 7.641 7.641 0 0 0-.178-.179 33.044 33.044 0 0 0-46.59 0l-22.793 22.814a32.7 32.7 0 0 0-9.659 23.266 32.7 32.7 0 0 0 9.623 23.281 33.136 33.136 0 0 0 23.292 9.659h.166a32.935 32.935 0 0 0 23.174-9.616l22.808-22.811a7.462 7.462 0 0 0 2.107-5.349 7.467 7.467 0 0 0-2.292-5.271 7.485 7.485 0 0 0-10.446.006Z"}),(0,a.jsx)("path",{"data-name":"Trazado 460",d:"m129.038 95.473-22.809 22.809a7.461 7.461 0 0 0-2.105 5.348 7.46 7.46 0 0 0 2.291 5.271 7.482 7.482 0 0 0 10.437 0l22.821-22.822a17.8 17.8 0 0 1 12.576-5.484 17.878 17.878 0 0 1 12.769 5.015 17.8 17.8 0 0 1 5.483 12.576 17.811 17.811 0 0 1-5.016 12.771 18.02 18.02 0 0 1-.479.479l-22.8 22.8a18.058 18.058 0 0 1-25.357-.009 7.522 7.522 0 0 0-10.623.186 7.489 7.489 0 0 0 .017 10.451 32.921 32.921 0 0 0 23.292 9.583 32.932 32.932 0 0 0 23.3-9.584l22.8-22.808a32.728 32.728 0 0 0 9.337-23.423 32.737 32.737 0 0 0-9.962-23.166 32.772 32.772 0 0 0-45.973 0Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 913",fill:"none",d:"M0-1h256v256H0z"})]})]}))},ge=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 37.001 37"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"rep-quota-clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_959","data-name":"Rect\xe1ngulo 959",width:"37",height:"37",transform:"translate(0 0)",fill:"#07193e"})})}),(0,a.jsxs)("g",{id:"reported-usage-icn-full",transform:"translate(-0.213 -0.213)",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_869","data-name":"Rect\xe1ngulo 869",width:"37",height:"37",transform:"translate(0.213 0.213)",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2317","data-name":"Grupo 2317",transform:"translate(0.213 0.213)",children:(0,a.jsx)("g",{id:"Grupo_2316","data-name":"Grupo 2316",transform:"translate(0 0)",clipPath:"url(#rep-quota-clip-path)",children:(0,a.jsx)("path",{id:"Trazado_7046","data-name":"Trazado 7046",d:"M18.5,0A18.5,18.5,0,1,0,37,18.5,18.5,18.5,0,0,0,18.5,0m0,18.5V4.756A13.757,13.757,0,0,1,32.238,18.5H18.5Z",transform:"translate(0.074 0.074)",fill:"#07193e"})})})]})]}))},ye=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1041","data-name":"Rect\xe1ngulo 1041",width:"256",height:"242.667",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Add_New_Tag",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Add_New_Tag","data-name":"Add New Tag",clipPath:"url(#clip-Add_New_Tag)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Add_New_Tag_Icon","data-name":"Add New Tag Icon",children:[(0,a.jsx)("g",{id:"Add_New_","data-name":"Add New ",transform:"translate(0 7.836)",children:(0,a.jsxs)("g",{id:"Grupo_2429","data-name":"Grupo 2429",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7190","data-name":"Trazado 7190",d:"M227.22,126.576A53.114,53.114,0,1,0,155.674,55.03L109.365,8.722A29.86,29.86,0,0,0,88.94,0L29.97.032A30.021,30.021,0,0,0,0,29.99l0,59.2a29.8,29.8,0,0,0,8.7,20.186L133.237,233.909a29.806,29.806,0,0,0,21.266,8.758v0a29.813,29.813,0,0,0,21.25-8.743l58.162-58.157a30.211,30.211,0,0,0-.018-42.511ZM60.958,76.033A15.072,15.072,0,1,1,76.031,60.96,15.091,15.091,0,0,1,60.958,76.033m100.274,3.334A41.967,41.967,0,1,1,203.2,121.334a41.967,41.967,0,0,1-41.967-41.967",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7191","data-name":"Trazado 7191",d:"M316.362,94.258H303.2v13.164H290.033v13.165H303.2v13.165h13.164V120.587h13.164V107.422H316.362Z",transform:"translate(-106.58 -34.638)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1042","data-name":"Rect\xe1ngulo 1042",width:"256",height:"256",fill:"none"})]})]})]}))},xe=n(12590),be=n(82332),we=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Object Browser",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Grupo 1559",children:[(0,a.jsxs)("g",{"data-name":"Grupo 1541",transform:"translate(88.095 103.898)",children:[(0,a.jsx)("circle",{"data-name":"Elipse 57",cx:11.515,cy:11.515,r:11.515,transform:"rotate(-10.901 280.738 -178.561)"}),(0,a.jsx)("rect",{"data-name":"Rect\\xE1ngulo 805",width:24.592,height:20.853,rx:1.35,transform:"translate(14.546 25.545)"}),(0,a.jsx)("path",{"data-name":"Trazado 365",d:"M28.151 60.295a2.427 2.427 0 0 0-4.2 0l-9.1 15.761a2.425 2.425 0 0 0 2.1 3.64h18.2a2.43 2.43 0 0 0 2.105-3.64Z"}),(0,a.jsx)("path",{"data-name":"Trazado 366",d:"M79.273 28.199a151.334 151.334 0 0 0-.187-17.51c-.395-4.294-2.262-7.942-6.512-9.468a15.5 15.5 0 0 0-1.836-.529 38.335 38.335 0 0 0-7.332-.658c-4.289-.125-8.57.136-12.855.116-8.582-.036-17.16.116-25.746.152H6.301a6.308 6.308 0 0 0-6.3 6.3v80.617a6.307 6.307 0 0 0 6.3 6.3h66.684a6.3 6.3 0 0 0 6.3-6.3V47.054c-.004-6.273-.168-12.584-.012-18.855Zm-7.648 53.334a5.435 5.435 0 0 1-5.434 5.439h-54.2a5.442 5.442 0 0 1-5.441-5.439V12.3a5.441 5.441 0 0 1 5.441-5.442h36.367v9.3a13.809 13.809 0 0 0 13.789 13.794h9.48Zm0-57.6h-9.48a7.781 7.781 0 0 1-7.773-7.777v-9.3h11.82a5.435 5.435 0 0 1 5.434 5.442Z"})]}),(0,a.jsx)("path",{"data-name":"Trazado 367",d:"M101.726 42.067c6.607 0 13.691 18.858 20.771 18.858h88.056a9.46 9.46 0 0 1 9.439 9.429v4.715H40.348V51.496h-.235a9.462 9.462 0 0 1 9.439-9.429h52.174m124.392 44.5a9.812 9.812 0 0 1 9.787 9.772l-10.03 107.756a9.811 9.811 0 0 1-9.787 9.771H39.671a9.808 9.808 0 0 1-9.787-9.771L20.093 96.339a9.813 9.813 0 0 1 9.791-9.772h196.233M101.725 21.999H49.551a29.549 29.549 0 0 0-29.533 29.5 20 20 0 0 0 .235 3.081v13.513A29.9 29.9 0 0 0-.002 96.344c0 .605.031 1.208.086 1.814l9.724 107.089a29.9 29.9 0 0 0 29.862 28.691h176.417a29.9 29.9 0 0 0 29.854-28.663l9.975-107.074c.051-.617.082-1.239.082-1.857a29.87 29.87 0 0 0-15.909-26.376 29.555 29.555 0 0 0-29.537-29.106h-81.5c-.4-.532-.786-1.059-1.123-1.517-5.1-6.906-12.8-17.342-26.2-17.342Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 875",fill:"none",d:"M0 0h256v256H0z"})]})]}))},_e=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 24.858 50.321"},e),{},{children:(0,a.jsx)("path",{id:"minio-logo-color",d:"M50.1,20.478q-1.908-3.154-3.826-6.3c-.664-1.088-1.339-2.171-2.012-3.254l-.266-.393a4.682,4.682,0,0,0-6-1.913,4.208,4.208,0,0,0-1.936,5.674,10.029,10.029,0,0,0,1.714,2.129c1.924,2.044,3.91,4.031,5.818,6.089a6.008,6.008,0,0,1-2.092,9.664l-.128.052V22.652A31.007,31.007,0,0,0,32.4,29.6a30.255,30.255,0,0,0-7.034,13.992l6.481-3.3c2.155-1.1,4.295-2.172,6.532-3.308V55.447l2.984,3.027V35.425s.068-.032.292-.152a24.676,24.676,0,0,0,2.614-1.448,8.834,8.834,0,0,0,1.3-13.358c-2.216-2.318-4.443-4.626-6.656-6.946a1.424,1.424,0,0,1,0-2.128,1.47,1.47,0,0,1,2.138.12c.308.311,2.386,2.506,3.127,3.283q2.808,2.941,5.625,5.872a4.005,4.005,0,0,0,.311.266l.117-.069A1.864,1.864,0,0,0,50.1,20.478ZM38.375,33.551a.538.538,0,0,1-.273.364c-1.186.629-2.382,1.241-3.577,1.855C33.109,36.5,31.69,37.223,30.17,38a28.176,28.176,0,0,1,8.16-10.112l.053-.044C38.386,29.7,38.392,31.7,38.375,33.551Z",transform:"translate(-25.369 -8.153)",fill:"#c72c48"})}))},Ze=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"WarpIcon",d:"M223.777 256c-4.293 0-7.777-3.137-7.777-7V7c0-3.868 3.484-7 7.777-7h24.445c4.295 0 7.777 3.132 7.777 7v242c0 3.862-3.482 7-7.777 7Zm-54 0c-4.293 0-7.777-3.137-7.777-7V60c0-3.868 3.484-7 7.777-7h24.445c4.295 0 7.777 3.132 7.777 7v189c0 3.862-3.482 7-7.777 7Zm-54 0c-4.293 0-7.777-3.137-7.777-7V111c0-3.868 3.484-7 7.777-7h24.445c4.295 0 7.777 3.132 7.777 7v138c0 3.862-3.482 7-7.777 7Zm-54 0c-4.293 0-7.777-3.137-7.777-7v-87c0-3.868 3.484-7 7.777-7h24.445c4.295 0 7.777 3.132 7.777 7v87c0 3.862-3.482 7-7.777 7Zm-54 0C3.484 256 0 252.863 0 249v-35c0-3.862 3.484-7 7.777-7h24.445c4.295 0 7.777 3.137 7.777 7v35c0 3.862-3.482 7-7.777 7Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 922",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Se=n(79880),je=n(33976),Ee=n(49818),Te=n(60527),Ce=n(54163),Ae=n(68733),Me=n(84683),Pe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 23.786 22.2"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-prom-error",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1578","data-name":"Rect\xe1ngulo 1578",width:"23.786",height:"22.2",fill:"none"})})}),(0,a.jsxs)("g",{id:"Grupo_2402","data-name":"Grupo 2402",clipPath:"url(#clip-path-prom-error)",children:[(0,a.jsx)("path",{id:"Trazado_7049","data-name":"Trazado 7049",d:"M23.786,7.136a3.967,3.967,0,0,0-4.824-3.871A11.1,11.1,0,1,0,22.2,11.1c0-.26-.01-.518-.027-.773a3.958,3.958,0,0,0,1.613-3.192M11.1,20.776v0a2.92,2.92,0,0,1-3.158-2.6h6.317a2.922,2.922,0,0,1-3.159,2.6m5.217-3.464H5.883V15.42H16.317Zm-.038-2.865H5.913c-.035-.04-.07-.079-.1-.119a7.561,7.561,0,0,1-1.564-2.664c0-.023,1.295.266,2.22.476,0,0,.476.109,1.167.238A4.332,4.332,0,0,1,6.573,9.592c0-2.225,1.707-4.17,1.091-5.741.6.048,1.24,1.269,1.284,3.166a6.8,6.8,0,0,0,.9-3.474c0-1.02.672-2.207,1.348-2.247-.6.988.159,1.835.826,3.937.251.793.22,2.118.414,2.961.064-1.75.366-4.3,1.476-5.185a3.83,3.83,0,0,0,.457,3.167,6,6,0,0,1,1,3.437,4.294,4.294,0,0,1-1.031,2.775c.733-.137,1.239-.262,1.239-.262l2.379-.465a6.749,6.749,0,0,1-1.676,2.785M19.822,10.7A3.568,3.568,0,1,1,23.39,7.136,3.568,3.568,0,0,1,19.822,10.7",transform:"translate(0 -0.001)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7050","data-name":"Trazado 7050",d:"M491.022,131.222l.121-2.851h-1.17l.121,2.851Z",transform:"translate(-470.607 -123.297)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7051","data-name":"Trazado 7051",d:"M488.865,209.66a.655.655,0,1,0,.65.65.667.667,0,0,0-.65-.65",transform:"translate(-468.913 -201.374)",fill:"#c83b51"})]})]}))},ke=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",viewBox:"0 0 256 256",fill:"currentcolor"},e),{},{children:(0,a.jsx)("g",{transform:"translate(23.344 0.006)",children:(0,a.jsx)("g",{children:(0,a.jsx)("g",{children:(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:"M76.7,73.6c4.6,4.6,11.9,4.6,16.5,0l0,0l25-25c4.6-4.6,4.6-11.9,0-16.5l0,0l-25-25 c-4.6-4.6-11.9-4.6-16.5,0s-4.6,11.9,0,16.5l7.2,7.2c-47,9.9-80.8,51.3-80.8,99.4c0,6.4,5.2,11.7,11.7,11.7 s11.7-5.2,11.7-11.7c0-32.4,20-61.4,50.2-73C72.2,61.8,72.2,69.1,76.7,73.6"}),(0,a.jsx)("path",{d:"M208.8,126.8c0-6.4-5.2-11.7-11.7-11.7c-6.4,0-11.7,5.2-11.7,11.7c0,32.4-20,61.4-50.2,73 c4.5-4.6,4.4-12-0.2-16.5c-4.6-4.5-11.9-4.4-16.4,0.1l-25,25c-1.4,1.4-2.4,3.1-2.9,4.9c-0.5,1.8-0.6,3.7-0.3,5.5 c0.4,2.3,1.6,4.4,3.2,6l0,0l25,25c4.6,4.6,11.9,4.6,16.5,0s4.6-11.9,0-16.5l-7.2-7.2C175,216.3,208.7,174.9,208.8,126.8"}),(0,a.jsx)("path",{d:"M92.8,157.8l6-4.5c0.9,0.4,1.8,0.8,2.8,1.2l1.1,7.5c0.2,1.4,1.4,2.4,2.8,2.4h10.6 c1.4,0,2.6-1,2.8-2.4l1.1-7.5c0.9-0.3,1.9-0.7,2.8-1.2l6,4.5c1.1,0.8,2.6,0.7,3.6-0.2l7.5-7.5c1-1,1.1-2.5,0.2-3.6l-4.5-6 c0.4-0.9,0.8-1.8,1.2-2.8l7.5-1.1c1.4-0.2,2.4-1.4,2.4-2.8v-10.7c0-1.4-1-2.5-2.3-2.7l-7.5-1.1c-0.3-0.9-0.7-1.9-1.2-2.8 l4.5-6c0.8-1.1,0.7-2.6-0.3-3.6l-7.5-7.6c-1-1-2.5-1.1-3.6-0.2l-6,4.5c-0.9-0.4-1.8-0.8-2.8-1.2l-1.1-7.5 c-0.2-1.4-1.4-2.4-2.8-2.4h-10.7c-1.4,0-2.6,1-2.7,2.4l-1.1,7.5c-0.9,0.3-1.9,0.7-2.8,1.2l-6-4.5c-1.1-0.8-2.6-0.7-3.6,0.2 l-7.5,7.5c-1,1-1.1,2.5-0.3,3.6l4.5,6c-0.4,0.9-0.8,1.8-1.2,2.8l-7.5,1.1c-1.4,0.2-2.4,1.4-2.4,2.8v10.6c0,1.4,1,2.6,2.4,2.8 l7.5,1.1c0.3,0.9,0.7,1.9,1.2,2.8l-4.5,6.1c-0.8,1.1-0.7,2.6,0.3,3.6l7.5,7.5C90.2,158.6,91.7,158.7,92.8,157.8 M102.5,128.5 c-0.1-4.6,3.6-8.3,8.2-8.3c4.6-0.1,8.3,3.6,8.3,8.2c0,0.1,0,0.1,0,0.2l0,0c0,4.6-3.7,8.3-8.2,8.3l0,0 C106.2,136.8,102.5,133.1,102.5,128.5L102.5,128.5L102.5,128.5z"})]})})})})}))},Oe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1025","data-name":"Rect\xe1ngulo 1025",width:"256",height:"236.235",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Drive_Format_Errors",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Drive_Format_Errors","data-name":"Drive Format Errors",clipPath:"url(#clip-Drive_Format_Errors)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Drive_Format_Errors-Icon","data-name":"Drive Format Errors-Icon",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1004","data-name":"Rect\xe1ngulo 1004",width:"256",height:"256",fill:"none"}),(0,a.jsx)("g",{id:"Grupo_2413","data-name":"Grupo 2413",transform:"translate(0.637 9.778)",children:(0,a.jsxs)("g",{id:"Grupo_2412","data-name":"Grupo 2412",transform:"translate(0 0.001)",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7156","data-name":"Trazado 7156",d:"M97.03,336.139a9.708,9.708,0,1,1,.007,0",transform:"translate(-47.133 -168.561)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7157","data-name":"Trazado 7157",d:"M139.7,336.054a6.907,6.907,0,1,0-7.923-5.713,6.907,6.907,0,0,0,7.923,5.713",transform:"translate(-68.864 -168.564)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7158","data-name":"Trazado 7158",d:"M256.009,77.663A47.444,47.444,0,0,0,198.24,31.346a118.111,118.111,0,1,0,38,86.785c0-.642-.014-1.281-.024-1.921a47.383,47.383,0,0,0,19.793-38.546M43.519,118.312,67.309,58.88A5.7,5.7,0,0,1,72.6,55.3h91.06a5.686,5.686,0,0,1,2.687.677,47.446,47.446,0,0,0,26.623,66.516,5.7,5.7,0,0,1-5.312,3.641H48.809a5.7,5.7,0,0,1-5.29-7.818M201.9,175.033a5.937,5.937,0,0,1-5.936,5.936H40.294a5.936,5.936,0,0,1-5.936-5.936V146.671a5.936,5.936,0,0,1,5.936-5.936H195.96a5.937,5.937,0,0,1,5.936,5.936Zm6.94-59.871A37.494,37.494,0,1,1,246.33,77.668a37.494,37.494,0,0,1-37.494,37.494",transform:"translate(-0.009 -0.013)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7159","data-name":"Trazado 7159",d:"M282.274,335.577h-80.98a4.182,4.182,0,0,1-4.169-4.169v-5.956a4.182,4.182,0,0,1,4.169-4.169h80.98a4.182,4.182,0,0,1,4.169,4.169v5.956a4.182,4.182,0,0,1-4.169,4.169",transform:"translate(-103.088 -168.017)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7160","data-name":"Trazado 7160",d:"M435.958,142.765l1.282-30.209h-12.4l1.282,30.209Z",transform:"translate(-222.172 -58.862)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7161","data-name":"Trazado 7161",d:"M430.2,183.9a6.94,6.94,0,1,0,6.887,6.993v-.106A7.067,7.067,0,0,0,430.2,183.9",transform:"translate(-221.316 -96.17)",fill:"#c83b51"})]})})]})]})]}))},Re=n(97506),Ne=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 25"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-call-home-feature",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1614","data-name":"Rect\xe1ngulo 1614",width:"6.172",height:"6.309",stroke:"rgba(0,0,0,0)",strokeWidth:"1"})})}),(0,a.jsxs)("g",{id:"Grupo_2540","data-name":"Grupo 2540",transform:"translate(0.531 0.596)",children:[(0,a.jsx)("path",{id:"call-home-icon",d:"M16.865,8.241a1.7,1.7,0,0,1-1.6,1.092h-.633v5.3a1.694,1.694,0,0,1-1.694,1.694h-8.9a1.7,1.7,0,0,1-1.694-1.694v-5.3H1.71A1.694,1.694,0,0,1,.58,6.362L7.358.432a1.694,1.694,0,0,1,2.259,0L16.4,6.362h0a1.694,1.694,0,0,1,.47,1.879",transform:"translate(0 0)",fill:"#07193e",stroke:"rgba(0,0,0,0)",strokeWidth:"1"}),(0,a.jsx)("g",{id:"Grupo_2539","data-name":"Grupo 2539",transform:"translate(5.441 6.68)",children:(0,a.jsx)("g",{id:"Grupo_2539-2","data-name":"Grupo 2539",clipPath:"url(#clip-path-call-home-feature)",children:(0,a.jsx)("path",{id:"Trazado_7262","data-name":"Trazado 7262",d:"M4.6,38.068a.164.164,0,0,0-.231,0l-.377.377a.149.149,0,0,1-.21,0L2.254,36.918a.149.149,0,0,1,0-.21l.377-.377a.164.164,0,0,0,0-.231L1.4,34.871a.164.164,0,0,0-.231,0l-.763.763a1.4,1.4,0,0,0,0,1.982l2.669,2.672a1.4,1.4,0,0,0,1.982,0l.763-.763a.164.164,0,0,0,0-.231Z",transform:"translate(0 -34.389)",stroke:"rgba(0,0,0,0)",strokeWidth:"1"})})}),(0,a.jsxs)("g",{id:"Grupo_2537","data-name":"Grupo 2537",transform:"translate(12.323 0)",children:[(0,a.jsxs)("g",{id:"Elipse_623","data-name":"Elipse 623",transform:"translate(-0.323 -0.249)",fill:"#4ccb92",stroke:"#fff",strokeWidth:"1",children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"7",stroke:"none"}),(0,a.jsx)("circle",{cx:"7",cy:"7",r:"6.5",fill:"none"})]}),(0,a.jsx)("g",{id:"check",transform:"translate(2.934 4.069)",children:(0,a.jsx)("path",{id:"Trazado_7261","data-name":"Trazado 7261",d:"M14.9,10.862a.622.622,0,1,1,.889.871l-3.311,4.139a.622.622,0,0,1-.9.017L9.384,13.694a.622.622,0,1,1,.879-.879L12,14.551l2.881-3.67.017-.018Z",transform:"translate(-9.182 -10.676)"})})]})]})]}))},ze=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"trace-icn",d:"m28.428 74.404 56.9 62.738v110.977A8.062 8.062 0 0 1 77.154 256H65.065a8.082 8.082 0 0 1-8.189-7.881v-98.742L.003 82.287V7.879A8.036 8.036 0 0 1 8.16 0h12.105a8.043 8.043 0 0 1 8.166 7.879Zm56.9-66.525A8.061 8.061 0 0 0 77.154 0H65.065a8.081 8.081 0 0 0-8.189 7.879v71.315l56.921 67.091v101.834a8.045 8.045 0 0 0 8.166 7.881h12.1a8.058 8.058 0 0 0 8.157-7.881V134.051L85.331 71.322ZM134.059 0h-12.1a8.044 8.044 0 0 0-8.166 7.879v39.1a8.044 8.044 0 0 0 8.166 7.88h12.1a8.058 8.058 0 0 0 8.157-7.88v-39.1a8.057 8.057 0 0 0-8.16-7.88Zm44.783 118.856h12.105a8.05 8.05 0 0 0 8.166-7.88V7.876a8.049 8.049 0 0 0-8.166-7.879h-12.105a8.056 8.056 0 0 0-8.174 7.879v103.1a8.058 8.058 0 0 0 8.172 7.88ZM247.818-.001h-12.1a8.043 8.043 0 0 0-8.165 7.879v39.1a8.044 8.044 0 0 0 8.165 7.88h12.1a8.059 8.059 0 0 0 8.182-7.88v-39.1a8.058 8.058 0 0 0-8.182-7.879Zm0 173.715h-12.1a8.044 8.044 0 0 0-8.165 7.881v66.523a8.044 8.044 0 0 0 8.165 7.881h12.1a8.059 8.059 0 0 0 8.182-7.881v-66.519a8.058 8.058 0 0 0-8.182-7.884Zm0-82.286h-12.1a8.044 8.044 0 0 0-8.165 7.881v17.727l-56.889 56.678v74.4a8.057 8.057 0 0 0 8.174 7.881h12.105a8.05 8.05 0 0 0 8.166-7.881v-56.115l56.889-67.09v-25.6a8.059 8.059 0 0 0-8.18-7.881ZM20.262 137.142H8.157A8.038 8.038 0 0 0 0 145.022v103.1a8.037 8.037 0 0 0 8.157 7.881h12.105a8.044 8.044 0 0 0 8.166-7.881v-103.1a8.045 8.045 0 0 0-8.166-7.88Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 880",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Ie=n(47919),Le=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 21.883 17.614"},e),{},{children:(0,a.jsx)("g",{id:"Grupo_2504","data-name":"Grupo 2504",transform:"translate(-492.881 -516.58)",children:(0,a.jsx)("g",{id:"google-cloud-logo-color",transform:"translate(492.881 516.58)",children:(0,a.jsxs)("g",{id:"Grupo_1820","data-name":"Grupo 1820",children:[(0,a.jsx)("path",{id:"Trazado_6946","data-name":"Trazado 6946",d:"M67.542,36.137h.667l1.9-1.9.093-.808A8.55,8.55,0,0,0,56.3,37.6a1.03,1.03,0,0,1,.667-.039l3.8-.628s.193-.321.294-.3a4.745,4.745,0,0,1,6.494-.494Z",transform:"translate(-53.656 -31.287)"}),(0,a.jsx)("path",{id:"Trazado_6947","data-name":"Trazado 6947",d:"M229.968,80.926a8.562,8.562,0,0,0-2.582-4.164l-2.669,2.669a4.746,4.746,0,0,1,1.742,3.765v.474a2.376,2.376,0,0,1,0,4.752h-4.752l-.474.481v2.85l.474.474h4.752a6.182,6.182,0,0,0,3.51-11.3Z",transform:"translate(-210.804 -74.614)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6948","data-name":"Trazado 6948",d:"M6.558,142.319A6.18,6.18,0,0,0,2.828,153.4l2.756-2.756A2.376,2.376,0,1,1,8.727,147.5l2.756-2.756a6.166,6.166,0,0,0-4.924-2.423Z",transform:"translate(-0.415 -137.075)",fill:"#9aafbf"})]})})})}))},De=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 10 10",children:(0,a.jsx)("path",{d:"M0,0v10l2.8-2.2H10V0H0z M6.6,6L5.6,6.4l-0.8-2l-1.5,2L2.5,5.9l1.9-2.6L4.1,2.4H3.2v-1h1.5l1.4,3.7l0.9-0.4 l0.4,0.9L6.6,6z"})}))},Be=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 465",d:"M235.997 77.196c.388-15.754.958-32.242-.5-47.941-1.094-11.755-6.193-21.736-17.831-25.915a42.42 42.42 0 0 0-5.017-1.447C206.1.414 199.217.293 192.56.093c-11.727-.343-23.45.366-35.177.314-23.493-.1-46.985.322-70.479.414q-4.228.018-8.455.017H36.242a17.26 17.26 0 0 0-17.241 17.241v220.686a17.259 17.259 0 0 0 17.241 17.24h182.541a17.26 17.26 0 0 0 17.24-17.24V128.813c.003-17.182-.448-34.458-.026-51.617Zm-20.922 145.986a14.889 14.889 0 0 1-14.89 14.89H51.818a14.888 14.888 0 0 1-14.888-14.89V33.665a14.888 14.888 0 0 1 14.889-14.889h99.547v25.459a37.8 37.8 0 0 0 37.757 37.758h25.951Zm0-157.655h-25.949a21.321 21.321 0 0 1-21.3-21.3V18.765h32.359a14.888 14.888 0 0 1 14.888 14.889Z"}),(0,a.jsx)("path",{"data-name":"Trazado 466",d:"M125.412 80.164a71.163 71.163 0 0 0-71.086 71.082 71.163 71.163 0 0 0 71.082 71.082 71.163 71.163 0 0 0 71.083-71.082 71.163 71.163 0 0 0-71.079-71.082Zm-23.487 19.951c-8.025 12.368-14.515 27.117-16.227 43.732h-16.07a56.413 56.413 0 0 1 32.3-43.732Zm-32.3 58.529h15.866a88.49 88.49 0 0 0 4.224 21.1 102.125 102.125 0 0 0 10.114 21.612 56.4 56.4 0 0 1-30.2-42.712Zm48.386 43.154c-6.658-8.526-16.02-23.7-17.687-43.154h17.687Zm0-57.951h-17.4c1.562-12.561 6.66-26.4 17.4-41.033Zm14.8-41.032c10.734 14.633 15.833 28.471 17.4 41.032h-17.4Zm0 98.982v-43.154h17.687c-1.672 19.455-11.029 34.63-17.688 43.155Zm18.183-.441a102 102 0 0 0 10.112-21.612 88.429 88.429 0 0 0 4.224-21.1h15.867a56.4 56.4 0 0 1-30.2 42.713Zm14.133-57.51c-1.711-16.616-8.2-31.364-16.226-43.732a56.413 56.413 0 0 1 32.3 43.731Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 910",fill:"none",d:"M0 0h256v256H0z"})]})]}))},He=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Back Settings",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"arrow-icn",d:"M236.198 108.063c26.394 0 26.394 40.032 0 40.032H68.514l22.739 22.668c18.656 18.623-9.726 46.923-28.382 28.318L5.998 142.348a19.991 19.991 0 0 1 0-28.548l56.877-56.716c18.656-18.6 47.038 9.684 28.382 28.3l-22.743 22.679h167.684Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 863",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Fe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 16",d:"M15.084 248.677c-8.375 0-15.186-7.333-15.186-16.344V70.89c0-9.016 6.811-16.354 15.186-16.354l118.74-1.037a62.9 62.9 0 0 1 4.355-11.793 62.879 62.879 0 0 1 6.645-10.7 61.818 61.818 0 0 1 8.719-9.186 61.885 61.885 0 0 1 10.6-7.323 62.176 62.176 0 0 1 29.791-7.6 62.232 62.232 0 0 1 62.164 62.164 61.645 61.645 0 0 1-3.574 20.762 61.809 61.809 0 0 1-9.9 17.787 62.654 62.654 0 0 1-14.977 13.581 61.989 61.989 0 0 1-18.74 8.129v103.014c0 9.011-6.8 16.344-15.17 16.344Zm4.492-172.963a14.386 14.386 0 0 0-3.795 9.851V217.65c0 7.682 5.8 13.93 12.939 13.93h151.4c7.121 0 12.916-6.248 12.916-13.93v-86.472a61.49 61.49 0 0 1-23.232-4.875 61.964 61.964 0 0 1-19.193-12.784 62.138 62.138 0 0 1-13.236-18.857 61.664 61.664 0 0 1-5.465-23.021H28.723a12.414 12.414 0 0 0-9.147 4.072Zm152.111-47.433a46.458 46.458 0 0 0-24.189 40.779 46.493 46.493 0 0 0 46.438 46.442 46.4 46.4 0 0 0 14.4-2.311 5.7 5.7 0 0 0 .391-.509l.184-.269v.566a46.525 46.525 0 0 0 12.549-6.574 46.832 46.832 0 0 0 10-10.039 46.2 46.2 0 0 0 6.57-12.7 46.119 46.119 0 0 0 2.357-14.6 46.5 46.5 0 0 0-46.453-46.447 46.451 46.451 0 0 0-22.247 5.662ZM45.818 209.303a1.006 1.006 0 0 1-1-1.009v-20.649a1.006 1.006 0 0 1 1-1.009h110.521a1.011 1.011 0 0 1 1.01 1.009v20.649a1.011 1.011 0 0 1-1.01 1.009Zm0-44.934a1.006 1.006 0 0 1-1-1.009v-20.649a1.006 1.006 0 0 1 1-1.009h110.521a1.011 1.011 0 0 1 1.01 1.009v20.649a1.011 1.011 0 0 1-1.01 1.009Zm0-44.934a1.006 1.006 0 0 1-1-1.009V97.777a1.006 1.006 0 0 1 1-1.009h88.053a1.009 1.009 0 0 1 1.008 1.009v20.649a1.009 1.009 0 0 1-1.008 1.009Zm144.836-27.656h-.023a6.229 6.229 0 0 1-4.484-1.886L172.17 75.921a6.4 6.4 0 0 1 .316-9.04 6.387 6.387 0 0 1 4.361-1.716 6.392 6.392 0 0 1 4.357 1.716l9.449 9.459 23.482-23.436a6.3 6.3 0 0 1 4.518-1.881 6.312 6.312 0 0 1 4.461 1.825l.053.057a6.323 6.323 0 0 1 1.895 4.484 6.3 6.3 0 0 1-1.838 4.5l-.057.057-27.982 27.951a6.211 6.211 0 0 1-4.48 1.886Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 877",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Ue=n(51979),Ve=n(76181),Ge=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 28 28"},e),{},{children:(0,a.jsxs)("g",{id:"Tiers-NotAvailable-icon",transform:"translate(-340 -149)",children:[(0,a.jsx)("circle",{id:"Elipse_594","data-name":"Elipse 594",cx:"14",cy:"14",r:"14",transform:"translate(340 149)",fill:"#c83b51"}),(0,a.jsxs)("g",{id:"Grupo_2399","data-name":"Grupo 2399",children:[(0,a.jsxs)("g",{id:"TiersIcon",transform:"translate(345 154)",children:[(0,a.jsx)("rect",{id:"Rect\xe1ngulo_848","data-name":"Rect\xe1ngulo 848",width:"17.95",height:"17.95",transform:"translate(0 0.021)",fill:"none"}),(0,a.jsx)("g",{id:"tiers-icn",transform:"translate(-0.001 0)",children:(0,a.jsx)("g",{id:"tiers",children:(0,a.jsx)("path",{id:"Trazado_441","data-name":"Trazado 441",d:"M13,3a.8.8,0,0,0-.392.092L4.374,7.482a.666.666,0,0,0,0,1.2l2.54,1.354-2.54,1.354a.666.666,0,0,0,0,1.2l2.54,1.353-2.54,1.354a.666.666,0,0,0,0,1.2l8.236,4.39a.8.8,0,0,0,.749,0l8.236-4.39a.666.666,0,0,0,0-1.2l-2.54-1.354,2.54-1.353a.666.666,0,0,0,0-1.2l-2.54-1.354L21.6,8.678a.666.666,0,0,0,0-1.2L13.36,3.092A.8.8,0,0,0,13,3ZM8.414,10.832l4.2,2.237a.8.8,0,0,0,.749,0l4.2-2.237,2.167,1.154-6.739,3.591L6.246,11.986Zm0,3.9,4.2,2.237a.8.8,0,0,0,.749,0l4.2-2.237,2.166,1.154-6.739,3.591L6.246,15.89Z",transform:"translate(-4 -3)"})})})]}),(0,a.jsxs)("g",{id:"Grupo_2398","data-name":"Grupo 2398",transform:"translate(-3 5)",children:[(0,a.jsx)("circle",{id:"Elipse_593","data-name":"Elipse 593",cx:"5",cy:"5",r:"5",transform:"translate(358 156)"}),(0,a.jsx)("path",{id:"Elipse_593_-_Contorno","data-name":"Elipse 593 - Contorno",d:"M5,1A4,4,0,1,0,9,5,4,4,0,0,0,5,1M5,0A5,5,0,1,1,0,5,5,5,0,0,1,5,0Z",transform:"translate(358 156)",fill:"#c83b51"}),(0,a.jsx)("g",{id:"Page-1",transform:"translate(361.707 159.513)",children:(0,a.jsxs)("g",{id:"Fill-2",transform:"translate(0 0)",children:[(0,a.jsx)("path",{id:"Trazado_6970","data-name":"Trazado 6970",d:"M2.978.3l-.3-.3L1.489,1.189.3,0,0,.3,1.189,1.489,0,2.678l.3.3L1.489,1.789,2.678,2.978l.3-.3L1.789,1.489Z",transform:"translate(0 0)",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_6970_-_Contorno","data-name":"Trazado 6970 - Contorno",d:"M.3-.354,1.489.835,2.678-.354,3.331.3,2.142,1.489,3.331,2.678l-.653.653L1.489,2.142.3,3.331l-.653-.653L.835,1.489-.354.3Z",transform:"translate(0 0)",fill:"#c83b51"})]})})]})]})]})}))},We=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 25 23"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-perf-feat-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_985","data-name":"Rect\xe1ngulo 985",width:"17",height:"17",transform:"translate(-0.12 0.298)",fill:"#07193e"})})}),(0,a.jsxs)("g",{id:"Grupo_2543","data-name":"Grupo 2543",transform:"translate(0.12 0.101)",children:[(0,a.jsx)("g",{id:"speedtest-icon-full",transform:"translate(0 5.601)",children:(0,a.jsxs)("g",{id:"Grupo_2352","data-name":"Grupo 2352",transform:"translate(0 0)",clipPath:"url(#clip-path-perf-feat-icon)",children:[(0,a.jsx)("path",{id:"Trazado_7077","data-name":"Trazado 7077",d:"M120.559,129.741a.529.529,0,1,0,.529.529h0a.529.529,0,0,0-.529-.529",transform:"translate(-112.345 -121.572)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7078","data-name":"Trazado 7078",d:"M8.2,0a8.2,8.2,0,1,0,8.2,8.2A8.2,8.2,0,0,0,8.2,0M8.16,2.27h.027a.5.5,0,1,1-.008,1H8.16a.5.5,0,0,1,0-1m-5.6,5.5v0a.19.19,0,0,1-.189.164H2.345a.19.19,0,0,1-.164-.214V7.717h0a.189.189,0,0,1,.213-.163h0a.19.19,0,0,1,.162.214M3,6.075H3a.278.278,0,0,1-.244-.406V5.662h0A.278.278,0,1,1,3,6.075M4.54,4.423l-.021.018-.006.005a.34.34,0,0,1-.225.088v0a.341.341,0,0,1-.224-.6l.006-.005h0l0,0a.342.342,0,1,1,.466.5m1.683-.868-.006,0-.011,0a.449.449,0,0,1-.162.034v0a.453.453,0,0,1-.16-.876l.013,0h0a.453.453,0,1,1,.325.845M9.1,12.6h0a.241.241,0,0,1-.241.241h-1.3a.241.241,0,1,1,0-.482h1.3A.241.241,0,0,1,9.1,12.6Zm1.067-4.771-.89.76a.021.021,0,0,0,0,.02,1.1,1.1,0,1,1-.668-.779.021.021,0,0,0,.021,0l.886-.76h0a.5.5,0,0,1,.651.759M10.1,3.7v0a.552.552,0,0,1-.2-.036L9.885,3.65a.554.554,0,0,1,.387-1.039l.019.007A.557.557,0,0,1,10.1,3.7m1.765,1.13a.628.628,0,0,1-.413-.155l-.016-.014a.629.629,0,0,1,.825-.948l.017.015a.628.628,0,0,1-.413,1.1M12.5,6.142l-.012-.022A.722.722,0,0,1,13.743,5.4l.017.032.013.023h0a.722.722,0,0,1-.291.979h0a.722.722,0,0,1-.979-.291m1.385,2.42a.817.817,0,0,1-.921-.7V7.835a.817.817,0,0,1,.809-.927.819.819,0,0,1,.807.7l0,.032a.817.817,0,0,1-.7.918",transform:"translate(0 -0.138)",fill:"#07193e"})]})}),(0,a.jsxs)("g",{id:"Grupo_2538","data-name":"Grupo 2538",transform:"translate(11.203 0)",children:[(0,a.jsxs)("g",{id:"Elipse_623","data-name":"Elipse 623",transform:"translate(-0.324 -0.101)",fill:"#4ccb92",stroke:"#fff",strokeWidth:"1",children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"7",stroke:"none"}),(0,a.jsx)("circle",{cx:"7",cy:"7",r:"6.5",fill:"none"})]}),(0,a.jsx)("g",{id:"check",transform:"translate(2.797 4.098)",children:(0,a.jsx)("path",{id:"Trazado_7261","data-name":"Trazado 7261",d:"M14.938,10.864a.627.627,0,1,1,.895.877L12.5,15.91a.627.627,0,0,1-.9.017l-2.21-2.211a.627.627,0,1,1,.886-.886l1.75,1.748,2.9-3.7.017-.018Z",transform:"translate(-9.182 -10.676)"})})]})]})]}))},qe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Add Folder",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("g",{"data-name":"add folder-icn",children:(0,a.jsx)("path",{"data-name":"Uni\\xF3n 11",d:"M39.666 233.405A29.865 29.865 0 0 1 9.8 204.786L.074 97.965A20.666 20.666 0 0 1 0 96.155a29.835 29.835 0 0 1 20.248-28.183V54.5a20.051 20.051 0 0 1-.236-3.083A29.515 29.515 0 0 1 49.549 22h52.166c13.4 0 21.111 10.416 26.211 17.3.338.458.727.981 1.119 1.513h81.508a29.514 29.514 0 0 1 29.531 29.034A29.779 29.779 0 0 1 256 96.155c0 .619-.031 1.234-.092 1.853l-9.963 106.8a29.87 29.87 0 0 1-29.865 28.593ZM20.092 96.155l9.787 107.485a9.8 9.8 0 0 0 9.787 9.749H216.08a9.8 9.8 0 0 0 9.8-9.749l10.03-107.485a9.809 9.809 0 0 0-9.8-9.753H29.879a9.8 9.8 0 0 0-9.787 9.753Zm20.015-44.734h.227v23.514H219.99v-4.7a9.449 9.449 0 0 0-9.437-9.4H122.5c-7.082 0-14.17-18.814-20.783-18.814H49.549a9.449 9.449 0 0 0-9.442 9.4Zm80.588 128.7v-23.339H97.264a7.783 7.783 0 1 1 0-15.565H120.7v-23.335a7.809 7.809 0 0 1 15.617 0v23.335h23.432a7.783 7.783 0 1 1 0 15.565h-23.436v23.335a7.809 7.809 0 0 1-15.617 0Z",stroke:"rgba(0,0,0,0)",strokeMiterlimit:10})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 873",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Ke=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 18.201 22"},e),{},{children:[(0,a.jsx)("path",{id:"Trazado_6934","data-name":"Trazado 6934",d:"M1.477,53.686,0,54.417V67.239l1.477.726.009-.011V53.7l-.009-.01",transform:"translate(0 -49.842)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6935","data-name":"Trazado 6935",d:"M28.526,66.1l-7.9,1.861V53.686l7.9,1.821V66.1",transform:"translate(-19.147 -49.842)"}),(0,a.jsx)("path",{id:"Trazado_6936","data-name":"Trazado 6936",d:"M81.178,120.939l3.352.427.021-.049.019-5.5-.04-.043-3.352.421v4.74",transform:"translate(-75.415 -107.566)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6937","data-name":"Trazado 6937",d:"M128,66.125l7.687,1.844.012-.019V53.7l-.012-.013L128,55.527v10.6",transform:"translate(-118.959 -49.842)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6938","data-name":"Trazado 6938",d:"M131.349,120.939l-3.353.427v-5.588l3.353.421v4.74",transform:"translate(-118.91 -107.566)"}),(0,a.jsx)("path",{id:"Trazado_6939","data-name":"Trazado 6939",d:"M87.883,78.252l-3.353.611-3.352-.611,3.348-.877,3.357.877",transform:"translate(-75.429 -71.876)",fill:"#5a6e7e"}),(0,a.jsx)("path",{id:"Trazado_6940","data-name":"Trazado 6940",d:"M87.883,211.825l-3.353-.615-3.352.615,3.348.934,3.357-.934",transform:"translate(-75.429 -196.201)",fill:"#9aafbf"}),(0,a.jsx)("path",{id:"Trazado_6941","data-name":"Trazado 6941",d:"M81.178,6.417l3.352-.829.027-.008V.022L84.53,0,81.178,1.676V6.417",transform:"translate(-75.415)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6942","data-name":"Trazado 6942",d:"M131.349,6.417,128,5.587V0l3.353,1.676V6.417",transform:"translate(-118.91)"}),(0,a.jsx)("path",{id:"Trazado_6943","data-name":"Trazado 6943",d:"M84.525,226.222l-3.352-1.676v-4.741l3.352.829.049.056-.013,5.434-.036.1",transform:"translate(-75.411 -204.222)",fill:"#6b8295"}),(0,a.jsx)("path",{id:"Trazado_6944","data-name":"Trazado 6944",d:"M128,226.222l3.352-1.676v-4.741l-3.352.829v5.587",transform:"translate(-118.91 -204.222)"}),(0,a.jsx)("path",{id:"Trazado_6945","data-name":"Trazado 6945",d:"M235.367,53.686l1.477.731V67.239l-1.477.73V53.686",transform:"translate(-218.643 -49.842)"})]}))},$e=n(64244),Ye=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"users-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 331",d:"M128.212 142.371c39.3 0 71.279-31.6 71.279-70.444S167.512 1.483 128.212 1.483s-71.268 31.6-71.268 70.444 31.977 70.444 71.268 70.444Zm0-121.306c28.383 0 51.463 22.818 51.463 50.862s-23.08 50.862-51.463 50.862-51.445-22.816-51.445-50.862 23.066-50.862 51.445-50.862Z"}),(0,a.jsx)("path",{"data-name":"Trazado 331 - Contorno",d:"M128.212 143.853c-40.124 0-72.768-32.266-72.768-71.927S88.088-.001 128.212-.001s72.779 32.266 72.779 71.927-32.649 71.927-72.779 71.927Zm0-140.888c-38.47 0-69.768 30.936-69.768 68.961s31.3 68.961 69.768 68.961 69.779-30.936 69.779-68.961-31.303-68.961-69.779-68.961Zm0 121.305c-29.194 0-52.945-23.481-52.945-52.344s23.751-52.345 52.945-52.345 52.963 23.482 52.963 52.345-23.76 52.345-52.963 52.345Zm0-101.724c-27.54 0-49.945 22.152-49.945 49.38s22.405 49.379 49.945 49.379 49.963-22.151 49.963-49.379-22.414-49.379-49.963-49.379Z"}),(0,a.jsx)("path",{"data-name":"Trazado 332",d:"M215.129 199.095a108.6 108.6 0 0 0-41.184-32.37 111.377 111.377 0 0 0-51.553-10.081c-31.26 1.575-62.109 17.524-80.5 41.632-.613.8-1.213 1.624-1.8 2.439a35.274 35.274 0 0 0-2.746 36.518c5.68 10.824 16.691 17.287 29.441 17.287h122.867c12.885 0 23.883-6.551 29.4-17.513a36.09 36.09 0 0 0-3.925-37.912Zm-13.812 29.2c-1.529 3.029-4.8 6.648-11.662 6.648H66.783c-7.25 0-10.545-4.215-11.861-6.724a15.692 15.692 0 0 1 1.361-16.225c.473-.647.938-1.29 1.43-1.93 14.951-19.6 40.129-32.58 65.688-33.869 1.408-.068 2.816-.1 4.213-.1 27.5 0 55.287 13.376 71.729 34.828a16.785 16.785 0 0 1 1.974 17.372Z"}),(0,a.jsx)("path",{"data-name":"Trazado 332 - Contorno",d:"M127.643 155.028a110.952 110.952 0 0 1 23.833 2.624 115.878 115.878 0 0 1 23.1 7.726 110.137 110.137 0 0 1 41.751 32.821 37.565 37.565 0 0 1 4.07 39.465 33.137 33.137 0 0 1-5.348 7.707 32.51 32.51 0 0 1-7.156 5.772 33.964 33.964 0 0 1-8.59 3.612 37.261 37.261 0 0 1-9.646 1.247H66.783a37.248 37.248 0 0 1-9.57-1.23 34.36 34.36 0 0 1-8.568-3.563 33.1 33.1 0 0 1-7.191-5.693 33.672 33.672 0 0 1-5.443-7.6 36.758 36.758 0 0 1 2.851-38.053l.009-.012c.576-.794 1.2-1.642 1.825-2.466 18.644-24.445 49.918-40.623 81.618-42.22 1.769-.092 3.556-.137 5.329-.137Zm62.011 98.007c12.31 0 22.8-6.24 28.053-16.691a34.607 34.607 0 0 0-3.773-36.354 107.135 107.135 0 0 0-40.617-31.92 112.854 112.854 0 0 0-22.492-7.524 107.908 107.908 0 0 0-23.179-2.552c-1.722 0-3.463.044-5.174.13-30.837 1.554-61.251 17.281-79.375 41.044-.608.8-1.214 1.627-1.779 2.4a33.793 33.793 0 0 0-2.638 34.976c5.418 10.324 15.926 16.488 28.11 16.488Zm-62.037-78.43a93.962 93.962 0 0 1 40.673 9.521 90.119 90.119 0 0 1 32.251 25.895 18.687 18.687 0 0 1 3.738 9.3 17.136 17.136 0 0 1-1.619 9.631 13.216 13.216 0 0 1-4.318 5.019 15.031 15.031 0 0 1-8.688 2.453H66.783a15.1 15.1 0 0 1-9.041-2.706 13.981 13.981 0 0 1-4.152-4.818 17.173 17.173 0 0 1 1.466-17.761l.01-.015.19-.261c.4-.554.822-1.127 1.258-1.694 15.213-19.942 40.813-33.145 66.808-34.457a84.647 84.647 0 0 1 4.295-.108Zm62.037 58.85a12.08 12.08 0 0 0 6.975-1.922 10.268 10.268 0 0 0 3.345-3.9 14.2 14.2 0 0 0 1.324-7.982 15.738 15.738 0 0 0-3.147-7.833 87.116 87.116 0 0 0-31.182-25.025 90.916 90.916 0 0 0-39.353-9.218c-1.373 0-2.765.034-4.14.1a89.517 89.517 0 0 0-36.2 9.9 84.252 84.252 0 0 0-28.362 23.379v.005c-.414.538-.8 1.072-1.216 1.637l-.186.254a14.21 14.21 0 0 0-1.252 14.683 10.988 10.988 0 0 0 3.259 3.788 12.148 12.148 0 0 0 7.271 2.136Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 885",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Qe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 44",d:"M68.023 254.27a84.932 84.932 0 0 1-16-4.981 85.034 85.034 0 0 1-14.469-7.867 85.9 85.9 0 0 1-12.605-10.417 86.052 86.052 0 0 1-10.4-12.633 85.293 85.293 0 0 1-7.857-14.5 84.868 84.868 0 0 1-4.965-16.024 86.347 86.347 0 0 1-1.732-17.194 85.284 85.284 0 0 1 4.422-27.2 84.814 84.814 0 0 1 12.285-23.571 85.562 85.562 0 0 1 18.707-18.5q2.35-1.7 4.787-3.216V19.084c0-5.291 2.291-9.882 6.814-13.658A23.864 23.864 0 0 1 62.7.001h101.867a23.167 23.167 0 0 1 15.266 5.427c4.512 3.771 6.807 8.362 6.813 13.648v55.263h47.275a23.173 23.173 0 0 1 15.264 5.427c4.512 3.775 6.8 8.367 6.813 13.648v108.21a17.675 17.675 0 0 1-6.812 14.023 23.153 23.153 0 0 1-15.248 5.421h-80.016a86.359 86.359 0 0 1-25.8 23.31 84.684 84.684 0 0 1-20.33 8.577 85.257 85.257 0 0 1-22.617 3.046 86.2 86.2 0 0 1-17.152-1.731ZM35.275 136.923a60 60 0 0 0-10.312 33.733A60.345 60.345 0 0 0 85.18 230.99a59.739 59.739 0 0 0 36.213-12.148 22.746 22.746 0 0 1-5.031-3.2 17.621 17.621 0 0 1-6.812-14.018v-54.893H62.71a23.732 23.732 0 0 1-15.7-5.431 17.831 17.831 0 0 1-6.568-10.988 60.318 60.318 0 0 0-5.167 6.61Zm100.654 60.824h94.119V97.293h-43.4v29.992a17.675 17.675 0 0 1-6.812 14.023 23.148 23.148 0 0 1-15.252 5.421H135.93Zm0-74.337H160.7V97.294h-24.771Zm-69.348 0h42.967V93.418c0-5.286 2.295-9.882 6.813-13.653a23.874 23.874 0 0 1 15.693-5.427H160.7V22.956H66.581Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 926",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Je=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1023","data-name":"Rect\xe1ngulo 1023",width:"256",height:"255.998",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Enable_Bucket_Encryption",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Enable_Bucket_Encryption","data-name":"Enable Bucket Encryption",clipPath:"url(#clip-Enable_Bucket_Encryption)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsx)("g",{id:"Enable_Bucket_Encryption_Icon","data-name":"Enable Bucket Encryption Icon",children:(0,a.jsxs)("g",{id:"Grupo_2410","data-name":"Grupo 2410",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7149","data-name":"Trazado 7149",d:"M127.927,130.84a8.009,8.009,0,0,0-4.486,14.645v6.451a4.238,4.238,0,0,0,4.228,4.228h.511a4.237,4.237,0,0,0,4.227-4.228v-6.451a8.009,8.009,0,0,0-4.48-14.645",transform:"translate(-0.009)"}),(0,a.jsx)("path",{id:"Trazado_7150","data-name":"Trazado 7150",d:"M250.852,8.773A21.516,21.516,0,0,0,233.732,0H22.264A21.507,21.507,0,0,0,5.148,8.773,25.864,25.864,0,0,0,.395,28.759c5.223,30.384,16.208,94.421,25,145.533l.014.1c4.457,26,8.337,48.644,10.616,61.787C37.988,247.666,47.17,256,57.875,256H198.129c10.712,0,19.873-8.332,21.859-19.818l10.591-61.712.076-.375,14.334-83.619.049-.243L255.6,28.759a25.8,25.8,0,0,0-4.748-19.986M37.855,98a9.544,9.544,0,0,1-9.408-7.93l-.007-.042a9.544,9.544,0,0,1,9.406-11.158h62.969A29.6,29.6,0,0,0,94.2,97.433v.176h-1.06a32.022,32.022,0,0,0-4.912.382Zm14.538,83.918a9.544,9.544,0,0,1-9.408-7.93l-.007-.041a9.544,9.544,0,0,1,9.405-11.159H63.256a26.924,26.924,0,0,0,8.909,18.292q.468.428.952.833ZM181.632,161.14c0,9.2-8.235,16.705-18.456,16.935l-35.261,6.136-35.259-6.135C82.434,177.844,74.2,170.337,74.2,161.14V125.55c0-9.342,8.5-16.941,18.943-16.941H105.2V97.433c0-11.162,10.19-20.244,22.714-20.244s22.714,9.08,22.714,20.244v11.176h12.059c10.446,0,18.944,7.6,18.944,16.941Zm31.479,12.751h0a9.543,9.543,0,0,1-9.413,7.989l-20.95.006c.311-.262.618-.529.918-.8a26.921,26.921,0,0,0,8.91-18.292H203.7a9.544,9.544,0,0,1,9.415,11.1M227.4,89.972a9.544,9.544,0,0,1-9.414,7.989l-50.5.012a32.024,32.024,0,0,0-4.8-.364h-1.06v-.176a29.6,29.6,0,0,0-6.613-18.56h62.97a9.544,9.544,0,0,1,9.416,11.1",transform:"translate(0)"}),(0,a.jsx)("path",{id:"Trazado_7151","data-name":"Trazado 7151",d:"M127.923,85.575c-7.334,0-13.3,5.32-13.3,11.858l0,11.175h26.61l0-11.175c0-6.538-5.967-11.858-13.3-11.858",transform:"translate(-0.009)"})]})})]})]}))},Xe=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"documentation-icn",d:"M19.922 256.001H8.633a8.842 8.842 0 0 1-8.631-8.962V77.449a8.845 8.845 0 0 1 8.631-8.962h7.291a8.841 8.841 0 0 1 8.645 8.962v152.944h119.164a8.848 8.848 0 0 1 8.65 8.962v7.685a8.845 8.845 0 0 1-8.65 8.962Zm41.08-46a14.994 14.994 0 0 1-15-15v-180a15 15 0 0 1 15-15h180a15 15 0 0 1 15 15v180a15 15 0 0 1-15 15Zm5-20h170v-170h-170Zm28.742-18.884a.906.906 0 0 1-.9-.906v-23.3a.906.906 0 0 1 .9-.906H210a.907.907 0 0 1 .906.906v23.3a.907.907 0 0 1-.906.906Zm0-52a.91.91 0 0 1-.9-.91v-23.3a.909.909 0 0 1 .9-.905H210a.909.909 0 0 1 .906.905v23.3a.91.91 0 0 1-.906.91Zm0-53a.91.91 0 0 1-.9-.91v-23.3a.907.907 0 0 1 .9-.91H210a.908.908 0 0 1 .906.91v23.3a.911.911 0 0 1-.906.91Z",stroke:"rgba(0,0,0,0)",strokeMiterlimit:10}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 876",fill:"none",d:"M0 0h256v256H0z"})]})]}))},et=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 25"},e),{},{children:(0,a.jsxs)("g",{id:"Grupo_2542","data-name":"Grupo 2542",transform:"translate(0 0.249)",children:[(0,a.jsx)("g",{id:"health-icon",transform:"translate(0 7.842)",children:(0,a.jsx)("path",{id:"Uni\xf3n_51","data-name":"Uni\xf3n 51",d:"M1.977,17A1.976,1.976,0,0,1,0,15.015V4.938H2.144v9.918h9.892V17Zm12.591-.443V14.584h1.974v1.973Zm.288-4.538V2.144H4.965V0H15.023A1.98,1.98,0,0,1,17,1.973V12.019Zm-4.8,0V10.045h1.979v1.973Zm-5.094,0V10.045H6.944v1.973Zm5.094-5.106V4.938h1.979V6.912Zm-5.09,0V4.938H6.942V6.912ZM.458,2.448V.475H2.432V2.448Z",transform:"translate(0 -0.091)",fill:"#07193e"})}),(0,a.jsxs)("g",{id:"Grupo_2537","data-name":"Grupo 2537",transform:"translate(12.323 0)",children:[(0,a.jsxs)("g",{id:"Elipse_623","data-name":"Elipse 623",transform:"translate(-0.323 -0.249)",fill:"#4ccb92",stroke:"#fff",strokeWidth:"1",children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"7",stroke:"none"}),(0,a.jsx)("circle",{cx:"7",cy:"7",r:"6.5",fill:"none"})]}),(0,a.jsx)("g",{id:"check",transform:"translate(2.934 4.069)",children:(0,a.jsx)("path",{id:"Trazado_7261","data-name":"Trazado 7261",d:"M14.9,10.862a.622.622,0,1,1,.889.871l-3.311,4.139a.622.622,0,0,1-.9.017L9.384,13.694a.622.622,0,1,1,.879-.879L12,14.551l2.881-3.67.017-.018Z",transform:"translate(-9.182 -10.676)"})})]})]})}))},tt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 14 14"},e),{},{children:[(0,a.jsx)("path",{id:"Trazado_7179","data-name":"Trazado 7179",d:"M141.421,148.182a4.5,4.5,0,0,0-4.3,5.805l-5.188,5.195v3h3l5.187-5.2a4.5,4.5,0,0,0,5.8-3.936,4.39,4.39,0,0,0-.823-3A4.492,4.492,0,0,0,141.421,148.182Zm.5,5a1,1,0,1,1,1-1A1,1,0,0,1,141.92,153.182Z",transform:"translate(-131.934 -148.182)",fill:"#5e5e5e"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1090","data-name":"Rect\xe1ngulo 1090",width:"13.764",height:"13.764",transform:"translate(0.118 0.118)",fill:"none"})]}))},nt=n(54599),rt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-Subscribe_to_event",children:(0,a.jsx)("rect",{width:"256",height:"256"})})}),(0,a.jsxs)("g",{id:"Subscribe_to_event","data-name":"Subscribe to event",clipPath:"url(#clip-Subscribe_to_event)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsx)("g",{id:"subscribe_to_event_icon","data-name":"subscribe to event icon",transform:"translate(-675.16 -286.16)",children:(0,a.jsx)("g",{id:"Grupo_2272","data-name":"Grupo 2272",transform:"translate(676.2 287.84)",children:(0,a.jsxs)("g",{id:"Grupo_2271","data-name":"Grupo 2271",children:[(0,a.jsx)("path",{id:"Trazado_7031","data-name":"Trazado 7031",d:"M218.265,151a12.276,12.276,0,0,0-12.37,12.1v3.147H184.5c-17.317,0-31.3,13.678-31.3,30.383v178.3c0,16.7,14.1,30.383,31.3,30.383h191.73c17.318,0,31.3-13.678,31.3-30.383v-178.3c0-16.7-14.1-30.383-31.3-30.383h-24.74V163.1a12.372,12.372,0,0,0-24.739,0v3.147H230.634V163.1A12.275,12.275,0,0,0,218.265,151Zm157.96,229.99H184.5a6.408,6.408,0,0,1-6.556-6.173v-127.7H382.9v127.7A6.6,6.6,0,0,1,376.225,380.99ZM326.746,190.461v3.39a12.372,12.372,0,0,0,24.739,0v-3.39h24.74a6.408,6.408,0,0,1,6.556,6.174v26.388H177.939V196.635a6.408,6.408,0,0,1,6.556-6.174h21.4v3.39a12.373,12.373,0,0,0,24.74,0v-3.39Z",transform:"translate(-153.2 -151)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7032","data-name":"Trazado 7032",d:"M320.582,251.052l-58.245,57.325-20.692-20.386a15.283,15.283,0,0,0-21.459,21.766L262.337,351.3l79.857-78.478a15.336,15.336,0,1,0-21.612-21.765Z",transform:"translate(-151.567 -145.725)",fill:"#4ccb92"})]})})})]})]}))},at=n(67186),ot=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"ComputerLineIcon",children:[(0,a.jsx)("path",{"data-name":"ComputerLineIcon",d:"M19.678 227.007A19.678 19.678 0 0 1 0 207.328v-25.736h256.887v25.736a19.683 19.683 0 0 1-19.682 19.682Zm-4.844-19.682a4.541 4.541 0 0 0 4.541 4.541h218.289a4.541 4.541 0 0 0 4.541-4.541v-14.152h-75.387a12.4 12.4 0 0 1-11.354 7.567H101.5a12.416 12.416 0 0 1-11.355-7.567H14.836Zm204.662-40.871v-121.1H37.846v121.1H22.709V41.568a11.353 11.353 0 0 1 11.35-11.354h189.225a11.354 11.354 0 0 1 11.355 11.354v124.886Zm-166.516-.91V60.49h136.09l-11.957 12.108H65.093v92.945Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 892",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},it=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"All Buckets",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 45",d:"M78.373 256c-7.594 0-14.115-5.922-15.51-14.087-1.619-9.346-4.373-25.445-7.537-43.926l-.01-.074C49.08 161.58 41.277 116.057 37.57 94.461a18.4 18.4 0 0 1 3.377-14.209 15.24 15.24 0 0 1 12.148-6.235h150.137a15.259 15.259 0 0 1 12.154 6.235 18.358 18.358 0 0 1 3.369 14.209l-7.5 43.7-.035.171-10.184 59.448-.049.265-7.523 43.872c-1.408 8.165-7.914 14.087-15.516 14.087Zm-3.418-16.57a3.582 3.582 0 0 0 3.418 3.1h99.58a3.582 3.582 0 0 0 3.424-3.105l6.178-36.084H68.768c2.591 15.142 4.818 28.093 6.187 36.086Zm-8.5-49.559h123.42l7.928-46.218H58.539c2.609 15.186 5.363 31.301 7.916 46.216ZM50.416 88.858a4.087 4.087 0 0 0-.738 3.12c1.572 9.228 3.922 22.825 6.549 38.2h143.895l6.531-38.2a4.055 4.055 0 0 0-.74-3.115 3.354 3.354 0 0 0-2.68-1.381H53.086a3.359 3.359 0 0 0-2.67 1.374Zm170.543 29.158v-1.083l.014-.088 1.615-9.414h6.221a1.281 1.281 0 0 0 1.188-1.151c.074-.412.148-.847.227-1.3l.029-.162c.043-.25.088-.5.131-.764.02-.127.045-.255.064-.382s.049-.279.074-.421c.063-.377.131-.759.2-1.156l.031-.171c.043-.25.088-.509.131-.769l.045-.245c.029-.191.063-.382.1-.578l.67-3.884c.855-4.981 1.486-8.66 2.055-12h-10.43l-.244-.656a25.505 25.505 0 0 0-3.664-6.74c-.4-.529-.822-1.043-1.252-1.523l-1.49-1.666h18.9l.158-.936c.172-1.009.35-2.038.525-3.061.367-2.15.734-4.3 1.076-6.289.1-.568.2-1.137.293-1.709.117-.676.23-1.362.348-2.042l.5-2.915c.59-3.443 1.2-6.989 1.8-10.5h-86.41l3.648 21.243h-10.016l-4.379-25.588-4.787-27.855a12.711 12.711 0 0 1 2.342-9.826 10.739 10.739 0 0 1 8.545-4.379h95.705a10.723 10.723 0 0 1 8.541 4.379 12.715 12.715 0 0 1 2.342 9.826c-.414 2.419-.9 5.241-1.463 8.5l-.943 5.535c-.143.8-.279 1.622-.426 2.454l-.189 1.117q-.381 2.249-.793 4.619l-.982 5.73c-1.7 9.958-3.67 21.39-5.25 30.579l-.68 3.962-.578 3.375v.039l-.713 4.183c-.1.563-.2 1.131-.3 1.758-.1.593-.211 1.229-.334 1.944l-.4 2.312-1 5.843c-.787 4.585-1.531 8.915-2.072 12.049-.975 5.682-5.547 9.806-10.875 9.806ZM148.313 11.072a1.612 1.612 0 0 0-.289 1.225l4.025 23.516h90.041a16029.61 16029.61 0 0 1 3.365-19.617l.088-.485.582-3.414a1.611 1.611 0 0 0-.289-1.225 1.174 1.174 0 0 0-.9-.475h-95.715a1.154 1.154 0 0 0-.909.473ZM34.038 118.016h-6.852c-5.326 0-9.9-4.125-10.877-9.811-.539-3.13-1.281-7.459-2.07-12.049l-.287-1.7-.711-4.144-.4-2.307c-.127-.72-.234-1.361-.336-1.954l-.3-1.749-.717-4.183v-.039l-1.252-7.293c-1.58-9.2-3.545-20.65-5.252-30.623L4 36.434q-.407-2.381-.8-4.639l-.186-1.1c-.143-.833-.283-1.651-.426-2.449l-.953-5.588C1.078 19.41.598 16.609.182 14.204a12.722 12.722 0 0 1 2.342-9.826 10.729 10.729 0 0 1 8.543-4.379h95.705a10.744 10.744 0 0 1 8.545 4.379 12.719 12.719 0 0 1 2.342 9.826l-4.809 27.968-4.359 25.475H98.479l.2-1.171 3.449-20.072H15.716c.607 3.512 1.213 7.058 1.8 10.5l.5 2.915c.117.681.23 1.366.346 2.047l.293 1.7c.344 1.993.711 4.153 1.082 6.313.17 1.019.348 2.038.52 3.037l.16.936h18.9l-1.49 1.666c-.432.48-.854.994-1.252 1.523a25.567 25.567 0 0 0-3.666 6.74l-.244.656H22.237c.566 3.34 1.2 7.019 2.053 12l.672 3.884c.035.2.068.387.1.583l.045.24c.043.26.088.52.131.769l.006.01.023.162c.07.4.137.779.2 1.151l.074.426c.025.142.045.255.064.382.043.254.088.509.131.754l.029.171c.078.451.152.886.227 1.3a1.284 1.284 0 0 0 1.188 1.151h6.223l1.629 9.5v1.083ZM10.155 11.077a1.609 1.609 0 0 0-.285 1.22l.672 3.9c1.027 5.966 2.318 13.509 3.365 19.617h90.041l4.025-23.516a1.612 1.612 0 0 0-.289-1.225 1.159 1.159 0 0 0-.908-.475H11.061a1.185 1.185 0 0 0-.907.477Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 927",fill:"none",d:"M0 0h256v256H0z"})]})]}))},st=n(46454),lt=n(86856),ct=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("g",{"data-name":"groups-icn",children:(0,a.jsx)("path",{"data-name":"Trazado 464",d:"M80.48 229.312a27.075 27.075 0 0 1-24.56-14.615 29.94 29.94 0 0 1 2.269-30.668v-.007c.519-.729.982-1.367 1.418-1.952l.008-.006a84.019 84.019 0 0 1 28.115-23.5 87.373 87.373 0 0 1 35.739-9.917 83.994 83.994 0 0 1 4.172-.107 85.882 85.882 0 0 1 18.631 2.076 89.934 89.934 0 0 1 18.062 6.117 86.479 86.479 0 0 1 32.679 25.974 30.568 30.568 0 0 1 3.2 31.789 26.323 26.323 0 0 1-9.982 10.9 28.124 28.124 0 0 1-14.539 3.924Zm43.97-61.409a67.92 67.92 0 0 0-27.724 7.673 64.647 64.647 0 0 0-21.71 18.1c-.32.426-.626.852-.945 1.3l-.116.162a10.394 10.394 0 0 0-.91 10.676 7.736 7.736 0 0 0 2.277 2.691 8.546 8.546 0 0 0 5.158 1.516h95.217c3.461 0 5.9-1.382 7.255-4.114v-.007a10.376 10.376 0 0 0 .951-5.807 11.664 11.664 0 0 0-2.273-5.746 66.98 66.98 0 0 0-23.879-19.38 68.976 68.976 0 0 0-30.14-7.144 70.658 70.658 0 0 0-3.161.076Zm87.819 40.475.254-2.2a40.828 40.828 0 0 0-.3-11.552l-.392-2.3h21.988c2.574 0 4.378-1.014 5.361-3.014v-.014a7.766 7.766 0 0 0 .718-4.344 8.714 8.714 0 0 0-1.715-4.319 52.307 52.307 0 0 0-18.683-15.17 53.964 53.964 0 0 0-23.583-5.594c-.883 0-1.722.021-2.488.062h-.01c-1.158.055-2.323.21-3.557.372-.15.021-.306.041-.457.058l-.817.106-.649-.505a98.534 98.534 0 0 0-13.759-8.872l-3.959-2.151 4.269-1.443a67.359 67.359 0 0 1 18.122-3.6c1.1-.055 2.213-.083 3.315-.083a67.958 67.958 0 0 1 14.8 1.649 71.23 71.23 0 0 1 14.336 4.849 68.418 68.418 0 0 1 25.905 20.624 24.5 24.5 0 0 1 2.584 25.507 21.121 21.121 0 0 1-8.038 8.776 22.614 22.614 0 0 1-11.7 3.154Zm-189.943 0a22.751 22.751 0 0 1-11.626-3.113 21.723 21.723 0 0 1-8.137-8.636v-.006a24.022 24.022 0 0 1 1.831-24.617 42.21 42.21 0 0 1 1.138-1.567 66.738 66.738 0 0 1 22.314-18.666 69.372 69.372 0 0 1 28.369-7.873 68.088 68.088 0 0 1 3.265-.079 68.894 68.894 0 0 1 21.835 3.618l4.27 1.423-3.944 2.168a99.584 99.584 0 0 0-13.552 8.982l-.657.519-.827-.113a50.98 50.98 0 0 0-7.089-.55c-.908 0-1.719.021-2.488.062h-.007a53.11 53.11 0 0 0-21.686 6 50.7 50.7 0 0 0-16.979 14.13c-.214.309-.44.615-.657.91l-.2.275a7.817 7.817 0 0 0-.675 7.986l.008.01a5.536 5.536 0 0 0 1.663 1.966 6.355 6.355 0 0 0 3.832 1.12h21.83l-.389 2.295a40.514 40.514 0 0 0-.269 11.55l.262 2.2ZM70.893 84.196a57.261 57.261 0 0 1 57.2-57.2 57.257 57.257 0 0 1 57.188 57.2 57.26 57.26 0 0 1-57.188 57.2 57.264 57.264 0 0 1-57.2-57.197Zm19.29 0a37.952 37.952 0 0 0 37.909 37.909 37.952 37.952 0 0 0 37.911-37.909 37.952 37.952 0 0 0-37.911-37.908 37.952 37.952 0 0 0-37.909 37.911Zm95.572 53.568a45.7 45.7 0 0 1-9.626-3.508l-2.433-1.213 1.908-1.935a66.163 66.163 0 0 0 7.772-9.446l.876-1.3 1.464.563a29.378 29.378 0 0 0 10.546 2.041 29.531 29.531 0 0 0 29.507-29.49 29.532 29.532 0 0 0-29.507-29.493 12.65 12.65 0 0 0-1.656.154c-.381.052-.773.107-1.189.145l-1.553.141-.5-1.478a66.318 66.318 0 0 0-4.962-11.288l-1.325-2.381 2.676-.512a45.609 45.609 0 0 1 8.5-.828 45.6 45.6 0 0 1 45.548 45.54 45.594 45.594 0 0 1-45.548 45.537 44.9 44.9 0 0 1-10.496-1.249Zm-171.42-44.29a45.586 45.586 0 0 1 45.526-45.54 45.391 45.391 0 0 1 8.56.835l2.69.512-1.339 2.385a66.792 66.792 0 0 0-4.993 11.292l-.5 1.48-1.557-.154c-.395-.038-.77-.089-1.134-.141a12.977 12.977 0 0 0-1.726-.162 29.517 29.517 0 0 0-29.479 29.493 29.517 29.517 0 0 0 29.479 29.49 29.18 29.18 0 0 0 10.57-2.048l1.453-.561.884 1.285a68.636 68.636 0 0 0 7.794 9.46l1.913 1.941-2.439 1.206a46.366 46.366 0 0 1-9.652 3.512 44.893 44.893 0 0 1-10.522 1.25 45.583 45.583 0 0 1-45.527-45.535Z"})}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 886",fill:"none",d:"M0 0h256v256H0z"})]})]}))},ut=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"DownloadStatIcon",children:[(0,a.jsx)("path",{"data-name":"Uni\\xF3n 24",d:"M0 127.996a128 128 0 0 1 128.008-128 128 128 0 0 1 128 128 128 128 0 0 1-128 128.009A128 128 0 0 1 0 127.996Zm20.484 0A107.643 107.643 0 0 0 128 235.52a107.633 107.633 0 0 0 107.512-107.523A107.631 107.631 0 0 0 128 20.487 107.641 107.641 0 0 0 20.48 127.996Zm98.063 71.518-32.336-32.338a13.192 13.192 0 0 1-3.172-14.743 14.934 14.934 0 0 1 13.3-9.235 13.542 13.542 0 0 1 9.637 4.224l8.563 8.554v-89.16c0-9.069 7.016-13.818 13.953-13.818 6.961 0 13.977 4.749 13.977 13.818v89.16l8.555-8.544a13.481 13.481 0 0 1 9.625-4.233 14.887 14.887 0 0 1 13.3 9.235 13.182 13.182 0 0 1-3.164 14.743l-32.348 32.348a14 14 0 0 1-9.906 4.155 14.085 14.085 0 0 1-9.988-4.166Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 893",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},dt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"-1 -37.9 256 256",children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"a",children:(0,a.jsx)("path",{d:"M53.548,94.912v44.816c.43-.22.737-.378,1.517-.759a20.07,20.07,0,0,1,27.673,15.21c.1.677.115.688.163,1.1.063.567.084.968.108,1.463.01.21.068,1.914.072,2,.2,2.214.363,4.336.452,6.449.269,6.381.536,11,.957,15.5.6,6.412.964,12.128,1.066,17.7a19.838,19.838,0,0,1-.976,6.231c.683,6.455,1.592,14.938,1.752,16.438.014.128.023.253.036.38,3.927-.511,5.969-.716,8.382-.813,8.553-.344,16.809-.382,29.335-.235,1.42.017,2.559.021,5.094.054,10.044.13,14.46.163,19.906.127.93-.007,1.643,0,3.234,0,7.429.005,10.477-.237,12.174-.958-.178-1.123-.351-2.228-.614-3.558-.313-1.589-.586-2.862-1.264-5.979-2.292-10.53-3.161-15.585-3.414-22.508a68.539,68.539,0,0,1,2.764-23.067A29.713,29.713,0,0,1,164.278,159c.461-.922.889-1.737,1.372-2.547a22.021,22.021,0,0,1,1.987-2.836,19.87,19.87,0,0,1,3.776-3.5A19.984,19.984,0,0,1,192.33,125.6a20.223,20.223,0,0,1,9.195,3V94.912Z",fill:"none"})}),(0,a.jsx)("clipPath",{id:"b",children:(0,a.jsx)("path",{d:"M204.03,236.91c-.393.722-.717,1.447-1.156,2.168-.795,1.3-1.66,2.592-2.547,3.811h3.7Z",fill:"none"})})]}),(0,a.jsxs)("g",{transform:"translate(-0.036 -24.789)",children:[(0,a.jsx)("path",{d:"M239.185,72.637A29.456,29.456,0,0,0,209.767,43.6H128.581l-1.119-1.512c-5.078-6.886-12.756-17.3-26.1-17.3H49.394A29.455,29.455,0,0,0,19.972,54.21a19.778,19.778,0,0,0,.236,3.081V70.763A29.818,29.818,0,0,0,.036,98.947c0,.6.023,1.205.076,1.806L9.8,207.577A29.8,29.8,0,0,0,39.545,236.2h175.73A29.8,29.8,0,0,0,245.021,207.6L254.947,100.8q.088-.928.09-1.852A29.792,29.792,0,0,0,239.185,72.637ZM49.394,44.808h51.963c6.586,0,13.645,18.813,20.7,18.813h87.709a9.429,9.429,0,0,1,9.4,9.4v4.7H40.213V54.206h-.229A9.431,9.431,0,0,1,49.394,44.808ZM225.031,206.43a9.781,9.781,0,0,1-9.754,9.748H39.547a9.779,9.779,0,0,1-9.75-9.748L20.051,98.947A9.782,9.782,0,0,1,29.8,89.192H225.268a9.788,9.788,0,0,1,9.758,9.755Z"}),(0,a.jsx)("g",{transform:"translate(-351.512 467)",children:(0,a.jsx)("g",{transform:"translate(352 -469)",clipPath:"url(#a)",children:(0,a.jsx)("path",{d:"M118.046,203.4c0,12.123,18.976,12.123,18.976,0V126.379l10.748,10.443c8.823,8.569,22.236-4.465,13.415-13.034L134.3,97.665a9.685,9.685,0,0,0-13.526,0L93.89,123.788c-8.82,8.568,4.592,21.6,13.415,13.034l10.745-10.443V203.4Z"})})}),(0,a.jsx)("g",{clipPath:"url(#b)",children:(0,a.jsx)("path",{d:"M56.052,158.235c0-12.121,18.978-12.121,18.978,0v66.218H185.056V158.235c0-12.121,18.973-12.121,18.973,0v75.436a9.357,9.357,0,0,1-9.486,9.217h-129a9.357,9.357,0,0,1-9.486-9.217V158.235Zm64.5,45.162c0,12.123,18.976,12.123,18.976,0V126.379l10.748,10.443c8.823,8.569,22.236-4.465,13.415-13.034L136.8,97.665a9.685,9.685,0,0,0-13.526,0L96.394,123.788c-8.82,8.568,4.593,21.6,13.415,13.034l10.745-10.443V203.4Z"})})]})]}))},ft=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"TiersIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 848",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 441",d:"M128.249 0a11.373 11.373 0 0 0-5.583 1.308L5.334 63.851a9.483 9.483 0 0 0 0 17.039l36.187 19.289-36.187 19.288a9.485 9.485 0 0 0 0 17.058l36.187 19.27-36.187 19.288a9.485 9.485 0 0 0 0 17.058l117.331 62.54a11.442 11.442 0 0 0 10.666 0l117.331-62.54a9.485 9.485 0 0 0 0-17.058l-36.187-19.289 36.187-19.27a9.485 9.485 0 0 0 0-17.058l-36.187-19.289 36.187-19.289a9.483 9.483 0 0 0 0-17.039L133.332 1.311A11.349 11.349 0 0 0 128.249 0ZM62.875 111.563l59.791 31.866a11.442 11.442 0 0 0 10.666 0l59.791-31.866 30.876 16.443-96 51.154-96-51.154Zm-.021 55.617 59.812 31.866a11.442 11.442 0 0 0 10.667 0l59.812-31.866 30.854 16.442-96 51.155-96-51.155Z"})]})]})]}))},pt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",id:"Account_Icon","data-name":"Account Icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16.409 13.096",children:[(0,a.jsx)("path",{id:"Trazado_391","data-name":"Trazado 391",d:"M-4332.855-1143.481a3.023,3.023,0,0,0,2.958-3.078,3.023,3.023,0,0,0-2.958-3.078,3.023,3.023,0,0,0-2.958,3.078A3.023,3.023,0,0,0-4332.855-1143.481Zm0-5.194a2.078,2.078,0,0,1,2.03,2.116,2.077,2.077,0,0,1-2.03,2.116,2.075,2.075,0,0,1-2.028-2.116A2.076,2.076,0,0,1-4332.855-1148.675Z",transform:"translate(4339.12 1149.637)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_392","data-name":"Trazado 392",d:"M-4337.952-1130.053a1.374,1.374,0,0,0,1.252.775h4.993a1.354,1.354,0,0,0,1.25-.786,1.675,1.675,0,0,0-.164-1.686,4.521,4.521,0,0,0-1.7-1.405,4.361,4.361,0,0,0-2.125-.438,4.483,4.483,0,0,0-3.318,1.808c-.026.035-.051.071-.075.106A1.641,1.641,0,0,0-4337.952-1130.053Zm6.663-.437a.426.426,0,0,1-.417.25h-4.993a.453.453,0,0,1-.427-.254.64.64,0,0,1,.053-.632h0c.017-.027.037-.054.057-.08a3.539,3.539,0,0,1,2.622-1.424c.056,0,.113,0,.168,0a3.606,3.606,0,0,1,2.864,1.466A.686.686,0,0,1-4331.29-1130.49Z",transform:"translate(4340.467 1140.236)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_393","data-name":"Trazado 393",d:"M-4329.387-1146.951h-3.506a.476.476,0,0,0-.477.476.477.477,0,0,0,.477.476h3.506a1.047,1.047,0,0,1,1.046,1.045v7.99a1.047,1.047,0,0,1-1.046,1.045H-4341.8a1.047,1.047,0,0,1-1.046-1.045v-7.99A1.048,1.048,0,0,1-4341.8-1146a.476.476,0,0,0,.476-.476.476.476,0,0,0-.476-.476,2,2,0,0,0-2,2v7.99a2,2,0,0,0,2,2h12.412a2,2,0,0,0,2-2v-7.99A2,2,0,0,0-4329.387-1146.951Z",transform:"translate(4343.797 1148.063)",fill:"#07193e"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_809","data-name":"Rect\xe1ngulo 809",width:"3.266",height:"2.781",rx:"1.024",transform:"translate(11.002 3.376)",fill:"#07193e"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_810","data-name":"Rect\xe1ngulo 810",width:"3.266",height:"1.336",rx:"0.668",transform:"translate(11.002 7.328)",fill:"#07193e"}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_811","data-name":"Rect\xe1ngulo 811",width:"3.266",height:"1.336",rx:"0.668",transform:"translate(11.002 9.621)",fill:"#07193e"})]}))},ht=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1039","data-name":"Rect\xe1ngulo 1039",width:"256",height:"215.188",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Create_Group",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Create_Group","data-name":"Create Group",clipPath:"url(#clip-Create_Group)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Create_Group_Icon","data-name":"Create Group Icon",children:[(0,a.jsx)("g",{id:"Grupo_2428","data-name":"Grupo 2428",transform:"translate(0 20)",children:(0,a.jsxs)("g",{id:"Grupo_2427","data-name":"Grupo 2427",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7184","data-name":"Trazado 7184",d:"M498.413,74.672a63.2,63.2,0,0,1-3.786,21.575c.9.049,1.8.078,2.709.078,26.871,0,48.733-21.605,48.733-48.162S524.2,0,497.337,0a48.855,48.855,0,0,0-36.642,16.469,64.109,64.109,0,0,1,37.719,58.2",transform:"translate(-305.609 0)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7185","data-name":"Trazado 7185",d:"M95.34,96.326c.921,0,1.836-.031,2.744-.081A63.2,63.2,0,0,1,94.3,74.674a64.109,64.109,0,0,1,37.693-58.2A48.867,48.867,0,0,0,95.34,0C68.473,0,46.614,21.605,46.614,48.163S68.473,96.326,95.34,96.326",transform:"translate(-30.922 0)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7186","data-name":"Trazado 7186",d:"M80.135,346.621a97.66,97.66,0,0,1,21.039-9.138,64.833,64.833,0,0,1-30.526-28.792c-2.2-.2-4.4-.306-6.612-.308-1.071,0-2.152.027-3.221.075-.121,0-.243.005-.365.011a70.315,70.315,0,0,0-7.835.841c-18.427,3-35.857,13.09-46.8,27.434-.419.55-.838,1.119-1.223,1.65l-.005.008a24.616,24.616,0,0,0-1.906,25.48,22.559,22.559,0,0,0,3.644,5.089,22.224,22.224,0,0,0,4.817,3.812,23.01,23.01,0,0,0,5.736,2.385,24.94,24.94,0,0,0,6.409.823H49.714a37.659,37.659,0,0,1,2.685-4.371l.027-.038.046-.063c.569-.785,1.067-1.457,1.525-2.058a90.337,90.337,0,0,1,26.138-22.841",transform:"translate(0 -204.572)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7187","data-name":"Trazado 7187",d:"M215.477,113.623c0,30.276,24.92,54.907,55.549,54.907s55.557-24.63,55.557-54.907-24.929-54.907-55.557-54.907-55.549,24.63-55.549,54.907",transform:"translate(-142.94 -38.95)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7188","data-name":"Trazado 7188",d:"M358.424,337.287l0,0a73.77,73.77,0,0,0-27.955-21.978A77.668,77.668,0,0,0,315,310.141a74.21,74.21,0,0,0-15.959-1.757c-1.071,0-2.152.028-3.22.075-.122.005-.244.006-.365.011-.73.036-1.46.088-2.189.147a64.831,64.831,0,0,1-14.437,18.4,47.462,47.462,0,0,0-24.218,17.921c-.357-.083-.713-.172-1.071-.252a84.586,84.586,0,0,0-18.192-2c-1.221,0-2.454.031-3.671.085-.138.005-.277.006-.416.012a80.086,80.086,0,0,0-8.933.959c-21.008,3.419-40.879,14.924-53.349,31.275-.478.628-.955,1.276-1.394,1.882l-.006.008a28.062,28.062,0,0,0-2.177,29.05,25.77,25.77,0,0,0,4.155,5.8,25.368,25.368,0,0,0,5.491,4.346,26.29,26.29,0,0,0,6.541,2.718,28.435,28.435,0,0,0,7.306.938h93.79a28.421,28.421,0,0,0,5.814-.589,47.926,47.926,0,0,0,4.917.253A47.353,47.353,0,0,0,340.6,375.992a24.947,24.947,0,0,0,6.424-.835,22.741,22.741,0,0,0,5.751-2.418,21.778,21.778,0,0,0,4.793-3.867,22.122,22.122,0,0,0,3.581-5.16,25.152,25.152,0,0,0-2.726-26.426m-64.729,72.2a37.411,37.411,0,1,1,37.411-37.411A37.411,37.411,0,0,1,293.7,409.484",transform:"translate(-107.694 -204.572)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7189","data-name":"Trazado 7189",d:"M523.713,445.287H511.978v11.735H500.243v11.735h11.735v11.735h11.735V468.757h11.735V457.022H523.713Z",transform:"translate(-331.844 -295.388)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1040","data-name":"Rect\xe1ngulo 1040",width:"256",height:"256",fill:"none"})]})]})]}))},mt=n(49563),vt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"CollapseIcon",children:[(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 841",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 842",d:"M0 46h256v28H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 843",d:"M0 116h256v28H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 844",d:"M0 186h256v28H0z"})]})]})]}))},gt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1030","data-name":"Rect\xe1ngulo 1030",width:"256.722",height:"256.722",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Generic_Delete",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Generic_Delete","data-name":"Generic Delete",clipPath:"url(#clip-Generic_Delete)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsx)("g",{id:"Generic_Delete_Icon","data-name":"Generic Delete Icon",children:(0,a.jsxs)("g",{id:"Grupo_2418","data-name":"Grupo 2418",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7169","data-name":"Trazado 7169",d:"M128.362,0a128.361,128.361,0,1,0,128.36,128.361A128.361,128.361,0,0,0,128.362,0m.764,229.776A101.415,101.415,0,1,1,230.541,128.361,101.415,101.415,0,0,1,129.126,229.776",fill:"#c83b51"}),(0,a.jsx)("path",{id:"Trazado_7170","data-name":"Trazado 7170",d:"M239.678,162.575l-18.744-19.187a4.572,4.572,0,0,0-6.36,0l-22.136,22.661-22.133-22.661a4.44,4.44,0,0,0-6.356,0L145.2,162.575a4.45,4.45,0,0,0,0,6.211L167.491,191.6,145.2,214.411a4.45,4.45,0,0,0,0,6.211l18.746,19.189a4.571,4.571,0,0,0,6.358,0l22.133-22.661,22.136,22.661a4.442,4.442,0,0,0,6.358,0l18.744-19.189a4.445,4.445,0,0,0,0-6.211L217.392,191.6l22.286-22.814a4.445,4.445,0,0,0,0-6.211",transform:"translate(-64.082 -63.239)",fill:"#c83b51"})]})})]})]}))},yt=n(55335),xt=n(88449),bt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 13 12.996",children:(0,a.jsxs)("g",{transform:"translate(-63.686 -70.783)",children:[(0,a.jsx)("path",{className:"a",d:"M74.736,79.879v1.95h-9.1v-1.95h-1.95v3.9h13v-3.9Z"}),(0,a.jsx)("path",{className:"a",d:"M69.211,80.533h1.95V73.861h1.525l-2.5-3.078-2.5,3.078h1.525Z"})]})}))},wt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 858",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 20",d:"M102.405 230.399v-76.79h-76.8a25.607 25.607 0 0 1 0-51.214h76.8V25.601a25.6 25.6 0 1 1 51.2 0v76.792h76.8a25.607 25.607 0 0 1 0 51.214h-76.8v76.792a25.6 25.6 0 1 1-51.2 0Z"})]})]}))},_t=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1005","data-name":"Rect\xe1ngulo 1005",width:"228.951",height:"256",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-Expand_Tenant:_Add_Pools",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Expand_Tenant:_Add_Pools","data-name":"Expand Tenant: Add Pools",clipPath:"url(#clip-Expand_Tenant:_Add_Pools)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Expand_Tenants_Add_Pools","data-name":"Expand Tenants Add Pools",children:[(0,a.jsx)("g",{id:"Grupo_2392","data-name":"Grupo 2392",transform:"translate(14)",children:(0,a.jsxs)("g",{id:"Grupo_2391","data-name":"Grupo 2391",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7129","data-name":"Trazado 7129",d:"M210.46,96.042a56.244,56.244,0,1,0-90.223-64.6A71.157,71.157,0,0,0,0,83.178v0A71.315,71.315,0,0,0,62.4,154l-1.316,24.278c-.121-.006-.238-.018-.354-.018a17.611,17.611,0,0,0,0,35.223h0a17.613,17.613,0,0,0,10.082-32.025l1.464-26.922a70.737,70.737,0,0,0,30.53-7.391l37.678,49.042a35.174,35.174,0,1,0,60.272,24.6h0a35.181,35.181,0,0,0-35.132-35.228h0a34.864,34.864,0,0,0-17.3,4.589L111.4,142.085a71.574,71.574,0,0,0,24.769-29.736l43.156,6.286c-.028.495-.075.985-.075,1.484A24.849,24.849,0,1,0,210.46,96.042m-39.406,4.639A44.437,44.437,0,1,1,215.49,56.244a44.437,44.437,0,0,1-44.437,44.437",transform:"translate(0)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7130","data-name":"Trazado 7130",d:"M224.419,96.438l-6.231-6.231V108.9H236.88l-6.23-6.231L243.11,90.207l-6.231-6.23Z",transform:"translate(-72.057 -27.733)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7131","data-name":"Trazado 7131",d:"M267.86,53,255.4,65.457l6.23,6.231L274.09,59.227l6.231,6.23V46.766H261.629Z",transform:"translate(-84.346 -15.444)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1006","data-name":"Rect\xe1ngulo 1006",width:"256",height:"256",fill:"none"})]})]})]}))},Zt=n(85090),St=n(49268),jt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 22 17.043"},e),{},{children:(0,a.jsx)("g",{id:"azure-logo-gray",transform:"translate(-437.603 -471.382)",children:(0,a.jsx)("g",{id:"layer1-1",transform:"translate(437.603 471.382)",children:(0,a.jsx)("path",{id:"path21",d:"M447.781,487.513l5.188-.917.049-.011-2.668-3.173c-1.467-1.746-2.668-3.181-2.668-3.188s2.756-7.6,2.771-7.63c.006-.009,1.881,3.229,4.545,7.847l4.572,7.923.035.062-8.479,0-8.48,0S447.781,487.513,447.781,487.513Zm-10.178-.969s1.257-2.187,2.794-4.85l2.794-4.842,3.257-2.733c1.792-1.5,3.261-2.735,3.266-2.737a.672.672,0,0,1-.052.132c-.035.074-1.627,3.487-3.535,7.583l-3.472,7.448-2.525,0C438.739,486.551,437.6,486.55,437.6,486.544Z",transform:"translate(-437.603 -471.382)"})})})}))},Et=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{"data-name":"Total Objects",clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"total-objects-icn",d:"M-.004 128.002a128.148 128.148 0 0 1 128-128 128.148 128.148 0 0 1 128 128 128.144 128.144 0 0 1-128 128 128.144 128.144 0 0 1-128-128Zm19.844 0a108.275 108.275 0 0 0 108.156 108.155 108.28 108.28 0 0 0 108.16-108.155 108.283 108.283 0 0 0-108.16-108.157A108.278 108.278 0 0 0 19.842 128.002Zm27.555 31.581a37.6 37.6 0 0 1 37.564-37.565 37.608 37.608 0 0 1 37.561 37.565 37.609 37.609 0 0 1-37.561 37.565 37.606 37.606 0 0 1-37.563-37.566Zm108.127 34.939a17.425 17.425 0 0 1-17.408-17.4v-37.7a17.429 17.429 0 0 1 17.408-17.407h37.689a17.429 17.429 0 0 1 17.408 17.407v37.7a17.425 17.425 0 0 1-17.408 17.4Zm-54.881-81.311a13.3 13.3 0 0 1-11.477-6.625 13.3 13.3 0 0 1 0-13.249l26.861-46.521a13.287 13.287 0 0 1 11.477-6.629 13.281 13.281 0 0 1 11.475 6.629l26.861 46.521a13.285 13.285 0 0 1 0 13.249 13.294 13.294 0 0 1-11.479 6.625Z",stroke:"rgba(0,0,0,0)",strokeMiterlimit:10}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 853",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Tt=n(13065),Ct=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1016","data-name":"Rect\xe1ngulo 1016",width:"234.495",height:"256",fill:"#4ccb92"})}),(0,a.jsx)("clipPath",{id:"clip-Create_User",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Create_User","data-name":"Create User",clipPath:"url(#clip-Create_User)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Create_User-2","data-name":"Create User",children:[(0,a.jsx)("g",{id:"Grupo_2404","data-name":"Grupo 2404",transform:"translate(12)",children:(0,a.jsxs)("g",{id:"Grupo_2403","data-name":"Grupo 2403",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7140","data-name":"Trazado 7140",d:"M88.829,144.6h.048a66.829,66.829,0,0,0,27.035-5.707,69.009,69.009,0,0,0,22.1-15.529,72.055,72.055,0,0,0,14.891-22.977,73.863,73.863,0,0,0,5.463-28.1C158.372,32.435,127.183,0,88.831,0h0C50.5,0,19.316,32.43,19.316,72.292S50.5,144.6,88.829,144.6",transform:"translate(1.421)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7141","data-name":"Trazado 7141",d:"M170.085,117.467a64.39,64.39,0,0,0-57.412,35.223c-1.427-.4-2.86-.784-4.3-1.124A94.705,94.705,0,0,0,86.9,149.044v.005c-1.755,0-3.439.046-5,.135A99.747,99.747,0,0,0,8.1,189.42c-.388.519-.767,1.061-1.234,1.756l-.107.15c-.1.142-.214.3-.312.458l-.027.028a37.88,37.88,0,0,0-2.671,37.522A31.97,31.97,0,0,0,32.509,247.36H142.044a31.485,31.485,0,0,0,13.08-2.84,64.408,64.408,0,1,0,14.961-127.054m.383,115.3a50.889,50.889,0,1,1,50.888-50.888,50.888,50.888,0,0,1-50.888,50.888m-7.982-26.944V189.859H146.524V173.895h15.963V157.931H178.45v15.964h15.963v15.964H178.45v15.963Z",transform:"translate(0 8.64)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1017","data-name":"Rect\xe1ngulo 1017",width:"256",height:"256",fill:"none"})]})]})]}))},At=n(37746),Mt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"UploadStatIcon",children:[(0,a.jsx)("path",{"data-name":"Uni\\xF3n 27",d:"M256 127.997a128.006 128.006 0 0 1-128 128.006A128.008 128.008 0 0 1 0 127.997a128.007 128.007 0 0 1 128.008-128 128 128 0 0 1 127.992 128Zm-20.477 0a107.649 107.649 0 0 0-107.52-107.52 107.641 107.641 0 0 0-107.52 107.52A107.635 107.635 0 0 0 128 235.513a107.642 107.642 0 0 0 107.523-107.516Zm-97.082-77.788 32.332 32.331a13.2 13.2 0 0 1 3.184 14.751 14.916 14.916 0 0 1-13.316 9.225 13.45 13.45 0 0 1-9.617-4.216l-8.559-8.565v89.178c0 9.072-7.035 13.8-13.977 13.8s-13.965-4.731-13.965-13.8V93.738l-8.547 8.565a13.5 13.5 0 0 1-9.637 4.216 14.917 14.917 0 0 1-13.3-9.225 13.216 13.216 0 0 1 3.18-14.751l32.344-32.331a13.916 13.916 0 0 1 9.9-4.168 14.021 14.021 0 0 1 9.978 4.169Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 894",fill:"none",d:"M0 0h256v256H0z"})]})]})]}))},Pt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1021","data-name":"Rect\xe1ngulo 1021",width:"256",height:"191.369",fill:"#4ccb92"})}),(0,a.jsx)("clipPath",{id:"clip-Set_Bucket_Replication",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Set_Bucket_Replication","data-name":"Set Bucket Replication",clipPath:"url(#clip-Set_Bucket_Replication)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Set_Bucket_Replication_icon","data-name":"Set Bucket Replication icon",children:[(0,a.jsx)("g",{id:"Grupo_2409","data-name":"Grupo 2409",transform:"translate(0 32)",children:(0,a.jsxs)("g",{id:"Grupo_2408","data-name":"Grupo 2408",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7146","data-name":"Trazado 7146",d:"M21.3,87.4l-1.578-9.192H46.838c-.123-.722-.249-1.449-.371-2.162-1.931-11.245-3.66-21.315-4.976-28.97l-27.171.006-1.577-9.19H40.71a20.546,20.546,0,0,1,3.951-10.1,17.7,17.7,0,0,1,14.016-7.169h62.949l1.169-6.805a12.394,12.394,0,0,0-2.281-9.6A10.335,10.335,0,0,0,112.289,0H10.7A10.33,10.33,0,0,0,2.474,4.215a12.426,12.426,0,0,0-2.284,9.6C2.7,28.413,7.977,59.178,12.2,83.733l.007.048c2.141,12.491,4,23.369,5.1,29.683.943,5.519,5.354,9.523,10.5,9.523H54.529C52.5,111.17,50.4,98.923,48.415,87.392Z",transform:"translate(0)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7147","data-name":"Trazado 7147",d:"M264.2,97.863l2.41-14.045.037-.18,6.887-40.172.024-.117,5.074-29.533a12.4,12.4,0,0,0-2.281-9.6A10.336,10.336,0,0,0,268.128,0H166.535a10.331,10.331,0,0,0-8.223,4.215,12.425,12.425,0,0,0-2.283,9.6c.341,1.985.735,4.278,1.169,6.805H220.27A17.746,17.746,0,0,1,234.334,27.8a20.491,20.491,0,0,1,3.944,10.091h27.69l-1.514,9.169-26.959.006-5.351,31.141H259.1l-1.514,9.17-7.244,0A54.53,54.53,0,0,0,228,81.1l6.547-38.106a16.846,16.846,0,0,0-3.1-13.05,14.048,14.048,0,0,0-11.179-5.728H82.193a14.042,14.042,0,0,0-11.176,5.728,16.889,16.889,0,0,0-3.1,13.05C71.324,62.83,78.5,104.644,84.236,138.017l.01.065c2.91,16.977,5.443,31.762,6.932,40.344,1.282,7.5,7.277,12.942,14.267,12.942h91.579a13.777,13.777,0,0,0,9.436-3.82A54.824,54.824,0,0,0,264.2,97.863M87.119,88.2l-2.144-12.49H217.335l-.974,5.9a54.43,54.43,0,0,0-18.853,6.571ZM96.611,143l-2.144-12.492h75.608c-.168,1.748-.261,3.518-.261,5.31a55.27,55.27,0,0,0,.481,7.163Zm128.363,36.14A43.322,43.322,0,1,1,268.3,135.817a43.322,43.322,0,0,1-43.322,43.322",transform:"translate(-23.479)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7148","data-name":"Trazado 7148",d:"M313.356,176.316c-.055.053-.11.107-.163.162h-.014l-25.036,24.646-8.883-8.767a6.569,6.569,0,1,0-9.224,9.354l18.121,17.855,34.329-33.735a6.594,6.594,0,1,0-9.13-9.516",transform:"translate(-93.036 -60.553)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1022","data-name":"Rect\xe1ngulo 1022",width:"256",height:"256",fill:"none"})]})]})]}))},kt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",children:(0,a.jsxs)("g",{id:"Layer 1",children:[(0,a.jsx)("path",{d:"M217.452+193.452L217.452+224.458L38.4601+224.458L38.4601+193.452L0.104767+193.452L0.104767+255.464L255.807+255.464L255.807+193.452L217.452+193.452Z",opacity:"1"}),(0,a.jsx)("path",{d:"M70.1156+194.746L98.6658+194.746L98.6658+97.0605L120.994+97.0605L84.3907+51.995L47.7878+97.0605L70.1156+97.0605L70.1156+194.746Z",opacity:"1"}),(0,a.jsx)("path",{d:"M183.757+52.6023L155.207+52.6922L155.515+150.377L133.187+150.448L169.932+195.398L206.392+150.217L184.065+150.288L183.757+52.6023Z",opacity:"1"})]})}))},Ot=n(71863),Rt=n(88878),Nt=n(72995),zt=n(95792),It=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 870",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 454",d:"M16.412 256A16.487 16.487 0 0 1-.002 239.463V104.082c0-21.752 32.824-21.752 32.824 0v118.829h190.355V104.082c0-21.752 32.822-21.752 32.822 0v135.381a16.477 16.477 0 0 1-16.4 16.537Zm95.176-61.308V56.465L93 75.208c-15.262 15.385-38.471-8-23.205-23.393l46.5-46.878a16.345 16.345 0 0 1 23.408 0l46.51 46.878c15.266 15.39-7.949 38.777-23.211 23.393L144.41 56.464v138.227c0 10.872-8.205 16.307-16.41 16.307s-16.412-5.435-16.412-16.307Z"}),(0,a.jsx)("path",{"data-name":"Trazado 454 - Contorno",d:"M239.6 256.5H16.416A17 17 0 0 1-.498 239.463V104.082a16.259 16.259 0 0 1 5.3-12.61 16.393 16.393 0 0 1 5.422-3.156 18.547 18.547 0 0 1 6.193-1.048 18.547 18.547 0 0 1 6.193 1.048 16.393 16.393 0 0 1 5.422 3.156 16.259 16.259 0 0 1 5.3 12.61v118.329h189.355V104.082a16.259 16.259 0 0 1 5.3-12.61 16.374 16.374 0 0 1 5.422-3.156 18.528 18.528 0 0 1 6.191-1.048 18.531 18.531 0 0 1 6.193 1.048 16.374 16.374 0 0 1 5.422 3.156 16.259 16.259 0 0 1 5.3 12.61v135.381a17.034 17.034 0 0 1-1.328 6.625 16.992 16.992 0 0 1-3.621 5.416 16.846 16.846 0 0 1-5.373 3.655 16.663 16.663 0 0 1-6.593 1.341ZM16.414 88.268a17.535 17.535 0 0 0-5.859.991 15.388 15.388 0 0 0-5.094 2.962 15.286 15.286 0 0 0-4.959 11.861v135.381A15.994 15.994 0 0 0 16.416 255.5H239.6a15.989 15.989 0 0 0 15.9-16.037V104.082a15.286 15.286 0 0 0-4.959-11.861 15.368 15.368 0 0 0-5.094-2.962 17.518 17.518 0 0 0-5.859-.991 17.515 17.515 0 0 0-5.857.991 15.368 15.368 0 0 0-5.094 2.962 15.286 15.286 0 0 0-4.959 11.861v119.329H32.323V104.082a15.286 15.286 0 0 0-4.959-11.861 15.388 15.388 0 0 0-5.094-2.962 17.526 17.526 0 0 0-5.86-.992ZM128 211.5a18.547 18.547 0 0 1-6.193-1.048 16.37 16.37 0 0 1-5.422-3.154 16.248 16.248 0 0 1-5.3-12.6V57.685L93.349 75.567a16.238 16.238 0 0 1-11.6 5.179 16.682 16.682 0 0 1-9.711-3.251 19.071 19.071 0 0 1-6.451-8.051 15.968 15.968 0 0 1-1.051-8.961 17 17 0 0 1 4.9-9.013l46.5-46.878a16.869 16.869 0 0 1 12.006-5.084 16.81 16.81 0 0 1 6.482 1.3 17.213 17.213 0 0 1 5.631 3.786l46.51 46.879a16.976 16.976 0 0 1 4.9 9.01 15.975 15.975 0 0 1-1.049 8.958 19.084 19.084 0 0 1-6.453 8.054 16.694 16.694 0 0 1-9.715 3.254 16.237 16.237 0 0 1-11.6-5.179l-17.736-17.882v137.013a16.249 16.249 0 0 1-5.3 12.6 16.351 16.351 0 0 1-5.422 3.154A18.527 18.527 0 0 1 128 211.5ZM112.088 55.252v139.441a15.275 15.275 0 0 0 4.959 11.855 15.365 15.365 0 0 0 5.094 2.961 17.538 17.538 0 0 0 5.859.991 17.547 17.547 0 0 0 5.859-.991 15.375 15.375 0 0 0 5.092-2.961 15.276 15.276 0 0 0 4.959-11.855V55.25l.855.862 18.592 18.744a15.257 15.257 0 0 0 10.891 4.883 15.7 15.7 0 0 0 9.133-3.067 18.064 18.064 0 0 0 6.111-7.625 14.955 14.955 0 0 0 .988-8.4 16 16 0 0 0-4.625-8.482l-46.51-46.878a16.222 16.222 0 0 0-5.3-3.567 15.825 15.825 0 0 0-6.1-1.222 15.868 15.868 0 0 0-11.295 4.789l-46.5 46.878a16.011 16.011 0 0 0-4.627 8.485 15 15 0 0 0 .988 8.4 18.055 18.055 0 0 0 6.111 7.623 15.688 15.688 0 0 0 9.129 3.064 15.259 15.259 0 0 0 10.893-4.883Z",fill:"rgba(0,0,0,0)"})]})]}))},Lt=n(95232),Dt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 47.137 36.516"},e),{},{children:(0,a.jsx)("g",{id:"azure-logo-color",transform:"translate(-437.603 -471.382)",children:(0,a.jsx)("g",{id:"layer1-1",transform:"translate(437.603 471.382)",children:(0,a.jsx)("path",{id:"path21",d:"M459.411,505.944c6.055-1.07,11.056-1.953,11.115-1.965l.1-.024-5.717-6.8c-3.143-3.74-5.717-6.815-5.717-6.831,0-.032,5.9-16.291,5.936-16.347.012-.019,4.03,6.919,9.738,16.812,5.347,9.266,9.755,16.9,9.8,16.975l.075.132-18.168,0-18.169,0S459.411,505.944,459.411,505.944ZM437.6,503.868c0-.008,2.693-4.686,5.987-10.391l5.987-10.375,6.978-5.856c3.839-3.219,6.986-5.86,7-5.864a1.448,1.448,0,0,1-.112.282c-.075.159-3.485,7.471-7.574,16.247l-7.44,15.957-5.41.008C440.037,503.884,437.6,503.88,437.6,503.868Z",transform:"translate(-437.603 -471.382)",fill:"#2a94dc"})})})}))},Bt=n(34171),Ht=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"Calendar-icn",children:[(0,a.jsx)("path",{"data-name":"Trazado 412",d:"M65.175 146.527h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.762-7.115-6.162-7.115H65.175c-3.4 0-6.164 3.188-6.164 7.115s2.758 7.115 6.164 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 413",d:"M118.028 146.527h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.76-7.115-6.162-7.115h-24.651c-3.4 0-6.162 3.188-6.162 7.115s2.762 7.115 6.162 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 414",d:"M166.344 146.527h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.762-7.115-6.162-7.115h-24.651c-3.4 0-6.165 3.188-6.165 7.115s2.762 7.115 6.165 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 415",d:"M65.175 178.762h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.762-7.115-6.162-7.115H65.175c-3.4 0-6.164 3.188-6.164 7.115s2.758 7.115 6.164 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 416",d:"M118.028 178.762h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.76-7.115-6.162-7.115h-24.651c-3.4 0-6.162 3.188-6.162 7.115s2.762 7.115 6.162 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 417",d:"M166.344 178.762h24.651c3.4 0 6.162-3.188 6.162-7.115s-2.762-7.115-6.162-7.115h-24.651c-3.4 0-6.165 3.188-6.165 7.115s2.762 7.115 6.165 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 418",d:"M65.175 210.997h24.651c3.4 0 6.162-3.187 6.162-7.115s-2.762-7.115-6.162-7.115H65.175c-3.4 0-6.164 3.188-6.164 7.115s2.758 7.115 6.164 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 419",d:"M118.028 210.997h24.651c3.4 0 6.162-3.187 6.162-7.115s-2.76-7.115-6.162-7.115h-24.651c-3.4 0-6.162 3.188-6.162 7.115s2.762 7.115 6.162 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 420",d:"M166.344 210.997h24.651c3.4 0 6.162-3.187 6.162-7.115s-2.762-7.115-6.162-7.115h-24.651c-3.4 0-6.165 3.188-6.165 7.115s2.762 7.115 6.165 7.115Z"}),(0,a.jsx)("path",{"data-name":"Trazado 421",d:"M215.81 30.376h-15.951V10.455a10.661 10.661 0 0 0-10.6-10.661 10.66 10.66 0 0 0-10.595 10.661v19.921h-40.089V10.455a10.661 10.661 0 0 0-10.6-10.661 10.66 10.66 0 0 0-10.595 10.661v19.921H77.291V10.455a10.661 10.661 0 0 0-10.6-10.661 10.66 10.66 0 0 0-10.595 10.661v19.921h-15.08a23.369 23.369 0 0 0-23.295 23.44v178.332a23.367 23.367 0 0 0 23.295 23.44h174.782a23.367 23.367 0 0 0 23.295-23.44V53.816a23.367 23.367 0 0 0-23.283-23.44Zm-3.051 198.641a.062.062 0 0 1-.062.062H44.14a.062.062 0 0 1-.064-.062V114.344h168.683Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 862",fill:"none",d:"M0 0h256v255.794H0z"})]})]}))},Ft=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({},e),{},{className:"min-icon",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 10 9.5",children:(0,a.jsxs)("g",{transform:"translate(231 719.516)",children:[(0,a.jsx)("path",{d:"M-125.5,7.984a4.5,4.5,0,0,1,4.5-4.5,4.5,4.5,0,0,1,4.5,4.5Z",transform:"translate(-105 -720)"}),(0,a.jsx)("rect",{width:"10",height:"1",transform:"translate(-231 -711.016)"}),(0,a.jsx)("path",{d:"M-119.5.484h-3v1h1v1h1v-1h1Z",transform:"translate(-105 -720)"})]})}))},Ut=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsxs)("g",{"data-name":"logs-icn",children:[(0,a.jsx)("path",{"data-name":"Uni\\xF3n 20",d:"M17.298 255.999a17.314 17.314 0 0 1-17.3-17.291V17.302a17.322 17.322 0 0 1 17.3-17.3h221.4a17.325 17.325 0 0 1 17.3 17.3v221.406a17.316 17.316 0 0 1-17.3 17.291Zm.7-32.922a14.938 14.938 0 0 0 14.934 14.937H223.07A14.935 14.935 0 0 0 238 223.077v-133.4H18Zm45.949-69.443a6.943 6.943 0 0 1-6.814-7.061v-16.314a6.937 6.937 0 0 1 6.814-7.054h62.056a6.924 6.924 0 0 1 6.795 7.054v16.318a6.929 6.929 0 0 1-6.795 7.061Z"}),(0,a.jsx)("path",{"data-name":"Trazado 343 - Contorno",d:"M17.3-.1h221.4a17.421 17.421 0 0 1 17.4 17.4v221.409a17.416 17.416 0 0 1-17.4 17.391H17.3A17.416 17.416 0 0 1-.1 238.709V17.301A17.421 17.421 0 0 1 17.3-.1Zm221.4 256a17.216 17.216 0 0 0 17.2-17.191V17.301a17.221 17.221 0 0 0-17.2-17.2H17.3a17.221 17.221 0 0 0-17.2 17.2v221.408A17.216 17.216 0 0 0 17.3 255.9ZM17.9 89.576h220.2v133.5a14.945 14.945 0 0 1-4.4 10.634 14.93 14.93 0 0 1-10.627 4.405H32.931a14.93 14.93 0 0 1-10.627-4.405 14.942 14.942 0 0 1-4.4-10.634Zm220 .2H18.1v133.3a14.745 14.745 0 0 0 4.346 10.493 14.73 14.73 0 0 0 10.486 4.347h190.139a14.73 14.73 0 0 0 10.486-4.347 14.745 14.745 0 0 0 4.346-10.493Z"}),(0,a.jsx)("path",{"data-name":"Trazado 344 - Contorno",d:"M63.948 123.102h62.057a6.726 6.726 0 0 1 4.878 2.1 7.247 7.247 0 0 1 2.015 5.058v16.318a7.038 7.038 0 0 1-6.893 7.16H63.948a7.049 7.049 0 0 1-6.915-7.16V130.26a7.045 7.045 0 0 1 6.915-7.158Zm62.057 30.431a6.838 6.838 0 0 0 6.693-6.96v-16.318a7.047 7.047 0 0 0-1.959-4.919 6.526 6.526 0 0 0-4.733-2.034H63.949a6.845 6.845 0 0 0-6.714 6.953v16.318a6.848 6.848 0 0 0 6.714 6.96Z"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 889",fill:"none",d:"M0 0h256v256H0z"})]})]}))},Vt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 36.369 36.346"},e),{},{children:(0,a.jsxs)("g",{id:"hardquota-icn",transform:"translate(-98.002 -28.027)",children:[(0,a.jsx)("path",{id:"Trazado_7233","data-name":"Trazado 7233",d:"M344.76,203.93l2.664-2.664,8.15,8.15-2.664,2.664Z",transform:"translate(-228.962 -160.744)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7234","data-name":"Trazado 7234",d:"M464.768,316.895a1.11,1.11,0,0,0-1.575,0l-2.827,2.827h0a1.111,1.111,0,0,0,0,1.575l5.182,5.182a1.114,1.114,0,0,0,.787.327,1.1,1.1,0,0,0,.808-.327l2.827-2.827a1.11,1.11,0,0,0,0-1.575Z",transform:"translate(-335.926 -267.73)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7235","data-name":"Trazado 7235",d:"M235.486,84.317l-5.408-5.408a2.141,2.141,0,0,1-.157-.174L222.2,86.45c.061.052.121.105.178.161l5.4,5.4c.057.057.109.117.161.178l7.718-7.718a2.2,2.2,0,0,1-.178-.157Z",transform:"translate(-115.243 -47.051)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7236","data-name":"Trazado 7236",d:"M337.566,36.693a1.912,1.912,0,0,0,2.706-2.7l-5.408-5.4a1.91,1.91,0,1,0-2.7,2.7Z",transform:"translate(-216.754)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7237","data-name":"Trazado 7237",d:"M174.741,188.807a1.912,1.912,0,1,0-2.7,2.706l5.408,5.392a1.911,1.911,0,1,0,2.7-2.7Z",transform:"translate(-68.177 -148.665)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7238","data-name":"Trazado 7238",d:"M143.562,432.083a3.239,3.239,0,0,1,.525.048v-.565a2.383,2.383,0,0,0-2.379-2.383h-15.63a2.383,2.383,0,0,0-2.379,2.383v.565a3.245,3.245,0,0,1,.525-.048Z",transform:"translate(-23.844 -372.224)",fill:"#07193e"}),(0,a.jsx)("path",{id:"Trazado_7239","data-name":"Trazado 7239",d:"M122.1,482.968a2.379,2.379,0,0,0-2.379-2.379H100.381A2.379,2.379,0,0,0,98,482.968V484.3h24.1Z",transform:"translate(0 -419.924)",fill:"#07193e"})]})}))},Gt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Uni\\xF3n 20",d:"M17.4 256.099A17.314 17.314 0 0 1 .1 238.808V17.402A17.322 17.322 0 0 1 17.4.102h221.4a17.325 17.325 0 0 1 17.3 17.3v221.406a17.316 17.316 0 0 1-17.3 17.291Zm.7-32.922a14.938 14.938 0 0 0 14.934 14.937h190.138a14.935 14.935 0 0 0 14.93-14.937v-133.4h-220Zm45.949-69.443a6.943 6.943 0 0 1-6.814-7.061v-16.314a6.937 6.937 0 0 1 6.814-7.054h62.056a6.924 6.924 0 0 1 6.795 7.054v16.318a6.929 6.929 0 0 1-6.795 7.061Z"}),(0,a.jsx)("path",{"data-name":"Trazado 343 - Contorno",d:"M17.402 0h221.4a17.421 17.421 0 0 1 17.4 17.4v221.409a17.416 17.416 0 0 1-17.4 17.391h-221.4a17.416 17.416 0 0 1-17.4-17.391V17.401A17.421 17.421 0 0 1 17.402 0Zm221.4 256a17.216 17.216 0 0 0 17.2-17.191V17.401a17.221 17.221 0 0 0-17.2-17.2h-221.4a17.221 17.221 0 0 0-17.2 17.2v221.408A17.216 17.216 0 0 0 17.402 256ZM18.002 89.676h220.2v133.5a14.945 14.945 0 0 1-4.4 10.634 14.93 14.93 0 0 1-10.627 4.405H33.033a14.93 14.93 0 0 1-10.627-4.405 14.942 14.942 0 0 1-4.4-10.634Zm220 .2h-219.8v133.3a14.745 14.745 0 0 0 4.346 10.493 14.73 14.73 0 0 0 10.486 4.347h190.139a14.73 14.73 0 0 0 10.486-4.347 14.745 14.745 0 0 0 4.346-10.493Z"}),(0,a.jsx)("path",{"data-name":"Trazado 344 - Contorno",d:"M64.05 123.202h62.057a6.726 6.726 0 0 1 4.878 2.1A7.247 7.247 0 0 1 133 130.36v16.318a7.038 7.038 0 0 1-6.893 7.16H64.05a7.049 7.049 0 0 1-6.915-7.16V130.36a7.045 7.045 0 0 1 6.915-7.158Zm62.057 30.431a6.838 6.838 0 0 0 6.693-6.96v-16.318a7.047 7.047 0 0 0-1.959-4.919 6.526 6.526 0 0 0-4.733-2.034H64.051a6.845 6.845 0 0 0-6.714 6.953v16.318a6.848 6.848 0 0 0 6.714 6.96Z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 889",fill:"none",d:"M.102.1h256v256h-256z"})]})]}))},Wt=n(30745),qt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:"284.616",height:"49.568",className:"min-icon",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1033","data-name":"Rect\xe1ngulo 1033",width:"234.584",height:"256",fill:"#4ccb92"})}),(0,a.jsx)("clipPath",{id:"clip-Change_User_Password",children:(0,a.jsx)("rect",{width:"256",height:"256"})})]}),(0,a.jsxs)("g",{id:"Change_User_Password","data-name":"Change User Password",clipPath:"url(#clip-Change_User_Password)",children:[(0,a.jsx)("rect",{width:"256",height:"256",fill:"#fff"}),(0,a.jsxs)("g",{id:"Change_User_Password_Icon","data-name":"Change User Password Icon",children:[(0,a.jsx)("g",{id:"Grupo_2422","data-name":"Grupo 2422",transform:"translate(11)",children:(0,a.jsxs)("g",{id:"Grupo_2421","data-name":"Grupo 2421",clipPath:"url(#clip-path)",children:[(0,a.jsx)("path",{id:"Trazado_7174","data-name":"Trazado 7174",d:"M89.039,144.5h.048a66.549,66.549,0,0,0,26.922-5.683,68.721,68.721,0,0,0,22.01-15.464,71.754,71.754,0,0,0,14.829-22.881,73.555,73.555,0,0,0,5.44-27.984C158.291,32.8,127.233.5,89.04.5h0C50.868.5,19.816,32.794,19.816,72.49S50.868,144.5,89.039,144.5",transform:"translate(1.369 0.035)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7175","data-name":"Trazado 7175",d:"M89.039,144.5h.048a66.549,66.549,0,0,0,26.922-5.683,68.721,68.721,0,0,0,22.01-15.464,71.754,71.754,0,0,0,14.829-22.881,73.555,73.555,0,0,0,5.44-27.984C158.291,32.8,127.233.5,89.04.5h0C50.868.5,19.816,32.794,19.816,72.49S50.868,144.5,89.039,144.5Z",transform:"translate(1.369 0.035)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7176","data-name":"Trazado 7176",d:"M169.875,117.967A64.121,64.121,0,0,0,112.7,153.043c-1.421-.4-2.848-.78-4.286-1.119a94.31,94.31,0,0,0-21.382-2.511v.005c-1.748,0-3.424.045-4.982.135A99.34,99.34,0,0,0,8.563,189.619c-.386.516-.763,1.056-1.228,1.749l-.107.15c-.1.141-.213.3-.311.456L6.89,192a37.722,37.722,0,0,0-2.66,37.365,31.837,31.837,0,0,0,28.644,17.951H141.951a31.362,31.362,0,0,0,13.027-2.828,64.139,64.139,0,1,0,14.9-126.523m.382,114.817a50.676,50.676,0,1,1,50.676-50.676,50.676,50.676,0,0,1-50.676,50.676",transform:"translate(0.035 8.148)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7177","data-name":"Trazado 7177",d:"M169.875,117.967A64.121,64.121,0,0,0,112.7,153.043c-1.421-.4-2.848-.78-4.286-1.119a94.31,94.31,0,0,0-21.382-2.511v.005c-1.748,0-3.424.045-4.982.135A99.34,99.34,0,0,0,8.563,189.619c-.386.516-.763,1.056-1.228,1.749l-.107.15c-.1.141-.213.3-.311.456L6.89,192a37.722,37.722,0,0,0-2.66,37.365,31.837,31.837,0,0,0,28.644,17.951H141.951a31.362,31.362,0,0,0,13.027-2.828,64.139,64.139,0,1,0,14.9-126.523Zm.382,114.817a50.676,50.676,0,1,1,50.676-50.676A50.676,50.676,0,0,1,170.256,232.784Z",transform:"translate(0.035 8.148)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7178","data-name":"Trazado 7178",d:"M175.869,148.182a20.812,20.812,0,0,0-20.809,20.813,20.593,20.593,0,0,0,.9,6.036l-24.028,24.024v13.874h13.875L169.833,188.9a20.816,20.816,0,0,0,26.849-18.2,20.283,20.283,0,0,0-3.813-13.874,20.814,20.814,0,0,0-17-8.642m2.311,23.125a4.625,4.625,0,1,1,4.626-4.624,4.625,4.625,0,0,1-4.626,4.624",transform:"translate(9.112 10.235)",fill:"#4ccb92"}),(0,a.jsx)("path",{id:"Trazado_7179","data-name":"Trazado 7179",d:"M175.869,148.182a20.812,20.812,0,0,0-20.809,20.813,20.593,20.593,0,0,0,.9,6.036l-24.028,24.024v13.874h13.875L169.833,188.9a20.816,20.816,0,0,0,26.849-18.2,20.283,20.283,0,0,0-3.813-13.874A20.814,20.814,0,0,0,175.869,148.182Zm2.311,23.125a4.625,4.625,0,1,1,4.626-4.624A4.625,4.625,0,0,1,178.181,171.307Z",transform:"translate(9.112 10.235)",fill:"#4ccb92"})]})}),(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1034","data-name":"Rect\xe1ngulo 1034",width:"256",height:"256",fill:"none"})]})]})]}))},Kt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"prefix__a",children:(0,a.jsx)("path",{d:"M0 0h256v256H0z"})})}),(0,a.jsxs)("g",{clipPath:"url(#prefix__a)",children:[(0,a.jsx)("path",{fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 856",fill:"none",d:"M0 0h256v256H0z"}),(0,a.jsx)("path",{"data-name":"Trazado 406",d:"M210.861 74.863h-28.736V48.236C182.125 21.636 157.844 0 128 0S73.875 21.638 73.875 48.236v26.627H45.139C20.25 74.863.001 92.971.001 115.23v84.8c0 21.912 19.623 39.8 43.979 40.353l84.021 14.62 84.021-14.62c24.356-.551 43.979-18.441 43.979-40.353v-84.8c-.001-22.259-20.25-40.367-45.14-40.367ZM96.296 48.236c0-15.579 14.222-28.254 31.7-28.254s31.7 12.675 31.7 28.254v26.627H96.289Zm137.281 151.79c0 11.24-10.191 20.385-22.717 20.385h-1.084l-81.777 14.229-81.777-14.229h-1.084c-12.526 0-22.716-9.145-22.716-20.385v-84.8c0-11.24 10.19-20.385 22.716-20.385h165.723c12.526 0 22.717 9.145 22.717 20.385Z"}),(0,a.jsx)("path",{"data-name":"Trazado 407",d:"M127.707 139.723a19.085 19.085 0 0 0-19.085 19.086 19.066 19.066 0 0 0 8.4 15.818v15.377a10.1 10.1 0 0 0 10.073 10.073h1.218a10.1 10.1 0 0 0 10.073-10.073v-15.377a19.067 19.067 0 0 0 8.4-15.818 19.086 19.086 0 0 0-19.079-19.086Z"})]})]}))},$t=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(5.595 10) rotate(180)",children:(0,a.jsx)("path",{id:"Path_6842",d:"M-178.01,7.8c-3.9-0.03-7.62-1.63-10.34-4.43c-5.81-5.68-5.92-15-0.25-20.81 c0.08-0.08,0.16-0.16,0.25-0.25l100.13-100.13l-100.13-100.48c-5.81-5.68-5.92-15-0.25-20.81c0.08-0.08,0.16-0.16,0.25-0.25 c5.68-5.81,15-5.92,20.81-0.25c0.08,0.08,0.16,0.16,0.25,0.25l110.82,110.82c2.8,2.72,4.39,6.44,4.43,10.34 c0.11,3.93-1.51,7.71-4.43,10.34L-167.29,2.99C-170.07,5.97-173.93,7.71-178.01,7.8z"})})}))},Yt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("path",{id:"Path_7269",d:"M147.85,227.97c-2.7,0-4.89-2.19-4.89-4.89l0,0V32.93c0-2.7,2.19-4.89,4.89-4.89c0,0,0,0,0,0 h98.98c2.7,0,4.89,2.19,4.89,4.89c0,0,0,0,0,0v190.14c0,2.7-2.19,4.89-4.89,4.89l0,0H147.85z M71.37,205.43 c-2.7,0-4.89-2.19-4.89-4.89l0,0V55.48c-0.01-2.7,2.17-4.9,4.87-4.91c0.01,0,0.01,0,0.02,0h56.4c2.7,0,4.89,2.19,4.89,4.89l0,0 v145.05c0,2.7-2.19,4.89-4.89,4.89c0,0,0,0,0,0L71.37,205.43z M9.17,182.88c-2.7,0-4.88-2.18-4.89-4.87V78.02 c0-2.7,2.19-4.89,4.89-4.89h42.15c2.7,0,4.89,2.19,4.89,4.89V178c0,2.7-2.19,4.89-4.89,4.89l0,0L9.17,182.88z"})}))},Qt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:"M23.4,121.5c-11.5,0-21.4,9.8-21.4,21.2c0.2,11.8,9.7,21.2,21.4,21.4 c11.4,0,21.2-9.9,21.2-21.4C44.3,131.1,35,121.7,23.4,121.5"}),(0,a.jsx)("path",{d:"M23.4,175.4c-11.5,0-21.4,9.8-21.4,21.2c0.2,11.8,9.7,21.2,21.4,21.4 c11.4,0,21.2-9.9,21.2-21.4C44.3,184.9,35,175.6,23.4,175.4"}),(0,a.jsx)("path",{d:"M158.6,40.2h-12.2c-4.3,0-8.3,2.5-10.2,6.4l-76.6,157c-2.7,5.6-0.4,12.4,5.2,15.2 c1.6,0.8,3.3,1.2,5,1.2H82c4.3,0,8.3-2.5,10.2-6.4l76.6-157c2.7-5.6,0.4-12.4-5.2-15.2C162,40.6,160.3,40.2,158.6,40.2"}),(0,a.jsx)("path",{d:"M205,121.1c-1.2,0-2.4,0.1-3.6,0.1L233,56.5c2.7-5.6,0.4-12.4-5.2-15.2 c-1.6-0.8-3.3-1.2-5-1.2h-12.2c-4.3,0-8.3,2.5-10.2,6.4l-76.6,157c-2.7,5.6-0.4,12.4,5.2,15.2c1.6,0.8,3.3,1.2,5,1.2h12.2 c4.3,0,8.3-2.5,10.2-6.4L165,196c14.8,22.1,44.7,28.1,66.8,13.3s28.1-44.7,13.3-66.8C236.2,129.1,221.1,121.1,205,121.1 M205.3,207.3c-21,0-38.1-17-38.1-38.1c0-21,17-38.1,38.1-38.1c21,0,38.1,17,38.1,38.1c0,0,0,0,0,0 C243.4,190.3,226.3,207.3,205.3,207.3"}),(0,a.jsx)("path",{d:"M211.3,151.3h-11.9v11.9h-11.9v11.9h11.9v11.9h11.9v-11.9h11.9v-11.9h-11.9V151.3z"})]})}))},Jt=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("path",{d:"M128,3.14C58.12,3.14,1.46,59,1.46,128S58.12,252.86,128,252.86,254.54,197,254.54,128h0C254.48,59.07,197.86,3.2,128,3.14M84.46,204.56a36.93,36.93,0,0,1-37.09-36.65h0c0-20.24,16.63-36.65,37.14-36.65s37.14,16.41,37.14,36.65S105,204.56,84.51,204.56h0M100,122.67a13,13,0,0,1-13.11-12.9,12.77,12.77,0,0,1,1.76-6.48l26.52-45.38a13.18,13.18,0,0,1,17.88-4.74,13,13,0,0,1,4.8,4.74l26.55,45.38a12.83,12.83,0,0,1-4.78,17.65,13.14,13.14,0,0,1-6.57,1.73ZM208.74,185a17.12,17.12,0,0,1-17.24,17H154.22A17.12,17.12,0,0,1,137,185V148.24a17.11,17.11,0,0,1,17.21-17h37.22a17.12,17.12,0,0,1,17.25,17v0Z",transform:"translate(-1.46 -3.14)"})}))},Xt=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("path",{d:"M234.64,2.55H64.58a9,9,0,0,0-8.95,8.94V92h44.75a9,9,0,0,1,8.94,8.94v125.3a9,9,0,0,1-8.94,8.95H55.63v8.94a9,9,0,0,0,8.95,8.94H234.64a9,9,0,0,0,9-8.94V11.49A9,9,0,0,0,234.64,2.55ZM198.78,208.4H136.13a9,9,0,1,1,0-17.9h62.65a9,9,0,0,1,0,17.9Zm0-35.8H136.13a9,9,0,0,1,0-17.9h62.65a8.95,8.95,0,0,1,0,17.9Zm0-35.8H136.13a9,9,0,1,1,0-17.9h62.65a9,9,0,0,1,0,17.9Zm0-35.8H136.13a9,9,0,1,1,0-17.9h62.65a9,9,0,0,1,0,17.9Zm0-35.81H100.33a8.95,8.95,0,0,1,0-17.9h98.45a8.95,8.95,0,0,1,0,17.9Z",transform:"translate(-10.89 -2.55)"}),(0,a.jsx)("path",{d:"M91.43,101H19.83a9,9,0,0,0-8.94,8.94v107.4a9,9,0,0,0,8.94,8.94h71.6a9,9,0,0,0,8.95-8.94V109.94A9,9,0,0,0,91.43,101Zm-17.9,98.44H37.73a8.95,8.95,0,1,1,0-17.9h35.8a8.95,8.95,0,0,1,0,17.9Zm0-26.84H37.73a8.95,8.95,0,1,1,0-17.9h35.8a8.95,8.95,0,0,1,0,17.9Zm0-26.85H37.73a8.95,8.95,0,1,1,0-17.9h35.8a8.95,8.95,0,0,1,0,17.9Z",transform:"translate(-10.89 -2.55)"})]}))},en=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("path",{d:"M253.46,219.34a17.76,17.76,0,0,1-5.37,13L232.57,248a18.57,18.57,0,0,1-13.19,5.38,17.74,17.74,0,0,1-13-5.38l-52.61-52.77a17.23,17.23,0,0,1-5.5-13.05,19.26,19.26,0,0,1,6.27-13.93L117.34,131.2,99.08,149.45a7,7,0,0,1-9.85,0l1.82,1.74a16.14,16.14,0,0,1,1.82,1.88,16.44,16.44,0,0,0,1.44,1.67,7.38,7.38,0,0,1,1.45,2c.19.49.48,1.14.87,2a9.89,9.89,0,0,1,.8,2.41,14.26,14.26,0,0,1-3.85,12.55q-.43.44-2.4,2.61t-2.76,3q-.8.79-2.7,2.4a16.88,16.88,0,0,1-3.2,2.24,28.58,28.58,0,0,1-3.2,1.3,11.22,11.22,0,0,1-3.76.65,13.45,13.45,0,0,1-9.85-4.06L6.6,122.42a13.43,13.43,0,0,1-4.06-9.85,11.4,11.4,0,0,1,.75-3.7,27,27,0,0,1,1.21-3.18,17.84,17.84,0,0,1,2.24-3.2c1.06-1.25,1.86-2.15,2.41-2.68s1.53-1.45,3-2.76l2.61-2.38a14.26,14.26,0,0,1,12.55-3.85,9.68,9.68,0,0,1,2.4.8l2,.87a7.33,7.33,0,0,1,2,1.45,20.77,20.77,0,0,0,1.67,1.44,19.1,19.1,0,0,1,1.89,1.82L38.9,99a7,7,0,0,1,0-9.85L89.21,38.78a7,7,0,0,1,9.85,0L97.24,37a13.64,13.64,0,0,1-1.8-1.92A11,11,0,0,0,94,33.44a6,6,0,0,1-1.44-2,20.39,20.39,0,0,0-.88-2,8.81,8.81,0,0,1-.8-2.4,17.58,17.58,0,0,1-.23-2.61,14.07,14.07,0,0,1,4.06-9.85c.29-.3,1.1-1.17,2.41-2.62s2.23-2.43,2.76-2.95,1.42-1.33,2.67-2.4a16.88,16.88,0,0,1,3.2-2.24,27.73,27.73,0,0,1,3.18-1.21,11.22,11.22,0,0,1,3.76-.65,13.48,13.48,0,0,1,9.79,4L181.7,65.67a13.39,13.39,0,0,1,4.05,9.85,11.22,11.22,0,0,1-.65,3.76,26.74,26.74,0,0,1-1.29,3.2,16.88,16.88,0,0,1-2.24,3.2q-1.59,1.88-2.4,2.67t-3,2.7l-2.62,2.41A14.24,14.24,0,0,1,161,97.3a10.31,10.31,0,0,1-2.41-.79l-1.86-.84a7.3,7.3,0,0,1-2-1.44,19.31,19.31,0,0,0-1.68-1.44A18,18,0,0,1,151.25,91l-1.73-1.82a7,7,0,0,1,0,9.85l-18.28,18.27,37.12,37.12a19.24,19.24,0,0,1,13.92-6.27,18.53,18.53,0,0,1,13.2,5.37l52.61,52.57a18.59,18.59,0,0,1,5.37,13.19Z",transform:"translate(-2.54 -2.58)"})}))},tn=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("path",{d:"M222.54,17.88h-24.4V14.76a12.2,12.2,0,1,0-24.4,0V17.9H78.93V14.76a12.21,12.21,0,1,0-24.41,0V17.9H33.42a30.46,30.46,0,0,0-30.88,30V223.47a30.54,30.54,0,0,0,30.88,30H222.56a30.47,30.47,0,0,0,30.86-29.94V47.9a30.53,30.53,0,0,0-30.88-30M26.94,47.79a6.27,6.27,0,0,1,6.45-6.08H54.52v3.34a12.21,12.21,0,0,0,24.39,0V41.71h94.81v3.34a12.2,12.2,0,0,0,24.4,0V41.71h24.4A6.28,6.28,0,0,1,229,47.77h0v26h-202ZM229.14,223.4a6.5,6.5,0,0,1-6.6,6.09H33.42A6.27,6.27,0,0,1,27,223.42h0V97.55H229.14Z",transform:"translate(-2.54 -2.55)"}),(0,a.jsx)("path",{d:"M96.62,195.15,128,200.61l31.36-5.46a16,16,0,0,0,16.41-15.05V148.49a16.05,16.05,0,0,0-16.85-15.05H148.22v-9.93a20.35,20.35,0,0,0-40.42,0v9.93H97.08a16.05,16.05,0,0,0-16.85,15.05v31.63a16,16,0,0,0,16.41,15M132,166.22v5.72a3.76,3.76,0,0,1-3.76,3.77h-.46a3.76,3.76,0,0,1-3.76-3.77h0v-5.72a7.13,7.13,0,1,1,9.9-1.92,7,7,0,0,1-1.92,1.92m-15.82-42.69a11.91,11.91,0,0,1,23.66,0v9.93H116.17Z",transform:"translate(-2.54 -2.55)"})]}))},nn=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsx)("path",{d:"M8.18,94.43V21.24A20.26,20.26,0,0,1,27.69,1.74h73.19A51,51,0,0,1,134.25,15.6L242.6,136.2a21,21,0,0,1,0,27.73l-84.8,84.81a20.17,20.17,0,0,1-27.74,0L22.05,127.8A55.46,55.46,0,0,1,8.18,94.43ZM39.94,52.24a19.31,19.31,0,0,0,18.7,18.94A19.42,19.42,0,0,0,77.58,52.24,19.29,19.29,0,0,0,58.64,33.53,19.17,19.17,0,0,0,39.94,52.24Z",transform:"translate(-8.18 -1.74)"})}))},rn=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",width:"11",height:"11",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("clipPath",{id:"clip-path-alert-close-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1612","data-name":"Rect\xe1ngulo 1612",width:"256",height:"256",fill:"none"})}),(0,a.jsx)("clipPath",{id:"clip-path-2-alert-close-icon",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_1611","data-name":"Rect\xe1ngulo 1611",width:"256",height:"256"})})]}),(0,a.jsx)("g",{id:"AlertCloseIcon",clipPath:"url(#clip-path-alert-close-icon)",children:(0,a.jsx)("g",{id:"AlertCloseIcon-2","data-name":"AlertCloseIcon",children:(0,a.jsx)("g",{id:"Grupo_2527","data-name":"Grupo 2527",clipPath:"url(#clip-path-2-alert-close-icon)",children:(0,a.jsx)("path",{id:"Trazado_7276","data-name":"Trazado 7276",d:"M230.082,256.006a25.853,25.853,0,0,1-18.328-7.6l-83.761-83.735L44.259,248.41A25.92,25.92,0,0,1,7.6,211.754l83.735-83.735L7.6,44.259A25.92,25.92,0,0,1,44.259,7.6l83.735,83.735L211.754,7.6A25.92,25.92,0,0,1,248.41,44.259l-83.735,83.761,83.735,83.735a25.924,25.924,0,0,1-18.328,44.252",transform:"translate(-0.006 -0.006)"})})})})]}))},an=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12.425 12.024"},e),{},{children:(0,a.jsx)("path",{id:"opensource",d:"M8.4,12.024,7.074,8.372a2.312,2.312,0,0,0,1.468-2.16,2.32,2.32,0,0,0-2.33-2.33,2.32,2.32,0,0,0-2.33,2.33,2.313,2.313,0,0,0,1.468,2.16L4.028,12.024A6.2,6.2,0,0,1,1.122,9.761,5.992,5.992,0,0,1,0,6.212,6.094,6.094,0,0,1,.491,3.8,6.079,6.079,0,0,1,3.8.491a6.177,6.177,0,0,1,4.829,0A6.079,6.079,0,0,1,11.933,3.8a6.094,6.094,0,0,1,.491,2.415A5.993,5.993,0,0,1,11.3,9.761,6.2,6.2,0,0,1,8.4,12.024Z",fill:"#fff"})}))},on=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor"},e),{},{viewBox:"0 0 12.621 7.619",children:(0,a.jsx)("path",{d:"M2.82.976A.989.989,0,0,1,4.8.976V9.243L5.919,8.122a.989.989,0,0,1,1.4,1.4l-2.8,2.8a.989.989,0,0,1-1.411,0L.3,9.521a.989.989,0,0,1,1.4-1.4L2.82,9.243V.976Z",transform:"translate(0 7.619) rotate(-90)",fill:"#2781b0"})}))},sn=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 16 15.1"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip-path-lic-doc",children:(0,a.jsx)("rect",{id:"Rect\xe1ngulo_963","data-name":"Rect\xe1ngulo 963",width:"16",height:"15.1",fill:"currentcolor"})})}),(0,a.jsx)("g",{id:"Grupo_2324","data-name":"Grupo 2324",clipPath:"url(#clip-path-lic-doc)",children:(0,a.jsx)("path",{id:"Trazado_7051","data-name":"Trazado 7051",d:"M12.118,0A3.867,3.867,0,0,0,9.051,1.506a3.9,3.9,0,0,0-.687,1.4L.948,2.975A.988.988,0,0,0,0,4V14.079A.988.988,0,0,0,.948,15.1H12.105a.987.987,0,0,0,.947-1.021V7.645a3.871,3.871,0,0,0,1.17-.508,3.914,3.914,0,0,0,.935-.848A3.878,3.878,0,0,0,12.118,0M1.057,5.621a.516.516,0,0,1,.515-.515h3.8a.516.516,0,0,1,.515.515v.686a.516.516,0,0,1-.515.515h-3.8a.516.516,0,0,1-.515-.515Zm10.7,7.573a.516.516,0,0,1-.515.515H1.571a.516.516,0,0,1-.515-.515v-.686a.516.516,0,0,1,.515-.515h9.666a.516.516,0,0,1,.515.515Zm0-3.443a.516.516,0,0,1-.515.515H1.571a.516.516,0,0,1-.515-.515V9.064a.516.516,0,0,1,.515-.515h9.666a.516.516,0,0,1,.515.515Zm2.025-6.511,0,0L12.026,4.988a.388.388,0,0,1-.28.118h0a.389.389,0,0,1-.28-.118l-.873-.873a.4.4,0,0,1,.564-.565l.59.591L13.21,2.678a.4.4,0,0,1,.561,0l0,0a.4.4,0,0,1,0,.561",fill:"currentcolor"})})]}))},ln=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("path",{d:"M99.18,223A7.66,7.66,0,0,1,92.42,219L77.91,191.41c-6.34-12-13-24.57-15.72-29.84h0l-1-2,0,0-.31-.58h0c-3.09-6.75,3.06-10.09,3.12-10.12A7.48,7.48,0,0,1,74.09,152l0,0,.37.7,0,0L100.43,202c22-31.37,93.39-144.89,121-189.3h0a.61.61,0,0,0,.07-.1l.24-.4h0A7.61,7.61,0,0,1,230.32,9a19.44,19.44,0,0,1,3,1.21s.69.74,1.37,1.5a6.63,6.63,0,0,1,.93,2.73s.61,3.62-1.21,5.67l.07,0-.31.49,0,0c-.93,1.6-2.46,4-5,8.05-3.39,5.43-8.24,13.18-14.07,22.48-10.65,17-26.76,42.59-43.08,68.29-18.35,28.88-33.19,52-44.13,68.58-22.22,33.77-23.42,34-27,34.86A7.64,7.64,0,0,1,99.18,223Zm-30.35-64L71,163.15Z",transform:"translate(-18.77 -7.2)"}),(0,a.jsx)("path",{d:"M99.18,224.54a9.09,9.09,0,0,1-8.08-4.86L58.81,158.4l.17-.09c-2.34-7.14,4.23-10.72,4.3-10.76a8.91,8.91,0,0,1,11.29,2.54l.15-.08,1.09,2,24.8,47.08C123.8,165.54,192,57.25,220.17,11.9l1.08-1.73.14.08a9.06,9.06,0,0,1,9.29-2.73A21.56,21.56,0,0,1,234,8.85l.24.12.18.2s.7.75,1.4,1.52a7.38,7.38,0,0,1,1.3,3.55c.06.35.57,3.76-1.12,6.26l-.54.91-.79,1.28,0,0c-.94,1.57-2.28,3.71-4.19,6.77-3.39,5.42-8.24,13.17-14.08,22.48-10.68,17-26.82,42.68-43.08,68.29-18.37,28.93-33.23,52-44.15,68.61-22.55,34.27-23.79,34.55-27.92,35.49A8.66,8.66,0,0,1,99.18,224.54ZM62.35,158.65l.12.24,31.28,59.39a6.17,6.17,0,0,0,6.79,3.11c3-.68,4.2-1,26.09-34.22,10.91-16.59,25.75-39.66,44.11-68.57C187,93,203.14,67.34,213.82,50.32c5.83-9.3,10.68-17,14.07-22.47,2.14-3.42,3.55-5.68,4.5-7.26l-.21-.13,1-1.24.41-.72.07,0a7.12,7.12,0,0,0,.47-3.87,5.71,5.71,0,0,0-.57-2l-1.16-1.27a17.3,17.3,0,0,0-2.46-1A6.11,6.11,0,0,0,223,13.06l-.3.44c-28.8,46.29-99.28,158.28-121,189.35l-1.41,2L72.81,152.82c-3.09-5.07-7.63-2.88-8.13-2.62a6,6,0,0,0-2.46,8.18Zm7.29,5.2-2.14-4.07,2.66-1.4,2.14,4.07Z",transform:"translate(-18.77 -7.2)"}),(0,a.jsx)("path",{d:"M226.15,50.25,223.65,54a12,12,0,0,1,5.09,9.78v165a12,12,0,0,1-12,12h-178a12,12,0,0,1-12-12v-165a12,12,0,0,1,12-12H187l3-4.5H38.77a16.52,16.52,0,0,0-16.5,16.5v165a16.52,16.52,0,0,0,16.5,16.5h178a16.52,16.52,0,0,0,16.5-16.5v-165A16.5,16.5,0,0,0,226.15,50.25Z",transform:"translate(-18.77 -7.2)"}),(0,a.jsx)("path",{d:"M216.74,248.8h-178a20,20,0,0,1-20-20v-165a20,20,0,0,1,20-20H196.53l-7.64,11.5H38.77a8.51,8.51,0,0,0-8.5,8.5v165a8.51,8.51,0,0,0,8.5,8.5h178a8.51,8.51,0,0,0,8.5-8.5v-165a8.54,8.54,0,0,0-3.61-6.93l-2.77-2,6.36-9.56,2.93,2a20,20,0,0,1,8.59,16.41v165A20,20,0,0,1,216.74,248.8Z",transform:"translate(-18.77 -7.2)"}),(0,a.jsx)("path",{d:"M224.24,63.79v165a7.5,7.5,0,0,1-7.5,7.5h-178a7.51,7.51,0,0,1-7.5-7.5v-165a7.51,7.51,0,0,1,7.5-7.5H184l3-4.5H38.77a12,12,0,0,0-12,12v165a12,12,0,0,0,12,12h178a12,12,0,0,0,12-12v-165A12,12,0,0,0,223.65,54l-2.48,3.74A7.48,7.48,0,0,1,224.24,63.79Z",transform:"translate(-18.77 -7.2)"}),(0,a.jsx)("path",{d:"M216.74,244.3h-178a15.52,15.52,0,0,1-15.5-15.5v-165a15.52,15.52,0,0,1,15.5-15.5H193.54l-7.65,11.5H38.77a4,4,0,0,0-4,4v165a4,4,0,0,0,4,4h178a4,4,0,0,0,4-4v-165a4,4,0,0,0-1.65-3.22l-2.69-2,6.34-9.52,2.94,2.09a15.52,15.52,0,0,1,6.56,12.63v165A15.51,15.51,0,0,1,216.74,244.3Z",transform:"translate(-18.77 -7.2)"})]}))},cn=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor"},e),{},{viewBox:"0 0 18 12",children:[(0,a.jsx)("defs",{}),(0,a.jsx)("g",{id:"Page-1",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd",children:(0,a.jsx)("g",{fill:"currentcolor",id:"Fill-2",children:(0,a.jsx)("polygon",{points:"17.9999987 4.99999934 3.82999951 4.99999934 7.40999918 1.4099994 5.99999946 -3.60000001e-07 -1.80000029e-07 5.99999928 5.99999946 11.9999989 7.40999918 10.5899991 3.82999951 6.99999922 17.9999987 6.99999922"})})})]}))},un=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",viewBox:"0 0 256 256",fill:"currentcolor"},e),{},{children:[(0,a.jsx)("path",{d:"M222.83,0H114.08a5.38,5.38,0,0,0-5.38,5.37V118.1c.62.39,1.24.79,1.85,1.2a74.53,74.53,0,0,1,22.09,100.36h90.19a5.36,5.36,0,0,0,5.37-5.37V5.37A5.37,5.37,0,0,0,222.83,0Z"}),(0,a.jsx)("path",{d:"M106,125.38a68,68,0,1,0,30,56.35A67.59,67.59,0,0,0,106,125.38Zm8.16,94.78-7.77,7.76L68,189.5,29.56,227.92l-7.77-7.76,38.42-38.43L21.79,143.31l7.77-7.77L68,174l38.42-38.42,7.77,7.77L75.75,181.73Z"})]}))},dn=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",width:"14",height:"13.088",viewBox:"0 0 14 13.088"},e),{},{children:(0,a.jsxs)("g",{id:"filter-icon.a949c200",transform:"translate(-231.827 -340.123)",children:[(0,a.jsx)("line",{id:"L\xednea_659","data-name":"L\xednea 659",x2:"14",transform:"translate(231.827 346.667)",fill:"none",stroke:"#434343",strokeWidth:"1"}),(0,a.jsxs)("g",{id:"Grupo_2472","data-name":"Grupo 2472",transform:"translate(240.693 344.614)",children:[(0,a.jsx)("circle",{id:"Elipse_611","data-name":"Elipse 611",cx:"2.053",cy:"2.053",r:"2.053",transform:"translate(0 0)",fill:"#fff"}),(0,a.jsx)("circle",{id:"Elipse_612","data-name":"Elipse 612",cx:"1.597",cy:"1.597",r:"1.597",transform:"translate(0.456 0.456)",fill:"none",stroke:"#414141",strokeWidth:"1"})]}),(0,a.jsx)("line",{id:"L\xednea_660","data-name":"L\xednea 660",x2:"14",transform:"translate(231.827 342.22)",fill:"none",stroke:"#434343",strokeWidth:"1"}),(0,a.jsxs)("g",{id:"Grupo_2473","data-name":"Grupo 2473",transform:"translate(232.394 340.167)",children:[(0,a.jsx)("circle",{id:"Elipse_613","data-name":"Elipse 613",cx:"2.053",cy:"2.053",r:"2.053",transform:"translate(0 0)",fill:"#fff"}),(0,a.jsx)("circle",{id:"Elipse_614","data-name":"Elipse 614",cx:"1.597",cy:"1.597",r:"1.597",transform:"translate(0.456 0.456)",fill:"none",stroke:"#414141",strokeWidth:"1"})]}),(0,a.jsx)("line",{id:"L\xednea_661","data-name":"L\xednea 661",x2:"14",transform:"translate(231.827 351.114)",fill:"none",stroke:"#434343",strokeWidth:"1"}),(0,a.jsxs)("g",{id:"Grupo_2474","data-name":"Grupo 2474",transform:"translate(235.161 349.061)",children:[(0,a.jsx)("circle",{id:"Elipse_615","data-name":"Elipse 615",cx:"2.053",cy:"2.053",r:"2.053",transform:"translate(0 0)",fill:"#fff"}),(0,a.jsx)("circle",{id:"Elipse_616","data-name":"Elipse 616",cx:"1.597",cy:"1.597",r:"1.597",transform:"translate(0.456 0.456)",fill:"none",stroke:"#414141",strokeWidth:"1"})]})]})}))},fn=function(e){return(0,a.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:(0,a.jsxs)("g",{transform:"translate(0 -0.853)",children:[(0,a.jsx)("path",{d:"M89.25,173.48c-2.67-.25-5.25-1.12-7.54-2.52-2.52-2.16-3.51-5.62-2.52-8.78l7.55-35.2L204.84,8.87C210.17,4.17,216.73,1.09,223.76,0c7.06-.19,13.88,2.53,18.86,7.54,10.33,11.14,9.77,28.52-1.26,38.97l-116.9,118.1-33.94,7.55-1.26,1.25v.07Zm12.58-37.71l-5.04,20.12,20.13-5.03L231.28,36.46c4.78-4.21,5.34-11.46,1.26-16.35-2.52-2.52-5.03-3.77-7.54-2.52-3.34-.09-6.56,1.3-8.8,3.78l-114.39,114.39h.01Z"}),(0,a.jsx)("path",{d:"M179.76,227.54H23.88C10.69,227.54,0,216.84,0,203.65V47.78c0-13.19,10.69-23.88,23.88-23.88H108.1v15.07H23.88c-4.46,.46-7.77,4.34-7.54,8.81V203.65c-.24,4.47,3.08,8.34,7.54,8.8H179.76c4.75,.12,8.69-3.63,8.81-8.38,0-.14,0-.28,0-.42v-49.03h16.33v49.03c-1.03,13.25-11.92,23.57-25.21,23.88h.07Z"})]})}))}},42209:function(e,t,n){"use strict";n.d(t,{FB:function(){return j},Kr:function(){return r},Mf:function(){return C},Mz:function(){return c},Nv:function(){return m},Og:function(){return b},ST:function(){return a},Tv:function(){return T},Wz:function(){return v},YK:function(){return l},YP:function(){return w},_X:function(){return S},_n:function(){return E},bC:function(){return A},cD:function(){return p},d5:function(){return M},f4:function(){return P},hN:function(){return _},hO:function(){return u},i9:function(){return Z},k7:function(){return h},l5:function(){return y},mx:function(){return i},p9:function(){return s},pK:function(){return x},qk:function(){return g},sP:function(){return f},sp:function(){return o},vw:function(){return d}});var r="ADD_BUCKET_OPEN",a="ADD_BUCKET_NAME",o="ADD_BUCKET_VERSIONED",i="ADD_BUCKET_LOCKING",s="ADD_BUCKET_QUOTA",l="ADD_BUCKET_QUOTA_TYPE",c="ADD_BUCKET_QUOTA_SIZE",u="ADD_BUCKET_QUOTA_UNIT",d="ADD_BUCKET_RESET",f="ADD_BUCKET_RETENTION",p="ADD_BUCKET_RETENTION_MODE",h="ADD_BUCKET_RETENTION_UNIT",m="ADD_BUCKET_RETENTION_VALIDITY",v="BUCKET_DETAILS/SET_TAB",g="BUCKET_DETAILS/LOADING",y="BUCKET_DETAILS/SET_INFO";function x(e){return{type:a,name:e}}function b(e){return{type:o,versioned:e}}function w(e){return{type:i,locking:e}}function _(e){return{type:s,quota:e}}function Z(e){return{type:l,quotaType:e}}function S(e){return{type:c,quotaSize:e}}function j(e){return{type:u,quotaUnit:e}}function E(e){return{type:f,retention:e}}function T(e){return{type:p,retentionMode:e}}function C(e){return{type:h,retentionUnit:e}}function A(e){return{type:m,retentionValidity:e}}var M=function(e){return{type:g,state:e}},P=function(e){return{type:y,info:e}}},37516:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(4942),a=n(1413),o=n(72791),i=n(11135),s=n(25787),l=n(63366),c=n(87462),u=n(28182),d=n(90767),f=n(12065),p=n(14036),h=n(97278),m=n(93736),v=n(47630),g=n(95159);function y(e){return(0,g.Z)("MuiSwitch",e)}var x=(0,n(30208).Z)("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),b=n(80184),w=["className","color","edge","size","sx"],_=(0,v.ZP)("span",{name:"MuiSwitch",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.edge&&t["edge".concat((0,p.Z)(n.edge))],t["size".concat((0,p.Z)(n.size))]]}})((function(e){var t,n=e.ownerState;return(0,c.Z)({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"}},"start"===n.edge&&{marginLeft:-8},"end"===n.edge&&{marginRight:-8},"small"===n.size&&(t={width:40,height:24,padding:7},(0,r.Z)(t,"& .".concat(x.thumb),{width:16,height:16}),(0,r.Z)(t,"& .".concat(x.switchBase),(0,r.Z)({padding:4},"&.".concat(x.checked),{transform:"translateX(16px)"})),t))})),Z=(0,v.ZP)(h.Z,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:function(e,t){var n=e.ownerState;return[t.switchBase,(0,r.Z)({},"& .".concat(x.input),t.input),"default"!==n.color&&t["color".concat((0,p.Z)(n.color))]]}})((function(e){var t,n=e.theme;return t={position:"absolute",top:0,left:0,zIndex:1,color:"light"===n.palette.mode?n.palette.common.white:n.palette.grey[300],transition:n.transitions.create(["left","transform"],{duration:n.transitions.duration.shortest})},(0,r.Z)(t,"&.".concat(x.checked),{transform:"translateX(20px)"}),(0,r.Z)(t,"&.".concat(x.disabled),{color:"light"===n.palette.mode?n.palette.grey[100]:n.palette.grey[600]}),(0,r.Z)(t,"&.".concat(x.checked," + .").concat(x.track),{opacity:.5}),(0,r.Z)(t,"&.".concat(x.disabled," + .").concat(x.track),{opacity:"light"===n.palette.mode?.12:.2}),(0,r.Z)(t,"& .".concat(x.input),{left:"-100%",width:"300%"}),t}),(function(e){var t,n=e.theme,a=e.ownerState;return(0,c.Z)({"&:hover":{backgroundColor:(0,f.Fq)(n.palette.action.active,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==a.color&&(t={},(0,r.Z)(t,"&.".concat(x.checked),(0,r.Z)({color:n.palette[a.color].main,"&:hover":{backgroundColor:(0,f.Fq)(n.palette[a.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(x.disabled),{color:"light"===n.palette.mode?(0,f.$n)(n.palette[a.color].main,.62):(0,f._j)(n.palette[a.color].main,.55)})),(0,r.Z)(t,"&.".concat(x.checked," + .").concat(x.track),{backgroundColor:n.palette[a.color].main}),t))})),S=(0,v.ZP)("span",{name:"MuiSwitch",slot:"Track",overridesResolver:function(e,t){return t.track}})((function(e){var t=e.theme;return{height:"100%",width:"100%",borderRadius:7,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:"light"===t.palette.mode?t.palette.common.black:t.palette.common.white,opacity:"light"===t.palette.mode?.38:.3}})),j=(0,v.ZP)("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:function(e,t){return t.thumb}})((function(e){return{boxShadow:e.theme.shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}})),E=o.forwardRef((function(e,t){var n=(0,m.Z)({props:e,name:"MuiSwitch"}),r=n.className,a=n.color,o=void 0===a?"primary":a,i=n.edge,s=void 0!==i&&i,f=n.size,h=void 0===f?"medium":f,v=n.sx,g=(0,l.Z)(n,w),x=(0,c.Z)({},n,{color:o,edge:s,size:h}),E=function(e){var t=e.classes,n=e.edge,r=e.size,a=e.color,o=e.checked,i=e.disabled,s={root:["root",n&&"edge".concat((0,p.Z)(n)),"size".concat((0,p.Z)(r))],switchBase:["switchBase","color".concat((0,p.Z)(a)),o&&"checked",i&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=(0,d.Z)(s,y,t);return(0,c.Z)({},t,l)}(x),T=(0,b.jsx)(j,{className:E.thumb,ownerState:x});return(0,b.jsxs)(_,{className:(0,u.Z)(E.root,r),sx:v,ownerState:x,children:[(0,b.jsx)(Z,(0,c.Z)({type:"checkbox",icon:T,checkedIcon:T,ref:t,ownerState:x},g,{classes:(0,c.Z)({},E,{root:E.switchBase})})),(0,b.jsx)(S,{className:E.track,ownerState:x})]})})),T=n(30829),C=n(20068),A=n(20890),M=n(61889),P=n(23814),k=n(84570),O=(0,s.Z)((function(e){return{root:{width:50,height:24,padding:0,margin:0},switchBase:{padding:1,"&$checked":{transform:"translateX(24px)",color:e.palette.common.white,"& + $track":{backgroundColor:"#4CCB92",boxShadow:"inset 0px 1px 4px rgba(0,0,0,0.1)",opacity:1,border:"none"}},"&$focusVisible $thumb":{color:"#4CCB92",border:"6px solid #fff"}},thumb:{width:22,height:22,backgroundColor:"#FAFAFA",border:"2px solid #FFFFFF",marginLeft:1},track:{borderRadius:12,backgroundColor:"#E2E2E2",boxShadow:"inset 0px 1px 4px rgba(0,0,0,0.1)",opacity:1,transition:e.transitions.create(["background-color","border"])},checked:{},focusVisible:{},switchContainer:{display:"flex",alignItems:"center",justifyContent:"flex-end"}}}))(E),R=(0,s.Z)((function(e){return(0,i.Z)((0,a.Z)((0,a.Z)({divContainer:{marginBottom:20},indicatorLabelOn:{fontWeight:"bold",color:"#081C42 !important"},indicatorLabel:{fontSize:12,color:"#E2E2E2",margin:"0 8px 0 10px"},fieldDescription:{marginTop:4,color:"#999999"},tooltip:{fontSize:16}},P.OR),P.YI))}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.onChange,s=e.value,l=e.id,c=e.name,d=e.checked,f=void 0!==d&&d,p=e.disabled,h=void 0!==p&&p,m=e.switchOnly,v=void 0!==m&&m,g=e.tooltip,y=void 0===g?"":g,x=e.description,w=void 0===x?"":x,_=e.classes,Z=e.indicatorLabels,S=e.extraInputProps,j=void 0===S?{}:S,E=(0,b.jsxs)(o.Fragment,{children:[!v&&(0,b.jsx)("span",{className:(0,u.Z)(_.indicatorLabel,(0,r.Z)({},_.indicatorLabelOn,!f)),children:Z&&Z.length>1?Z[1]:"OFF"}),(0,b.jsx)(O,{checked:f,onChange:i,color:"primary",name:c,inputProps:(0,a.Z)({"aria-label":"primary checkbox"},j),disabled:h,disableRipple:!0,disableFocusRipple:!0,disableTouchRipple:!0,value:s,id:l}),!v&&(0,b.jsx)("span",{className:(0,u.Z)(_.indicatorLabel,(0,r.Z)({},_.indicatorLabelOn,f)),children:Z?Z[0]:"ON"})]});return v?E:(0,b.jsx)("div",{className:_.divContainer,children:(0,b.jsxs)(M.ZP,{container:!0,alignItems:"center",children:[(0,b.jsx)(M.ZP,{item:!0,xs:12,sm:8,md:8,children:""!==n&&(0,b.jsxs)(T.Z,{htmlFor:l,className:_.inputLabel,children:[(0,b.jsx)("span",{children:n}),""!==y&&(0,b.jsx)("div",{className:_.tooltipContainer,children:(0,b.jsx)(C.Z,{title:y,placement:"top-start",children:(0,b.jsx)("div",{className:_.tooltip,children:(0,b.jsx)(k.Z,{})})})})]})}),(0,b.jsx)(M.ZP,{item:!0,xs:12,sm:4,md:4,textAlign:"right",justifyContent:"end",className:_.switchContainer,children:E}),""!==w&&(0,b.jsx)(M.ZP,{item:!0,xs:12,textAlign:"left",children:(0,b.jsx)(A.Z,{component:"p",className:_.fieldDescription,children:w})})]})})}))},21435:function(e,t,n){"use strict";var r=n(1413),a=n(72791),o=n(27391),i=n(61889),s=n(30829),l=n(20068),c=n(13400),u=n(11135),d=n(72455),f=n(25787),p=n(23814),h=n(84570),m=n(28182),v=n(80184),g=(0,d.Z)((function(e){return(0,u.Z)((0,r.Z)({},p.gM))}));function y(e){var t=g();return(0,v.jsx)(o.Z,(0,r.Z)({InputProps:{classes:t}},e))}t.Z=(0,f.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},p.YI),p.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}}}))}))((function(e){var t=e.label,n=e.onChange,o=e.value,u=e.id,d=e.name,f=e.type,p=void 0===f?"text":f,g=e.autoComplete,x=void 0===g?"off":g,b=e.disabled,w=void 0!==b&&b,_=e.multiline,Z=void 0!==_&&_,S=e.tooltip,j=void 0===S?"":S,E=e.index,T=void 0===E?0:E,C=e.error,A=void 0===C?"":C,M=e.required,P=void 0!==M&&M,k=e.placeholder,O=void 0===k?"":k,R=e.min,N=e.max,z=e.overlayId,I=e.overlayIcon,L=void 0===I?null:I,D=e.overlayObject,B=void 0===D?null:D,H=e.extraInputProps,F=void 0===H?{}:H,U=e.overlayAction,V=e.noLabelMinWidth,G=void 0!==V&&V,W=e.pattern,q=void 0===W?"":W,K=e.autoFocus,$=void 0!==K&&K,Y=e.classes,Q=e.className,J=void 0===Q?"":Q,X=e.onKeyPress,ee=(0,r.Z)({"data-index":T},F);return"number"===p&&R&&(ee.min=R),"number"===p&&N&&(ee.max=N),""!==q&&(ee.pattern=q),(0,v.jsx)(a.Fragment,{children:(0,v.jsxs)(i.ZP,{container:!0,className:(0,m.Z)(""!==J?J:"",""!==A?Y.errorInField:Y.inputBoxContainer),children:[""!==t&&(0,v.jsxs)(s.Z,{htmlFor:u,className:G?Y.noMinWidthLabel:Y.inputLabel,children:[(0,v.jsxs)("span",{children:[t,P?"*":""]}),""!==j&&(0,v.jsx)("div",{className:Y.tooltipContainer,children:(0,v.jsx)(l.Z,{title:j,placement:"top-start",children:(0,v.jsx)("div",{className:Y.tooltip,children:(0,v.jsx)(h.Z,{})})})})]}),(0,v.jsxs)("div",{className:Y.textBoxContainer,children:[(0,v.jsx)(y,{id:u,name:d,fullWidth:!0,value:o,autoFocus:$,disabled:w,onChange:n,type:p,multiline:Z,autoComplete:x,inputProps:ee,error:""!==A,helperText:A,placeholder:O,className:Y.inputRebase,onKeyPress:X}),L&&(0,v.jsx)("div",{className:"".concat(Y.overlayAction," ").concat(""!==t?"withLabel":""),children:(0,v.jsx)(c.Z,{onClick:U?function(){U()}:function(){return null},id:z,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:L})}),B&&(0,v.jsx)("div",{className:"".concat(Y.overlayAction," ").concat(""!==t?"withLabel":""),children:B})]})]})})}))},56578:function(e,t,n){"use strict";var r=n(29439),a=n(72791),o=n(11135),i=n(25787),s=n(71715),l=n(23786),c=n(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)({buttonTrigger:{border:"#F0F2F2 1px solid",borderRadius:3,color:"#838383",backgroundColor:"#fff",fontSize:12}})}))((function(e){var t=e.classes,n=e.id,o=e.unitSelected,i=e.unitsList,u=e.disabled,d=void 0!==u&&u,f=e.onUnitChange,p=a.useState(null),h=(0,r.Z)(p,2),m=h[0],v=h[1],g=Boolean(m),y=function(e){v(null),""!==e&&f&&f(e)};return(0,c.jsxs)(a.Fragment,{children:[(0,c.jsx)("button",{id:"".concat(n,"-button"),"aria-controls":"".concat(n,"-menu"),"aria-haspopup":"true","aria-expanded":g?"true":void 0,onClick:function(e){v(e.currentTarget)},className:t.buttonTrigger,disabled:d,type:"button",children:o}),(0,c.jsx)(s.Z,{id:"".concat(n,"-menu"),"aria-labelledby":"".concat(n,"-button"),anchorEl:m,open:g,onClose:function(){y("")},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:i.map((function(e){return(0,c.jsx)(l.Z,{onClick:function(){return y(e.value)},children:e.label},"itemUnit-".concat(e.value,"-").concat(e.label))}))})]})}))},90673:function(e,t,n){"use strict";var r=n(1413),a=n(72791),o=n(61889),i=n(4834),s=n(30829),l=n(20068),c=n(68096),u=n(58406),d=n(23786),f=n(11135),p=n(25787),h=n(23814),m=n(84570),v=n(80184),g=(0,p.Z)((function(e){return(0,f.Z)({root:{height:38,lineHeight:1,"label + &":{marginTop:e.spacing(3)}},input:{height:38,position:"relative",color:"#07193E",fontSize:13,fontWeight:600,padding:"8px 20px 10px 10px",border:"#e5e5e5 1px solid",borderRadius:4,display:"flex",alignItems:"center","&:hover":{borderColor:"#393939"},"&:focus":{backgroundColor:"#fff"}}})}))(i.ZP);t.Z=(0,p.Z)((function(e){return(0,f.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},h.YI),h.Hr),{},{fieldContainer:{display:"flex","@media (max-width: 600px)":{flexFlow:"column"}}}))}))((function(e){var t=e.classes,n=e.id,r=e.name,i=e.onChange,f=e.options,p=e.label,h=e.tooltip,y=void 0===h?"":h,x=e.value,b=e.disabled,w=void 0!==b&&b;return(0,v.jsx)(a.Fragment,{children:(0,v.jsxs)(o.ZP,{item:!0,xs:12,className:t.fieldContainer,children:[""!==p&&(0,v.jsxs)(s.Z,{htmlFor:n,className:t.inputLabel,children:[(0,v.jsx)("span",{children:p}),""!==y&&(0,v.jsx)("div",{className:t.tooltipContainer,children:(0,v.jsx)(l.Z,{title:y,placement:"top-start",children:(0,v.jsx)("div",{className:t.tooltip,children:(0,v.jsx)(m.Z,{})})})})]}),(0,v.jsx)(c.Z,{fullWidth:!0,children:(0,v.jsx)(u.Z,{id:n,name:r,value:x,onChange:i,input:(0,v.jsx)(g,{}),disabled:w,children:f.map((function(e){return(0,v.jsx)(d.Z,{value:e.value,children:e.label},"select-".concat(r,"-").concat(e.label))}))})})]})})}))},23814:function(e,t,n){"use strict";n.d(t,{$b:function(){return V},AK:function(){return j},Bw:function(){return O},Bz:function(){return f},C4:function(){return G},DF:function(){return I},FU:function(){return d},Hr:function(){return s},ID:function(){return F},IX:function(){return M},Je:function(){return y},NP:function(){return w},OR:function(){return p},QV:function(){return H},Qw:function(){return D},Rp:function(){return Z},S:function(){return B},SJ:function(){return k},Si:function(){return E},VI:function(){return U},VX:function(){return N},YI:function(){return o},bK:function(){return z},bN:function(){return _},bV:function(){return L},bl:function(){return R},bp:function(){return T},cx:function(){return v},fc:function(){return x},gM:function(){return A},jY:function(){return g},lM:function(){return c},o$:function(){return b},oO:function(){return i},oZ:function(){return C},qg:function(){return h},sN:function(){return S},xS:function(){return W},xx:function(){return m}});var r=n(1413),a={fontWeight:600,marginRight:10,fontSize:14,color:"#07193E",textAlign:"left",overflow:"hidden",alignItems:"center",display:"flex","& span":{display:"flex",alignItems:"center"}},o={inputLabel:(0,r.Z)((0,r.Z)({},a),{},{minWidth:160}),noMinWidthLabel:(0,r.Z)({},a),fieldLabelError:{paddingBottom:22},fieldContainer:{marginBottom:20,position:"relative",display:"flex",flexWrap:"wrap","@media (max-width: 600px)":{flexFlow:"column"}},tooltipContainer:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},switchContainer:{display:"flex",maxWidth:840}},i={formScrollable:{maxHeight:"calc(100vh - 300px)",overflowY:"auto",marginBottom:25},formSlider:{marginLeft:0},clearButton:{fontFamily:"Lato, sans-serif",border:"0",backgroundColor:"transparent",color:"#393939",fontWeight:600,fontSize:14,marginRight:10,outline:"0",padding:"16px 25px 16px 25px",cursor:"pointer"},floatingEnabled:{position:"absolute",right:58,zIndex:1e3,marginTop:-38},configureString:{border:"#EAEAEA 1px solid",borderRadius:4,padding:"24px 50px",overflowY:"auto",height:170,backgroundColor:"#FBFAFA"},moduleDescription:{color:"#848484",fontSize:12,fontStyle:"italic"}},s={tooltip:{"& .min-icon":{width:13}}},l={width:16,height:16,borderRadius:2},c={unCheckedIcon:(0,r.Z)((0,r.Z)({},l),{},{border:"1px solid #c3c3c3",boxShadow:"inset 0px 1px 3px rgba(0,0,0,0.1)"}),checkedIcon:(0,r.Z)((0,r.Z)({},l),{},{border:"1px solid #FFFFFF",backgroundColor:"#4CCB92",boxShadow:"inset 0px 1px 3px rgba(0,0,0,0.1)",width:14,height:14,marginLeft:1,"&:before":{content:"''",display:"block",marginLeft:-2,marginTop:-2,width:16,height:16,top:0,bottom:0,left:0,right:0,borderRadius:2,border:"1px solid #ccc"}})},u={width:16,height:16,borderRadius:"100%","input:disabled ~ &":{border:"1px solid #E5E5E5"},padding:1},d={radioUnselectedIcon:(0,r.Z)((0,r.Z)({},u),{},{border:"2px solid #E5E5E5"}),radioSelectedIcon:(0,r.Z)((0,r.Z)({},u),{},{border:"2px solid #E5E5E5",backgroundColor:"#072C4F"})},f=function(e){return{container:{position:"relative",maxWidth:1180,padding:"20px 35px 0","& h6":{color:"#777777",fontSize:30},"& p":{"& span:not(*[class*='smallUnit'])":{fontSize:16}}},sectionTitle:{margin:0,marginBottom:".8rem",fontSize:"1.3rem"},topSpacer:{height:"8px"},boxy:{border:"#E5E5E5 1px solid",borderRadius:2,padding:40,backgroundColor:"#fff"}}},p={filterTitle:{color:"#848484",fontSize:13,alignSelf:"center",whiteSpace:"nowrap","&:not(:first-of-type)":{marginLeft:10}},label:{color:"#07193E",fontSize:13,alignSelf:"center",whiteSpace:"nowrap","&:not(:first-of-type)":{marginLeft:10}},timeContainers:{display:"flex","& button":{flexGrow:0,marginLeft:15},height:40,maxWidth:1185,marginBottom:15,justifyContent:"flex-start","& > *":{marginRight:15}},actionsTray:{display:"flex",justifyContent:"space-between",marginBottom:"1rem",alignItems:"center","& button":{flexGrow:0,marginLeft:8}},filterContainer:{backgroundColor:"#fff",border:"#EEF1F4 2px solid",borderRadius:2,display:"flex",alignItems:"center",padding:"0 12px"},divisorLine:{borderRight:"#EEF1F4 1px solid",height:20,margin:"0 15px"}},h={searchField:{flexGrow:1,height:38,background:"#FFFFFF",borderRadius:3,border:"#EAEDEE 1px solid",display:"flex",justifyContent:"center",padding:"0 16px","& label, & label.MuiInputLabel-shrink":{fontSize:10,transform:"translate(5px, 2px)",transformOrigin:"top left"},"& input":{fontSize:12,fontWeight:700,color:"#000","&::placeholder":{color:"#858585",opacity:1,fontWeight:400}},"&:hover":{borderColor:"#000"},"& .min-icon":{width:16,height:16},"&:focus-within":{borderColor:"rgba(0, 0, 0, 0.87)"}}},m={prefinedContainer:{display:"flex",width:"100%",alignItems:"center",margin:"15px 0 0"},predefinedTitle:{color:"rgba(0, 0, 0, 0.87)",display:"flex",overflow:"hidden",fontSize:14,maxWidth:160,textAlign:"left",marginRight:10,flexGrow:0,fontWeight:"normal"},predefinedList:{backgroundColor:"#fbfafa",border:"#e5e5e5 1px solid",padding:"12px 10px",color:"#696969",fontSize:12,fontWeight:600,minHeight:41,borderRadius:4},innerContent:{width:"100%",overflowX:"auto",whiteSpace:"nowrap",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},innerContentMultiline:{width:"100%",maxHeight:100,overflowY:"auto",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},v={obTitleSection:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:20},sectionTitle:{fontSize:22,color:"#000",fontWeight:600,height:40,lineHeight:"40px"},breadcrumbsMain:{display:"flex"},breadcrumbs:{fontSize:12,color:"#969FA8",fontWeight:"bold",border:"#EAEDEE 1px solid",height:38,display:"flex",alignItems:"center",backgroundColor:"#FCFCFD",marginRight:10,"& a":{textDecoration:"none",color:"#969FA8","&:hover":{textDecoration:"underline"}},"& .min-icon":{width:16,minWidth:16}},additionalOptions:{paddingRight:"10px",display:"flex",alignItems:"center"},smallLabel:{color:"#9C9C9C",fontSize:15},bucketDetails:{marginLeft:10,fontSize:14,color:"#969FA8"},detailsSpacer:{marginRight:18},breadcrumbsList:{textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",display:"inline-block",flexGrow:1,textAlign:"left",marginLeft:15,marginRight:10}},g={multiSelectTable:{height:200}},y={customTitle:{fontSize:18,color:"#000",fontWeight:600,padding:"12px 0",borderBottom:"#eaedee 1px solid",marginBottom:10,margin:"15px 38px 27px"},settingsFormContainer:{padding:38,overflowY:"auto",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},settingsButtonContainer:{padding:"15px 38px",textAlign:"right"},innerSettingsButtonContainer:{maxWidth:840,textAlign:"right"},settingsOptionsContainer:{height:"calc(100vh - 244px)",backgroundColor:"#fff",border:"#EAEDEE 1px solid",borderRadius:3,marginTop:15},backButton:{cursor:"pointer",fontSize:10,fontWeight:600,color:"#000",backgroundColor:"transparent",border:0,padding:0,display:"flex",alignItems:"center","&:active, &:focus":{outline:0},"& svg":{width:10,marginRight:4}},backContainer:{margin:"20px 38px 0"},mainCont:{paddingLeft:50,paddingRight:50},mainTitle:{fontSize:18,color:"#000",fontWeight:600,marginBottom:10,marginTop:10}},x={iconContainer:{display:"flex",flexDirection:"row",maxWidth:1180,justifyContent:"start",flexWrap:"wrap",width:"100%"},nonIconContainer:{marginBottom:16,width:455,marginTop:15,"& button":{marginRight:16}},pickTitle:{fontWeight:600,color:"#393939",fontSize:14,marginBottom:16},centerElements:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},logoButton:{height:"80px"},lambdaNotif:{background:"#ffffff",border:"#E5E5E5 1px solid",borderRadius:5,width:250,height:80,display:"flex",alignItems:"center",justifyContent:"start",marginBottom:16,marginRight:8,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}},b={logsSubContainer:{height:"calc(100vh - 230px)",padding:"15px 0"}},w={singleValueContainer:{height:200,maxWidth:1185,border:"#eef1f4 2px solid",backgroundColor:"#fff",borderRadius:10,width:"100%",padding:16},titleContainer:{color:"#404143",fontSize:14,textTransform:"uppercase",fontWeight:800,borderBottom:"#eef1f4 1px solid",paddingBottom:14,marginBottom:5,display:"flex",justifyContent:"space-between"},contentContainer:{justifyContent:"center",alignItems:"center",display:"flex",width:"100%",height:140},contentContainerWithLabel:{height:"calc(100% - 25px)"},legendBlock:{position:"absolute",bottom:5,display:"flex",width:"100%",height:15,flexWrap:"wrap",overflowY:"auto"},singleLegendContainer:{display:"flex",alignItems:"center",padding:"0 10px",maxWidth:"100%"},colorContainer:{width:8,height:8,minWidth:8,marginRight:5},legendLabel:{fontSize:"80%",color:"#393939",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},zoomChartCont:{position:"relative",height:340,width:"100%"},zoomChartIcon:{backgroundColor:"transparent",border:0,padding:0,cursor:"pointer","& svg":{color:"#D0D0D0",height:16},"&:hover":{"& svg":{color:"#404143"}}}},_={widgetPanelDelimiter:{padding:10},dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",maxWidth:1180}},Z={customTooltip:{backgroundColor:"rgba(255, 255, 255, 0.90)",border:"#eaeaea 1px solid",borderRadius:3,padding:"5px 10px",maxHeight:300,overflowY:"auto"},labelContainer:{display:"flex",alignItems:"center"},labelColor:{width:6,height:6,display:"block",borderRadius:"100%",marginRight:5},itemValue:{fontSize:"75%",color:"#393939"},valueContainer:{fontWeight:600},timeStampTitle:{fontSize:"80%",color:"#9c9c9c",textAlign:"center",marginBottom:6}},S={snackBar:{backgroundColor:"#081F44",fontWeight:400,fontFamily:"Lato, sans-serif",fontSize:14,padding:"0px 20px 0px 20px;",boxShadow:"none","&.MuiPaper-root.MuiSnackbarContent-root":{borderRadius:"0px 0px 5px 5px"},"& div":{textAlign:"center",padding:"6px 30px",width:"100%",overflowX:"hidden",textOverflow:"ellipsis"}},errorSnackBar:{backgroundColor:"#C72C48",color:"#fff"},snackBarExternal:{top:-1,height:33,position:"fixed",minWidth:348,whiteSpace:"nowrap",left:0,width:"100%",justifyContent:"center"},snackDiv:{top:"17px",left:"50%",position:"absolute"},snackBarModal:{top:0,position:"absolute",minWidth:"348px",whiteSpace:"nowrap",height:"33px",width:"100%",justifyContent:"center",left:0}},j={multiContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start"},sizeFactorContainer:{marginLeft:8,alignSelf:"flex-start"},headerElement:{position:"sticky",top:0,paddingTop:5,marginBottom:10,zIndex:500,backgroundColor:"#fff"},tableTitle:{fontWeight:700,width:"30%"},poolError:{color:"#dc1f2e",fontSize:"0.75rem",paddingLeft:120},error:{color:"#dc1f2e",fontSize:"0.75rem"},h3Section:{marginTop:0,margin:0},descriptionText:{fontSize:14},container:{padding:"77px 0 0 0","& h6":{color:"#777777",fontSize:14},"& p":{"& span:not(*[class*='smallUnit'])":{fontSize:16}}},paperWrapper:{padding:12,border:0}},E={anchorButton:{textDecoration:"underline",textTransform:"unset",fontWeight:"normal",padding:0,lineHeight:"unset",height:"unset",width:"unset",textAlign:"left",border:0,minWidth:"unset"}},T={hrClass:{borderTop:0,borderLeft:0,borderRight:0,borderColor:"#999999",backgroundColor:"transparent"}},C=(0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right"},multiContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start"},sizeFactorContainer:{marginLeft:8},containerHeader:{display:"flex",justifyContent:"space-between"},paperContainer:{padding:"15px 15px 15px 50px"},infoGrid:{display:"grid",gridTemplateColumns:"auto auto auto auto",gridGap:8,"& div":{display:"flex",alignItems:"center"},"& div:nth-child(odd)":{justifyContent:"flex-end",fontWeight:700},"& div:nth-child(2n)":{paddingRight:35}},masterActions:{width:"25%",minWidth:"120px","& div":{margin:"5px 0px"}},updateButton:{backgroundColor:"transparent",border:0,padding:"0 6px",cursor:"pointer","&:focus, &:active":{outline:"none"},"& svg":{height:12}},poolLabel:{color:"#666666"},titleCol:{fontWeight:700},breadcrumLink:{textDecoration:"none",color:"black"},healthCol:{fontWeight:700,paddingRight:"10px"}},i),p),E),h),T),{},{actionsTray:(0,r.Z)((0,r.Z)({},p.actionsTray),{},{padding:"15px 0 0"})}),A={root:{borderRadius:3,"&::before":{borderColor:"#9c9c9c"},"& fieldset":{borderColor:"#e5e5e5"},"&:hover fieldset":{borderColor:"#07193E"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"&.Mui-error + p":{marginLeft:3}},disabled:{"&.MuiOutlinedInput-root::before":{borderColor:"#e5e5e5",borderBottomStyle:"solid",borderRadius:3}},input:{height:38,padding:"0 35px 0 15px",color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}},error:{color:"#b53b4b"}},M={inlineCheckboxes:{display:"flex",justifyContent:"flex-start"}},P={marginRight:10,lineHeight:1,display:"inline-flex",marginTop:6},k={cardIconContainer:{display:"flex",position:"relative",alignItems:"center"},stateContainer:{display:"flex",flexWrap:"wrap",justifyContent:"flex-start"},infoValue:{fontWeight:500,color:"#07193E",fontSize:16,margin:"8px 40px 5px 0",display:"inline-flex","& strong":{marginRight:4},"& .min-icon":{width:20,height:20},alignItems:"center"},redState:(0,r.Z)({color:"#F55B5B"},P),greenState:(0,r.Z)({color:"#9FF281"},P),yellowState:(0,r.Z)({color:"#F7A25A"},P),greyState:(0,r.Z)({color:"grey"},P),healthStatusIcon:{position:"absolute",fontSize:8,left:18,height:10,bottom:2,marginRight:10,"& .min-icon":{width:5,height:5}},innerState:{fontSize:8,display:"flex",alignItems:"center",marginTop:-3,"& .min-icon":{marginTop:5,width:10,height:10}},cardContainer:{borderRadius:10,boxShadow:"0 0 15px #00000029",maxWidth:1185,marginBottom:30},cardHeader:{"& .MuiCardHeader-title":{fontWeight:"bolder"}},cardNumber:{color:"#848484",fontSize:16,fontWeight:400,marginBottom:10},referenceTitle:{display:"flex",alignItems:"center",lineHeight:1,fontWeight:"bold","& .min-icon":{width:10,height:10,marginTop:-5}}},O={contentSpacer:{padding:"2rem"}},R={jsonPolicyEditor:{minHeight:400,width:"100%"},buttonContainer:{textAlign:"right"},infoDetails:{color:"#393939",fontSize:12,fontStyle:"italic",marginBottom:"8px"},containerScrollable:{maxHeight:"calc(100vh - 200px)",overflowY:"auto"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}},stackedInputs:{display:"flex",gap:15,paddingBottom:"1rem",paddingLeft:"1rem",flexFlow:"column"},buttonSpacer:{marginRight:"1rem"}},N={tableBlock:{display:"flex",flexDirection:"row","& .ReactVirtualized__Table__headerRow.rowLine, .ReactVirtualized__Table__row.rowLine":{borderBottom:"1px solid #EAEAEA"},"& .rowLine:hover:not(.ReactVirtualized__Table__headerRow)":{backgroundColor:"#F8F8F8"},"& .ReactVirtualized__Table__row.rowLine":{fontSize:".8rem"},"& .optionsAlignment ":{textAlign:"right","& .MuiButtonBase-root":{backgroundColor:"#F8F8F8"},"&:hover":{backgroundColor:"#E2E2E2"},"& .min-icon":{width:13,margin:3}}}},z={spacerRight:{marginRight:".9rem"},spacerLeft:{marginLeft:".9rem"},spacerBottom:{marginBottom:".9rem"},spacerTop:{marginTop:".9rem"}},I={formFieldRow:{marginBottom:".8rem","& .MuiInputLabel-root":{fontWeight:"normal"}}},L={fieldBottom:{borderBottom:0},fileReselect:{border:"1px solid #EAEAEA",width:"100%",paddingLeft:10,display:"flex",alignItems:"center",justifyContent:"center",height:36,maxWidth:300},textBoxContainer:{border:"1px solid #EAEAEA",borderRadius:3,height:36,padding:5,"& input":{width:"100%",margin:"auto"},display:"flex",alignItems:"center",justifyContent:"center",maxWidth:300}},D={root:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},title:{display:"flex",alignItems:"center",justifyContent:"space-between"},titleText:{fontSize:"1rem",fontWeight:600,display:"flex",alignItems:"center","& svg":{marginRight:10}},closeContainer:{"& .MuiIconButton-root":{top:-20,left:30,position:"relative",padding:1,"&:focus, &:hover":{background:"#EAEAEA"}},"& .min-icon":{height:16,width:16}}},B={advancedButton:{flexGrow:1,alignItems:"flex-end",display:"flex",justifyContent:"flex-end"},advancedConfiguration:{color:"#2781B0",fontSize:10,textDecoration:"underline",border:"none",backgroundColor:"transparent",cursor:"pointer",alignItems:"center",display:"flex",float:"right","&:hover":{color:"#07193E"},"& svg":{width:10,alignSelf:"center",marginLeft:5}},advancedOpen:{transform:"rotateZ(-90deg) translateX(-4px) translateY(2px)"},advancedClosed:{transform:"rotateZ(90deg)"}},H={fieldGroup:{border:"1px solid #EAEAEA",paddingTop:15},descriptionText:{fontSize:14}},F={modalButtonBar:{marginTop:15,display:"flex",alignItems:"center",justifyContent:"flex-end","& button":{marginRight:10},"& button:last-child":{marginRight:0}},modalFormScrollable:{maxHeight:"calc(100vh - 300px)",overflowY:"auto",paddingTop:10}},U={textMuted:{color:"#8399AB"}},V={metadataLinear:{marginBottom:15,fontSize:14,maxHeight:180,overflowY:"auto"},hrClass:{borderTop:0,borderLeft:0,borderRight:0,borderColor:"#E2E2E2",backgroundColor:"transparent"},sectionTitle:{fontSize:18,color:"#000",fontWeight:"bold",borderBottom:"#E2E2E2 1px solid",margin:"10px 22px",paddingBottom:18,width:"100%"},detailContainer:{padding:"0 22px",marginBottom:20,fontSize:14},titleLabel:{fontSize:14,fontWeight:"bold",color:"#000",padding:"12px 30px 8px 22px",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",alignItems:"center"},objectActions:{backgroundColor:"#F8F8F8",border:"#F1F1F1 1px solid",borderRadius:3,margin:"8px 22px",padding:0,color:"#696969","& li":{listStyle:"none",padding:6,margin:0,borderBottom:"#E5E5E5 1px solid",fontSize:14,"&:first-of-type":{padding:10,fontWeight:"bold",color:"#000"},"&:last-of-type":{borderBottom:0}}}},G={listIcon:{display:"block",marginTop:"-10px","& .min-icon":{width:20,height:20}},titleSpacer:{marginLeft:10}},W={deleted:{color:"#ACACAC",backgroundColor:"#FDFDFD",fontStyle:"italic"}}},72401:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(1413),a=(n(72791),n(80184)),o=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280 280",shapeRendering:"geometricPrecision",textRendering:"geometricPrecision",className:"min-loader"},e),{},{children:[(0,a.jsx)("g",{id:"eB8dk2fHKWC2_tr",transform:"translate(139.785027,140.086989) rotate(45.236493)",children:(0,a.jsx)("g",{id:"eB8dk2fHKWC2_ts",transform:"scale(1,0.995019)",children:(0,a.jsxs)("g",{id:"eB8dk2fHKWC2",transform:"translate(-127.784998,-128.086989)",children:[(0,a.jsx)("g",{children:(0,a.jsx)("path",{id:"eB8dk2fHKWC4",d:"M85.4,249.8c23.68,5.5,48.32,7.57,72.25,2.34c24-5.25,45.3-18.59,61.62-36.79c8.57-9.56-5.53-23.75-14.14-14.14-14.23,15.89-31.86,27.05-52.79,31.65-20.31,4.46-41.55,2.33-61.61-2.34-12.54-2.91-17.88,16.36-5.33,19.28c0,0,0,0,0,0Z",fill:"#113053"})}),(0,a.jsx)("g",{children:(0,a.jsx)("path",{id:"eB8dk2fHKWC6",d:"M249.74,169.63c5.5-23.68,7.57-48.32,2.34-72.25-5.25-24-18.59-45.3-36.79-61.62-9.56-8.57-23.75,5.53-14.14,14.14c15.89,14.23,27.05,31.86,31.65,52.79c4.46,20.31,2.33,41.55-2.34,61.61-2.92,12.54,16.36,17.88,19.28,5.33c0,0,0,0,0,0Z",fill:"#113053"})}),(0,a.jsx)("g",{children:(0,a.jsx)("path",{id:"eB8dk2fHKWC8",d:"M171.68,7.71c-23.51-6.2-48.07-8.99-72.15-4.46C75.39,7.79,53.7,20.49,36.85,38.21c-8.84,9.31,4.83,23.9,13.72,14.55c14.7-15.46,32.65-26.1,53.7-30.08c20.43-3.86,41.6-1.1,61.52,4.15c12.43,3.28,18.35-15.83,5.89-19.12c0,0,0,0,0,0Z",fill:"#113053"})}),(0,a.jsx)("g",{children:(0,a.jsx)("path",{id:"eB8dk2fHKWC10",d:"M5.83,85.46c-5.5,23.68-7.57,48.32-2.34,72.25c5.25,24,18.59,45.3,36.79,61.62c9.56,8.57,23.75-5.53,14.14-14.14-15.89-14.23-27.05-31.86-31.65-52.79-4.46-20.31-2.33-41.55,2.34-61.61C28.03,78.25,8.75,72.91,5.83,85.46v0Z",transform:"translate(.194904 0.217549)",fill:"#113053"})})]})})}),(0,a.jsx)("g",{id:"eB8dk2fHKWC11_ts",transform:"translate(139.784999,140.086986) scale(1,1)",children:(0,a.jsx)("g",{id:"eB8dk2fHKWC11",transform:"translate(-127.999996,-128.000003)",opacity:"0",children:(0,a.jsx)("path",{d:"M234.23,128c0-58.67-47.56-106.23-106.23-106.23s-106.23,47.56-106.23,106.23s47.56,106.23,106.23,106.23c58.64-.06,106.17-47.59,106.23-106.23m21.25,0c0,70.4-57.07,127.48-127.48,127.48s-127.48-57.08-127.48-127.48s57.08-127.48,127.48-127.48s127.48,57.08,127.48,127.48Z",fill:"#113053"})})}),(0,a.jsx)("g",{id:"eB8dk2fHKWC13_tr",transform:"translate(139.785004,140.086979) rotate(0)",children:(0,a.jsx)("g",{id:"eB8dk2fHKWC13",transform:"translate(-127.999968,-127.995139)",opacity:"0",children:(0,a.jsx)("path",{d:"M128,0.47h.33c.36,0,.73,0,1.09.01h.17c5.45.09,9.79,4.57,9.73,10.02-.07,5.51-4.57,9.93-10.07,9.91h-1.24c-5.51-.04-9.96-4.51-9.96-10.02-.01-5.45,4.39-9.88,9.84-9.91h.11ZM245.62,118.39h.03c5.45.01,9.86,4.42,9.88,9.87c0,.04,0,.08,0,.12v0c0,.12,0,.24,0,.36v0c0,.01,0,.03,0,.04v.09c0,.37,0,.73-.01,1.09-.11,5.45-4.6,9.78-10.05,9.7-5.51-.08-9.92-4.6-9.88-10.1l.01-1.24c.06-5.49,4.52-9.92,10.02-9.93ZM126.01,235.58h.12l1.24.01c5.51.07,9.93,4.57,9.9,10.08-.04,5.48-4.51,9.89-9.99,9.85-.01,0-.02,0-.03,0h-.46-.19l-.82-.01h-.12c-5.45-.12-9.77-4.63-9.67-10.07.09-5.47,4.55-9.85,10.02-9.86ZM10.4,115.63h.2c5.51.12,9.89,4.65,9.82,10.16l-.02,1.24c-.09,5.5-4.59,9.91-10.1,9.88-5.45-.04-9.85-4.47-9.83-9.93c0-.04,0-.08,0-.12v0c0-.36,0-.73.01-1.09v-.09v0c0-.13,0-.27.01-.41.14-5.37,4.54-9.64,9.91-9.64Z",fill:"#113053"})})})]}))}},28057:function(e,t,n){"use strict";var r,a=n(29439),o=n(72791),i=n(60364),s=n(26181),l=n.n(s),c=n(42649),u=n(64554),d=n(93656),f=n(96174),p=n(80184),h=function(e){r=setInterval(e,1e4)},m=function(){clearInterval(r)},v={displayErrorMessage:c.Ih},g=(0,i.$j)((function(e,t){return{snackBar:t.isModal?e.system.modalSnackBar:e.system.snackBar}}),v);t.Z=g((function(e){var t=e.snackBar,n=e.displayErrorMessage,i=(e.isModal,(0,o.useState)(!1)),s=(0,a.Z)(i,2),c=s[0],v=s[1],g=(0,o.useCallback)((function(){v(!1)}),[]);(0,o.useEffect)((function(){c||(n({detailedError:"",errorMessage:""}),clearInterval(r))}),[n,c]),(0,o.useEffect)((function(){""!==t.message&&"error"===t.type&&(v(!0),h(g))}),[g,t.message,t.type]);var y=l()(t,"message",""),x=l()(t,"detailedErrorMsg","");return"error"!==t.type||""===y?null:(0,p.jsx)(f.Z,{children:(0,p.jsxs)(u.Z,{sx:{"&.alert":{border:0,left:0,right:0,top:0,height:"75px",position:"fixed",color:"#ffffff",padding:"0 30px 0 30px",zIndex:1e4,display:"flex",justifyContent:"center",alignItems:"center",fontWeight:600,backgroundColor:"#C72C48",opacity:0,width:"100%","&.show":{opacity:1}},"& .message-text":{flex:2,fontSize:"14px",textAlign:{md:"center",xs:"left"}},"& .close-btn-container":{cursor:"pointer",border:0,display:"flex",alignItems:"center",justifyContent:"center",height:"100%",marginLeft:{sm:"0px",xs:"10px"},"& .close-btn":{display:"flex",alignItems:"center",justifyContent:"center",height:"23px",width:"23px",borderRadius:"50%",border:0,backgroundColor:"transparent",cursor:"pointer","&:hover,&:focus":{border:0,outline:0,backgroundColor:"#ba0202"},"& .min-icon":{height:"11px",width:"11px",fill:"#ffffff"}}}},onMouseOver:m,onMouseLeave:function(){return h(g)},className:"alert ".concat(c?"show":""),children:[(0,p.jsx)("div",{className:"message-text",children:x||"".concat(y,".")}),(0,p.jsx)("div",{className:"close-btn-container",children:(0,p.jsx)("button",{className:"close-btn",autoFocus:!0,onClick:g,children:(0,p.jsx)(d.eE,{})})})]})})}))},72858:function(e,t,n){"use strict";n.d(t,{N1:function(){return r},cM:function(){return a},jv:function(){return i},xG:function(){return o}});var r="DASHBOARD/OPEN_ZOOM",a="DASHBOARD/CLOSE_ZOOM";function o(e){return{type:r,widget:e}}function i(){return{type:a}}},91431:function(e,t,n){"use strict";n.d(t,{$P:function(){return r},X8:function(){return a},Xp:function(){return i},ec:function(){return o}});var r="HEALTH_INFO_MESSAGE_RECEIVED",a="HEALTH_INFO_RESET_MESSAGE";function o(e){return{type:r,message:e}}function i(){return{type:a}}},63722:function(e,t,n){"use strict";n.d(t,{C1:function(){return o},JL:function(){return r},Qo:function(){return i},i1:function(){return s},me:function(){return a},v0:function(){return l}});var r="LOG_MESSAGE_RECEIVED",a="LOG_RESET_MESSAGES",o="LOG_SET_STARTED";function i(e){return{type:r,message:e}}function s(){return{type:a}}function l(e){return{type:o,status:e}}},3925:function(e,t,n){"use strict";n.d(t,{BI:function(){return g},CL:function(){return v},Eq:function(){return R},G4:function(){return M},GW:function(){return s},JR:function(){return a},Jt:function(){return u},LD:function(){return A},M3:function(){return k},Mc:function(){return Z},P$:function(){return l},Pr:function(){return P},RO:function(){return S},SV:function(){return b},SZ:function(){return f},XH:function(){return T},_w:function(){return w},bK:function(){return x},db:function(){return _},f0:function(){return d},kB:function(){return i},kQ:function(){return C},lF:function(){return E},lx:function(){return r},mz:function(){return O},nY:function(){return o},oJ:function(){return h},oK:function(){return j},qJ:function(){return y},sR:function(){return c},t$:function(){return p},u:function(){return m},vH:function(){return N}});var r="REWIND/SET_ENABLE",a="REWIND/RESET_REWIND",o="OBJECT_MANAGER/NEW_OBJECT",i="OBJECT_MANAGER/UPDATE_PROGRESS_OBJECT",s="OBJECT_MANAGER/COMPLETE_OBJECT",l="OBJECT_MANAGER/DELETE_FROM_OBJECT_LIST",c="OBJECT_MANAGER/CLEAN_LIST",u="OBJECT_MANAGER/TOGGLE_LIST",d="OBJECT_MANAGER/OPEN_LIST",f="OBJECT_MANAGER/CLOSE_LIST",p="OBJECT_MANAGER/SET_SEARCH_OBJECT",h="BUCKET_BROWSER/VERSIONS_MODE_ENABLED",m="BUCKET_BROWSER/VERSIONS_SET_SEARCH",v="BUCKET_BROWSER/SET_SELECTED_VERSION",g="BUCKET_BROWSER/SHOW_DELETED",y="BUCKET_BROWSER/LOAD_VERSIONS",x="BUCKET_BROWSER/LOAD_OBJECT_DETAILS",b=function(e,t,n){return{type:r,state:e,bucket:t,dateRewind:n}},w=function(){return{type:a}},_=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return{type:h,status:e,objectName:t}},Z=function(e){return{type:o,newObject:e}},S=function(e,t){return{type:i,instanceID:e,progress:t}},j=function(e){return{type:s,instanceID:e}},E=function(e){return{type:l,instanceID:e}},T=function(){return{type:c}},C=function(){return{type:u}},A=function(){return{type:d}},M=function(e){return{type:p,searchString:e}},P=function(e){return{type:m,searchString:e}},k=function(e){return{type:v,selectedVersion:e}},O=function(e){return{type:g,status:e}},R=function(e){return{type:y,status:e}},N=function(e){return{type:x,status:e}}},19720:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(29439),a=n(1413),o=n(72791),i=n(60364),s=n(11135),l=n(25787),c=n(75460),u=n(23814),d=n(61889),f=n(45248),p=n(84741),h=n(49724),m=n(40968),v=n(81207),g=n(21435),y=n(90673),x=n(26181),b=n.n(x),w=n(37516),_=n(763),Z=n(56578),S=n(80184),j=(0,i.$j)((function(e){return{nodes:e.tenants.createTenant.fields.tenantSize.nodes,resourcesSize:e.tenants.createTenant.fields.tenantSize.resourcesSize,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,maxAllocatableResources:e.tenants.createTenant.fields.tenantSize.maxAllocatableResources,maxCPUsUse:e.tenants.createTenant.fields.tenantSize.maxCPUsUse,maxMemorySize:e.tenants.createTenant.fields.tenantSize.maxMemorySize,resourcesSpecifyLimit:e.tenants.createTenant.fields.tenantSize.resourcesSpecifyLimit,resourcesCPURequestError:e.tenants.createTenant.fields.tenantSize.resourcesCPURequestError,resourcesCPURequest:e.tenants.createTenant.fields.tenantSize.resourcesCPURequest,resourcesCPULimitError:e.tenants.createTenant.fields.tenantSize.resourcesCPULimitError,resourcesCPULimit:e.tenants.createTenant.fields.tenantSize.resourcesCPULimit,resourcesMemoryRequestError:e.tenants.createTenant.fields.tenantSize.resourcesMemoryRequestError,resourcesMemoryRequest:e.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,resourcesMemoryLimitError:e.tenants.createTenant.fields.tenantSize.resourcesMemoryLimitError,resourcesMemoryLimit:e.tenants.createTenant.fields.tenantSize.resourcesMemoryLimit}}),{updateAddField:c.HM,isPageValid:c.NO}),E=(0,l.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({compositeFieldContainer:{display:"flex",alignItems:"center"},compositeAddOn:{marginLeft:10,"& div":{marginBottom:0},"@media (max-width: 900px)":{"& div":{marginTop:5}}}},u.DF),u.oO),u.AK))}))(j((function(e){var t=e.classes,n=e.updateAddField,r=e.isPageValid,a=e.nodes,i=e.resourcesSize,s=e.selectedStorageClass,l=(e.maxAllocatableResources,e.maxCPUsUse),c=e.maxMemorySize,u=e.resourcesSpecifyLimit,f=e.resourcesCPURequestError,p=e.resourcesCPURequest,h=e.resourcesCPULimitError,m=e.resourcesCPULimit,y=e.resourcesMemoryRequestError,x=e.resourcesMemoryRequest,j=e.resourcesMemoryLimitError,E=e.resourcesMemoryLimit,T=(0,o.useCallback)((function(e,t){n("tenantSize",e,t)}),[n]);return(0,o.useEffect)((function(){r("tenantSize",""===y&&""===j&&""===f&&""===h)}),[r,y,j,f,h]),(0,o.useEffect)((function(){v.Z.invoke("GET","api/v1/cluster/allocatable-resources?num_nodes=".concat(a)).then((function(e){T("maxAllocatableResources",e);var t=e,n=b()(t,"min_allocatable_mem",!1),r=b()(t,"min_allocatable_cpu",!1);if(!1===n||!1===r)return T("cpuToUse",0),T("maxMemorySize",""),void T("maxCPUsUse","");var a=(0,_.floor)(e.mem_priority.max_allocatable_mem/1024/1024/1024);T("maxMemorySize",a.toString()),T("maxCPUsUse",e.cpu_priority.max_allocatable_cpu.toString());var o=b()(t,"cpu_priority.max_allocatable_cpu",0),i=Math.max(1,(0,_.floor)(o/2));""===p&&T("resourcesCPURequest",i);var s=Math.max(2,(0,_.floor)(a/2));""===x&&T("resourcesMemoryRequest",s)})).catch((function(e){T("maxMemorySize",0),T("resourcesCPURequest",""),T("resourcesMemoryRequest",""),console.error(e)}))}),[a,T]),(0,S.jsxs)(o.Fragment,{children:[(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsxs)("div",{className:t.headerElement,children:[(0,S.jsx)("h3",{className:t.h3Section,children:"Resources"}),(0,S.jsx)("span",{className:t.descriptionText,children:"You may specify the amount of CPU and Memory that MinIO servers should reserve on each node."})]})}),""!==i.error&&(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsx)("div",{className:t.error,children:i.error})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{label:"CPU Request",id:"resourcesCPURequest",name:"resourcesCPURequest",onChange:function(e){var t=parseInt(e.target.value);""===e.target.value?T("resourcesCPURequestError",""):isNaN(t)?T("resourcesCPURequestError","Invalid number"):t>parseInt(l)?T("resourcesCPURequestError","Request exceeds available cores (".concat(l,")")):e.target.validity.valid?T("resourcesCPURequestError",""):T("resourcesCPURequestError","Invalid configuration"),T("resourcesCPURequest",e.target.value)},value:p,disabled:""===s,max:l,error:f,pattern:"[0-9]*"})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{id:"resourcesMemoryRequest",name:"resourcesMemoryRequest",onChange:function(e){var t=parseInt(e.target.value);""===e.target.value?T("resourcesMemoryRequestError",""):isNaN(t)?T("resourcesMemoryRequestError","Invalid number"):t>parseInt(c)?T("resourcesMemoryRequestError","Request exceeds available memory across ".concat(a," nodes (").concat(c,"Gi)")):t<2?T("resourcesMemoryRequestError","At least 2Gi must be requested"):e.target.validity.valid?T("resourcesMemoryRequestError",""):T("resourcesMemoryRequestError","Invalid configuration"),T("resourcesMemoryRequest",e.target.value)},label:"Memory Request",overlayObject:(0,S.jsx)(Z.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:x,disabled:""===s,error:y,pattern:"[0-9]*"})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsx)(w.Z,{value:"resourcesSpecifyLimit",id:"resourcesSpecifyLimit",name:"resourcesSpecifyLimit",checked:u,onChange:function(e){var t=e.target.checked;T("resourcesSpecifyLimit",t)},label:"Specify Limit"})}),u&&(0,S.jsxs)(o.Fragment,{children:[(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{label:"CPU Limit",id:"resourcesCPULimit",name:"resourcesCPULimit",onChange:function(e){var t=parseInt(e.target.value);""===e.target.value?T("resourcesCPULimitError",""):isNaN(t)?T("resourcesCPULimitError","Invalid number"):e.target.validity.valid?T("resourcesCPULimitError",""):T("resourcesCPULimitError","Invalid configuration"),T("resourcesCPULimit",e.target.value)},value:m,disabled:""===s,max:l,error:h,pattern:"[0-9]*"})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{id:"resourcesMemoryLimit",name:"resourcesMemoryLimit",onChange:function(e){var t=parseInt(e.target.value);console.log("value",t),""===e.target.value?T("resourcesMemoryLimitError",""):isNaN(t)?T("resourcesMemoryLimitError","Invalid number"):e.target.validity.valid?T("resourcesMemoryLimitError",""):T("resourcesMemoryLimitError","Invalid configuration"),T("resourcesMemoryLimit",e.target.value)},label:"Memory Limit",overlayObject:(0,S.jsx)(Z.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:E,disabled:""===s,error:j,pattern:"[0-9]*"})})]})]})}))),T=(0,i.$j)((function(e){var t=e.tenants.createTenant.fields.tenantSize;return{volumeSize:t.volumeSize,sizeFactor:t.sizeFactor,drivesPerServer:t.drivesPerServer,nodes:t.nodes,memoryNode:t.memoryNode,ecParity:t.ecParity,ecParityChoices:t.ecParityChoices,cleanECChoices:t.cleanECChoices,resourcesSize:t.resourcesSize,distribution:t.distribution,ecParityCalc:t.ecParityCalc,untouchedECField:t.untouchedECField,limitSize:e.tenants.createTenant.limitSize,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,selectedStorageType:e.tenants.createTenant.fields.nameTenant.selectedStorageType}}),{updateAddField:c.HM,isPageValid:c.NO}),C=(0,l.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({compositeFieldContainer:{display:"flex",alignItems:"center"},compositeAddOn:{marginLeft:10,"& div":{marginBottom:0},"@media (max-width: 900px)":{"& div":{marginTop:5}}}},u.DF),u.oO),u.AK))}))(T((function(e){var t=e.classes,n=e.updateAddField,a=e.isPageValid,i=e.volumeSize,s=e.sizeFactor,l=e.drivesPerServer,c=e.nodes,u=e.memoryNode,x=e.ecParity,b=e.ecParityChoices,w=e.cleanECChoices,_=e.resourcesSize,j=e.distribution,T=e.ecParityCalc,C=e.limitSize,A=e.selectedStorageClass,M=e.untouchedECField,P=e.formToRender,k=e.selectedStorageType,O=(0,o.useState)({}),R=(0,r.Z)(O,2),N=R[0],z=R[1],I=(0,o.useState)(!1),L=(0,r.Z)(I,2),D=L[0],B=L[1],H=(0,o.useState)(""),F=(0,r.Z)(H,2),U=F[0],V=F[1],G=(0,o.useCallback)((function(e,t){n("tenantSize",e,t)}),[n]),W=function(e){z((0,p.h)(N,e))};return(0,o.useEffect)((function(){w.length>0&&""!==T.defaultEC&&G("ecParityChoices",(0,h.dv)(w,T.defaultEC))}),[T,w,G]),(0,o.useEffect)((function(){""===x||T.defaultEC===x?G("untouchedECField",!0):G("untouchedECField",!1)}),[x,T,G]),(0,o.useEffect)((function(){if(b.length>0&&""===j.error){var e=(0,f.ES)(w,j.persistentVolumes,j.pvSize,j.nodes);G("ecParityCalc",e),w.includes(x)&&""!==x||G("ecParity",e.defaultEC)}}),[x,b.length,j,w,G,M]),(0,o.useEffect)((function(){var e=i,t=s,n=(0,f.Pw)("16","Ti",!0),r={unit:t,value:e.toString()},a=(0,f.zg)(r,parseInt(c),parseInt(n),parseInt(l),P,k);G("distribution",a),B(!1),V("")}),[c,i,s,G,l,k,P]),(0,o.useEffect)((function(){var e=(0,f.Pw)(i,s,!0),t=(0,m.R)([{fieldKey:"nodes",required:!0,value:c,customValidation:D,customValidationMessage:U},{fieldKey:"volume_size",required:!0,value:i,customValidation:parseInt(e)<1073741824||parseInt(e)>C[A],customValidationMessage:"Volume size must be greater than 1Gi and less than ".concat((0,f.ae)(C[A],!0))},{fieldKey:"drivesps",required:!0,value:l,customValidation:parseInt(l)<1,customValidationMessage:"There must be at least one drive"}]);a("tenantSize",!("nodes"in t)&&!("volume_size"in t)&&!("drivesps"in t)&&""===j.error&&0===T.error&&""!==x),z(t)}),[c,i,s,u,j,T,_,C,A,a,D,U,l,x]),(0,o.useEffect)((function(){""===j.error&&""!==c.trim()&&0!==j.disks&&v.Z.invoke("GET","api/v1/get-parity/".concat(c,"/").concat(j.disks)).then((function(e){G("ecParityChoices",(0,h.dv)(e)),G("cleanECChoices",e),M&&G("ecParity","")})).catch((function(e){G("ecparityChoices",[]),a("tenantSize",!1),G("ecParity","")}))}),[j,a,G,c,M]),(0,S.jsxs)(o.Fragment,{children:[(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsxs)("div",{className:t.headerElement,children:[(0,S.jsx)("h3",{className:t.h3Section,children:"Capacity"}),(0,S.jsx)("span",{className:t.descriptionText,children:"Please select the desired capacity"})]})}),""!==j.error&&(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsx)("div",{className:t.error,children:j.error})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{id:"nodes",name:"nodes",onChange:function(e){e.target.validity.valid&&(G("nodes",e.target.value),W("nodes"))},label:"Number of Servers",disabled:""===A,value:c,min:"4",required:!0,error:N.nodes||"",pattern:"[0-9]*"})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(g.Z,{id:"drivesps",name:"drivesps",onChange:function(e){e.target.validity.valid&&(G("drivesPerServer",e.target.value),W("drivesps"))},label:"Drives per Server",value:l,disabled:""===A,min:"1",required:!0,error:N.drivesps||"",pattern:"[0-9]*"})}),(0,S.jsx)(d.ZP,{item:!0,xs:12,children:(0,S.jsx)("div",{className:t.formFieldRow,children:(0,S.jsx)(g.Z,{type:"number",id:"volume_size",name:"volume_size",onChange:function(e){G("volumeSize",e.target.value),W("volume_size")},label:"Total Size",value:i,disabled:""===A,required:!0,error:N.volume_size||"",min:"0",overlayObject:(0,S.jsx)(Z.Z,{id:"size-unit",onUnitChange:function(e){G("sizeFactor",e)},unitSelected:s,unitsList:(0,f.zQ)(["Ki","Mi"]),disabled:""===A})})})}),(0,S.jsxs)(d.ZP,{item:!0,xs:12,className:t.formFieldRow,children:[(0,S.jsx)(y.Z,{id:"ec_parity",name:"ec_parity",onChange:function(e){G("ecParity",e.target.value)},label:"Erasure Code Parity",disabled:""===A,value:x,options:b}),(0,S.jsx)("span",{className:t.descriptionText,children:"Please select the desired parity. This setting will change the max usable capacity in the cluster"})]}),(0,S.jsx)(E,{})]})})))},45884:function(e,t,n){"use strict";n.d(t,{cy:function(){return a},Hd:function(){return A},I8:function(){return C}});var r,a,o=n(4942),i=n(72791),s=n(29439),l=n(1413),c=n(60364),u=n(26181),d=n.n(u),f=n(11135),p=n(25787),h=n(75460),m=n(23814),v=n(61889),g=n(45248),y=n(84741),x=n(49724),b=n(40968),w=n(81207),_=n(21435),Z=n(90673),S=n(80184),j=(0,c.$j)((function(e){return function(){var t=e.tenants.createTenant,n=t.fields.tenantSize,r=n.memoryNode,a=n.ecParityChoices,o=n.distribution,i=n.cleanECChoices,s=n.sizeFactor,l=n.ecParity,c=n.cpuToUse,u=n.integrationSelection,d=n.resourcesSize,f=n.drivesPerServer,p=n.maxCPUsUse,h=n.ecParityCalc;return{volumeSize:n.volumeSize,sizeFactor:s,drivesPerServer:f,nodes:n.nodes,memoryNode:r,ecParity:l,ecParityChoices:a,cleanECChoices:i,resourcesSize:d,distribution:o,ecParityCalc:h,cpuToUse:c,maxCPUsUse:p,integrationSelection:u,limitSize:t.limitSize,selectedStorageType:t.fields.nameTenant.selectedStorageType}}}),{updateAddField:h.HM,isPageValid:h.NO}),E=(0,p.Z)((function(e){return(0,f.Z)((0,l.Z)((0,l.Z)((0,l.Z)({compositeFieldContainer:{display:"flex",alignItems:"center"},compositeAddOn:{marginLeft:10,"& div":{marginBottom:0},"@media (max-width: 900px)":{"& div":{marginTop:5}}}},m.DF),m.oO),m.AK))}))(j((function(e){var t=e.classes,n=e.updateAddField,r=e.isPageValid,a=e.volumeSize,o=e.sizeFactor,l=e.drivesPerServer,c=e.nodes,u=e.memoryNode,f=e.ecParity,p=e.ecParityChoices,h=e.cleanECChoices,m=e.resourcesSize,j=e.distribution,E=e.ecParityCalc,T=e.limitSize,C=e.cpuToUse,M=e.selectedStorageType,P=e.maxCPUsUse,k=e.formToRender,O=e.integrationSelection,R=(0,i.useState)({}),N=(0,s.Z)(R,2),z=N[0],I=N[1],L=(0,i.useCallback)((function(e,t){n("tenantSize",e,t)}),[n]),D=(0,i.useCallback)((function(e,t){n("nameTenant",e,t)}),[n]);return(0,i.useEffect)((function(){if(p.length>0&&""===j.error){var e=(0,g.ES)(h,j.persistentVolumes,j.pvSize,j.nodes);L("ecParityCalc",e),h.includes(f)&&""!==f||L("ecParity",e.defaultEC)}}),[f,p,j,h,L]),(0,i.useEffect)((function(){if(void 0!==k&&parseInt(c)>=4){var e=A[k];if(Object.keys(e).length>0){var t=d()(e,"configurations",[]).find((function(e){return e.typeSelection===M}));if(t){L("integrationSelection",t),D("selectedStorageClass",t.storageClass);var n={pvSize:parseInt((0,g.Pw)(t.driveSize.driveSize,t.driveSize.sizeUnit,!0),10),nodes:parseInt(c),disks:t.drivesPerServer,persistentVolumes:t.drivesPerServer*parseInt(c),error:""};L("distribution",n),L("resourcesCPURequest",Math.max(1,t.CPU/2)),L("resourcesMemoryRequest",Math.max(2,t.memory/2))}}}}),[c,M,k,L,D]),(0,i.useEffect)((function(){var e=(0,b.R)([{fieldKey:"nodes",required:!0,value:c,customValidation:parseInt(c)<4,customValidationMessage:"Al least 4 servers must be selected"}]);r("tenantSize",!("nodes"in e)&&""===j.error&&0===E.error&&""===m.error&&""!==f&&parseInt(c)>=4),I(e)}),[c,a,o,u,j,E,m,T,M,C,P,r,l,f]),(0,i.useEffect)((function(){0!==O.drivesPerServer&&""!==c.trim()&&w.Z.invoke("GET","api/v1/get-parity/".concat(c,"/").concat(O.drivesPerServer)).then((function(e){L("ecParityChoices",(0,x.dv)(e)),L("cleanECChoices",e)})).catch((function(e){L("ecparityChoices",[]),r("tenantSize",!1),L("ecParity","")}))}),[O,c,r,L]),(0,S.jsxs)(i.Fragment,{children:[(0,S.jsx)(v.ZP,{item:!0,xs:12,children:(0,S.jsxs)("div",{className:t.headerElement,children:[(0,S.jsx)("h3",{className:t.h3Section,children:"Tenant Size"}),(0,S.jsx)("span",{className:t.descriptionText,children:"Please select the desired capacity"})]})}),""!==j.error&&(0,S.jsx)(v.ZP,{item:!0,xs:12,children:(0,S.jsx)("div",{className:t.error,children:j.error})}),""!==m.error&&(0,S.jsx)(v.ZP,{item:!0,xs:12,children:(0,S.jsx)("div",{className:t.error,children:m.error})}),(0,S.jsx)(v.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,S.jsx)(_.Z,{id:"nodes",name:"nodes",onChange:function(e){var t;e.target.validity.valid&&(L("nodes",e.target.value),t="nodes",I((0,y.h)(z,t)))},label:"Number of Servers",disabled:""===M,value:c,min:"4",required:!0,error:z.nodes||"",pattern:"[0-9]*"})}),(0,S.jsxs)(v.ZP,{item:!0,xs:12,className:t.formFieldRow,children:[(0,S.jsx)(Z.Z,{id:"ec_parity",name:"ec_parity",onChange:function(e){L("ecParity",e.target.value)},label:"Erasure Code Parity",disabled:""===M,value:f,options:p}),(0,S.jsx)("span",{className:t.descriptionText,children:"Please select the desired parity. This setting will change the max usable capacity in the cluster"})]})]})}))),T=n(19720);!function(e){e[e.aws=0]="aws",e[e.azure=1]="azure",e[e.gcp=2]="gcp",e[e.default=3]="default",e[e[void 0]=4]="undefined"}(a||(a={}));var C={"mp-mode-aws":a.aws,"mp-mode-azure":a.azure,"mp-mode-gcp":a.gcp},A=(r={},(0,o.Z)(r,a.aws,{variantSelectorLabel:"Storage Type",variantSelectorValues:[{label:"Performance Optimized",value:"performance"},{label:"Capacity Optimized",value:"capacity"}],configurations:[{typeSelection:"performance",storageClass:"performance-optimized",CPU:64,memory:128,driveSize:{driveSize:"32",sizeUnit:"Gi"},drivesPerServer:4,minimumVolumeSize:{driveSize:"32",sizeUnit:"Gi"}},{typeSelection:"capacity",storageClass:"capacity-optimized",CPU:64,memory:128,driveSize:{driveSize:"16",sizeUnit:"Ti"},drivesPerServer:18,minimumVolumeSize:{driveSize:"16",sizeUnit:"Ti"}}],sizingComponent:(0,S.jsx)(T.Z,{formToRender:a.aws})}),(0,o.Z)(r,a.azure,{variantSelectorLabel:"VM Size",variantSelectorValues:[{label:"Standard_L32s_v2",value:"Standard_L32s_v2"},{label:"Standard_L48s_v2",value:"Standard_L48s_v2"},{label:"Standard_L64s_v2",value:"Standard_L64s_v2"}],configurations:[{typeSelection:"Standard_L8s_v2",storageClass:"local-nvme",CPU:8,memory:64,driveSize:{driveSize:"1787",sizeUnit:"Gi"},drivesPerServer:1},{typeSelection:"Standard_L16s_v2",storageClass:"local-nvme",CPU:16,memory:128,driveSize:{driveSize:"1787",sizeUnit:"Gi"},drivesPerServer:2},{typeSelection:"Standard_L32s_v2",storageClass:"local-nvme",CPU:32,memory:256,driveSize:{driveSize:"1787",sizeUnit:"Gi"},drivesPerServer:4},{typeSelection:"Standard_L48s_v2",storageClass:"local-nvme",CPU:48,memory:384,driveSize:{driveSize:"1787",sizeUnit:"Gi"},drivesPerServer:6},{typeSelection:"Standard_L64s_v2",storageClass:"local-nvme",CPU:64,memory:512,driveSize:{driveSize:"1787",sizeUnit:"Gi"},drivesPerServer:8}],sizingComponent:(0,S.jsx)(E,{formToRender:a.azure})}),(0,o.Z)(r,a.gcp,{variantSelectorLabel:"Storage Type",variantSelectorValues:[{label:"SSD",value:"ssd"}],configurations:[{typeSelection:"ssd",storageClass:"local-ssd",CPU:32,memory:128,driveSize:{driveSize:"368",sizeUnit:"Gi"},drivesPerServer:24}],sizingComponent:(0,S.jsx)(E,{formToRender:a.gcp})}),(0,o.Z)(r,a.default,{}),(0,o.Z)(r,a.undefined,{}),r)},49724:function(e,t,n){"use strict";n.d(t,{OU:function(){return i},Yk:function(){return s},dv:function(){return o}});var r=n(26181),a=n.n(r),o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.map((function(e){var n=e;return""!==t&&e===t&&(n="".concat(e," (Default)")),{label:n,value:e}}))},i=function(e){var t=a()(e,"elements",[]),n={};return t.forEach((function(e){var t=e.name.split(".storageclass.storage.k8s.io/requests.storage")[0],r=a()(e,"hard",0),o=a()(e,"used",0);n[t]=r-o})),n},s=function(e){return""!==e.currentState&&(!(!e.status&&"green"!==e.health_status&&"yellow"!==e.health_status)&&(!e.status||"green"===e.status.health_status||"yellow"===e.status.health_status))}},75460:function(e,t,n){"use strict";n.d(t,{$1:function(){return m},BI:function(){return v},DH:function(){return l},Eq:function(){return d},GF:function(){return R},HM:function(){return a},IG:function(){return u},JX:function(){return T},LJ:function(){return M},Lm:function(){return z},MX:function(){return x},Mg:function(){return f},NO:function(){return o},Qy:function(){return s},TU:function(){return P},V2:function(){return w},V7:function(){return _},XX:function(){return p},aN:function(){return h},bF:function(){return N},bU:function(){return C},cl:function(){return g},dS:function(){return b},fK:function(){return c},fe:function(){return Z},fk:function(){return y},fu:function(){return k},hw:function(){return O},i$:function(){return S},iU:function(){return j},ly:function(){return E},oo:function(){return A},wZ:function(){return i}});var r=n(34565),a=function(e,t,n){return{type:r.JC,pageName:e,field:t,value:n}},o=function(e,t){return{type:r.Jq,pageName:e,valid:t}},i=function(e){return{type:r.$0,storageClasses:e}},s=function(e,t){return{type:r.FN,storageType:e,features:t}},l=function(e){return{type:r.WC,limitSize:e}},c=function(){return{type:r.Oz}},u=function(e){return{type:r.HD,id:e}},d=function(e,t,n,a){return{type:r.PO,id:e,key:t,fileName:n,value:a}},f=function(){return{type:r.nr}},p=function(e){return{type:r.$j,id:e}},h=function(e,t,n,a){return{type:r.KU,id:e,key:t,fileName:n,value:a}},m=function(e,t,n){return{type:r.J7,key:e,fileName:t,value:n}},v=function(e,t,n){return{type:r.ci,key:e,fileName:t,value:n}},g=function(e,t,n){return{type:r.s5,key:e,fileName:t,value:n}},y=function(e,t){return{type:r.A3,fileName:e,value:t}},x=function(e,t){return{type:r.ox,fileName:e,value:t}},b=function(){return{type:r.j5}},w=function(e){return{type:r.Mm,state:e}},_=function(e,t){return{type:r.Xq,name:e,namespace:t}},Z=function(e){return{type:r.f$,tenant:e}},S=function(e){return{type:r.Vr,newArray:e}},j=function(e,t){return{type:r.jm,index:e,toleration:t}},E=function(){return{type:r.GO}},T=function(e){return{type:r.FG,index:e}},C=function(){return{type:r.FM}},A=function(e,t,n){return{type:r.Lz,page:e,field:t,value:n}},M=function(e,t){return{type:r.Ag,page:e,status:t}},P=function(e){return{type:r.UD,storageClasses:e}},k=function(e,t){return{type:r.hm,index:e,toleration:t}},O=function(){return{type:r.vM}},R=function(e){return{type:r.Jj,index:e}},N=function(e){return{type:r.Q2,newArray:e}},z=function(e){return{type:r.vb,pool:e}}},34565:function(e,t,n){"use strict";n.d(t,{$0:function(){return s},$j:function(){return f},A3:function(){return Z},AY:function(){return x},Ag:function(){return R},E0:function(){return k},FG:function(){return C},FM:function(){return I},FN:function(){return c},GO:function(){return T},HD:function(){return m},J7:function(){return b},JC:function(){return a},Jj:function(){return H},Jq:function(){return o},KU:function(){return d},Lz:function(){return N},Mm:function(){return A},Oz:function(){return p},PO:function(){return h},Q2:function(){return L},UD:function(){return O},Vr:function(){return j},WC:function(){return l},Xq:function(){return M},ci:function(){return w},d0:function(){return r},dJ:function(){return y},f$:function(){return P},hm:function(){return D},j5:function(){return i},jm:function(){return E},lV:function(){return g},nr:function(){return u},ox:function(){return S},s5:function(){return _},vG:function(){return z},vM:function(){return B},vb:function(){return F},wv:function(){return v}});var r="ADD_TENANT/SET_CURRENT_PAGE",a="ADD_TENANT/UPDATE_FIELD",o="ADD_TENANT/SET_PAGE_VALID",i="ADD_TENANT/RESET_FORM",s="ADD_TENANT/SET_STORAGE_CLASSES_LIST",l="ADD_TENANT/SET_LIMIT_SIZE",c="ADD_TENANT/ADD_TENANT_SET_STORAGE_TYPE",u="ADD_TENANT/ADD_MINIO_KEYPAIR",d="ADD_TENANT/ADD_FILE_MINIO_KEYPAIR",f="ADD_TENANT/DELETE_MINIO_KEYPAIR",p="ADD_TENANT/ADD_CA_KEYPAIR",h="ADD_TENANT/ADD_FILE_TO_CA_KEYPAIR",m="ADD_TENANT/DELETE_CA_KEYPAIR",v="ADD_TENANT/ADD_CONSOLE_CERT",g="ADD_TENANT/ADD_CONSOLE_CA_KEYPAIR",y="ADD_TENANT/ADD_FILE_TO_CONSOLE_CA_KEYPAIR",x="ADD_TENANT/DELETE_CONSOLE_CA_KEYPAIR",b="ADD_TENANT/ENCRYPTION_SERVER_CERT",w="ADD_TENANT/ENCRYPTION_CLIENT_CERT",_="ADD_TENANT/ENCRYPTION_VAULT_CERT",Z="ADD_TENANT/ENCRYPTION_VAULT_CA",S="ADD_TENANT/ENCRYPTION_GEMALTO_CA",j="ADD_TENANT/SET_KEY_PAIR_VALUE",E="ADD_TENANT/SET_TOLERATION_VALUE",T="ADD_TENANT/ADD_NEW_TOLERATION",C="ADD_TENANT/REMOVE_TOLERATION_ROW",A="TENANT_DETAILS/SET_LOADING",M="TENANT_DETAILS/SET_CURRENT_TENANT",P="TENANT_DETAILS/SET_TENANT",k="TENANT_DETAILS/SET_TAB",O="ADD_POOL/SET_POOL_STORAGE_CLASSES",R="ADD_POOL/SET_PAGE_VALID",N="ADD_POOL/SET_VALUE",z="ADD_POOL/SET_LOADING",I="ADD_POOL/RESET_FORM",L="ADD_POOL/SET_KEY_PAIR_VALUE",D="ADD_POOL/SET_TOLERATION_VALUE",B="ADD_POOL/ADD_NEW_TOLERATION",H="ADD_POOL/REMOVE_TOLERATION_ROW",F="POOL_DETAILS/SET_SELECTED_POOL"},84741:function(e,t,n){"use strict";n.d(t,{h:function(){return a},z:function(){return o}});var r=n(1413),a=function(e,t){var n=(0,r.Z)({},e);return delete n[t],n},o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t="",n="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r=0;r0){var s=I.cy.default;if(Object.keys(I.I8).forEach((function(t){void 0!==e.features&&e.features.includes(t)&&(s=R()(I.I8,t,I.cy.default))})),void 0!==s){var l=I.Hd[s];if(Object.keys(l).length>0){var c=R()(l,"configurations",[]).find((function(t){return t.typeSelection===e.storageType}));if(void 0!==c&&(i=c.storageClass,c.minimumVolumeSize)){var u,d,f=(0,L.Yr)(null===(u=c.minimumVolumeSize)||void 0===u?void 0:u.driveSize,null===(d=c.minimumVolumeSize)||void 0===d?void 0:d.sizeUnit,!0),p=t.createTenant.fields.tenantSize.drivesPerServer,h=t.createTenant.fields.tenantSize.drivesPerServer;if((0,L.Yr)(n.toString(),a,!0)0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case p.TY:return(0,r.Z)((0,r.Z)({},e),{},{loggedIn:t.logged});case p.M6:return(0,r.Z)((0,r.Z)({},e),{},{operatorMode:t.operatorMode});case p.YY:return localStorage.setItem("sidebarOpen",JSON.stringify({open:t.open})),(0,r.Z)((0,r.Z)({},e),{},{sidebarOpen:t.open});case p.vx:return(0,r.Z)((0,r.Z)({},e),{},{serverNeedsRestart:t.needsRestart});case p.mp:return(0,r.Z)((0,r.Z)({},e),{},{serverIsLoading:t.isLoading});case p.b7:return(0,r.Z)((0,r.Z)({},e),{},{loadingProgress:t.loadingProgress});case p.pX:return(0,r.Z)((0,r.Z)({},e),{},{snackBar:{message:t.message,detailedErrorMsg:"",type:"message"}});case p.Cs:return(0,r.Z)((0,r.Z)({},e),{},{snackBar:{message:t.message.errorMessage,detailedErrorMsg:t.message.detailedError,type:"error"}});case p.MC:return(0,r.Z)((0,r.Z)({},e),{},{modalSnackBar:{message:t.message,detailedErrorMsg:"",type:"message"}});case p.DA:return(0,r.Z)((0,r.Z)({},e),{},{modalSnackBar:{message:t.message.errorMessage,detailedErrorMsg:t.message.detailedError,type:"error"}});case p.YH:return(0,r.Z)((0,r.Z)({},e),{},{serverDiagnosticStatus:t.serverDiagnosticStatus});case p.nl:return(0,r.Z)((0,r.Z)({},e),{},{distributedSetup:t.distributedSetup});default:return e}},trace:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case v.Q:return(0,r.Z)((0,r.Z)({},e),{},{messages:[].concat((0,m.Z)(e.messages),[t.message])});case v.TU:return(0,r.Z)((0,r.Z)({},e),{},{messages:[]});case v.Dx:return(0,r.Z)((0,r.Z)({},e),{},{traceStarted:t.status});default:return e}},logs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:x,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case y.JL:var n=(0,m.Z)(e.logMessages);if(n.length>0&&1===t.message.time.getFullYear()&&""!==t.message.ConsoleMsg)for(var a in n)1===n[a].time.getFullYear()&&(n[a].ConsoleMsg="".concat(n[a].ConsoleMsg,"\n").concat(t.message.ConsoleMsg));else n.push(t.message);return(0,r.Z)((0,r.Z)({},e),{},{logMessages:n});case y.me:return(0,r.Z)((0,r.Z)({},e),{},{logMessages:[]});case y.C1:return(0,r.Z)((0,r.Z)({},e),{},{logsStarted:t.status});default:return e}},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Z,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _.jj:return(0,r.Z)((0,r.Z)({},e),{},{messages:[].concat((0,m.Z)(e.messages),[t.message])});case _.Vu:return(0,r.Z)((0,r.Z)({},e),{},{messages:[]});default:return e}},console:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case S.jj:return(0,r.Z)((0,r.Z)({},e),{},{session:t.message});case S.F9:return(0,r.Z)((0,r.Z)({},e),{},{session:j.session});default:return e}},buckets:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case E.Kr:return(0,r.Z)((0,r.Z)({},e),{},{open:t.open});case E.ST:return(0,r.Z)((0,r.Z)({},e),{},{addBucketName:t.name});case E.sp:return(0,r.Z)((0,r.Z)({},e),{},{addBucketVersioningEnabled:t.versioned});case E.mx:return(0,r.Z)((0,r.Z)({},e),{},{addBucketLockingEnabled:t.locking});case E.p9:return(0,r.Z)((0,r.Z)({},e),{},{addBucketQuotaEnabled:t.quota});case E.YK:return(0,r.Z)((0,r.Z)({},e),{},{addBucketQuotaType:t.quotaType});case E.Mz:return(0,r.Z)((0,r.Z)({},e),{},{addBucketQuotaSize:t.quotaSize});case E.hO:return(0,r.Z)((0,r.Z)({},e),{},{addBucketQuotaUnit:t.quotaUnit});case E.sP:return(0,r.Z)((0,r.Z)({},e),{},{addBucketRetentionEnabled:t.retention});case E.cD:return(0,r.Z)((0,r.Z)({},e),{},{addBucketRetentionMode:t.retentionMode});case E.k7:return(0,r.Z)((0,r.Z)({},e),{},{addBucketRetentionUnit:t.retentionUnit});case E.Nv:return(0,r.Z)((0,r.Z)({},e),{},{addBucketRetentionValidity:t.retentionValidity});case E.Wz:return(0,r.Z)((0,r.Z)({},e),{},{bucketDetails:(0,r.Z)((0,r.Z)({},e.bucketDetails),{},{selectedTab:t.tab})});case E.vw:return(0,r.Z)((0,r.Z)({},e),{},{addBucketName:"",addBucketVersioningEnabled:!1,addBucketLockingEnabled:!1,addBucketQuotaEnabled:!1,addBucketQuotaType:"hard",addBucketQuotaSize:"1",addBucketQuotaUnit:"TiB",addBucketRetentionEnabled:!1,addBucketRetentionMode:"compliance",addBucketRetentionUnit:"days",addBucketRetentionValidity:1});case E.qk:return(0,r.Z)((0,r.Z)({},e),{},{bucketDetails:(0,r.Z)((0,r.Z)({},e.bucketDetails),{},{loadingBucket:t.state})});case E.l5:return(0,r.Z)((0,r.Z)({},e),{},{bucketDetails:(0,r.Z)((0,r.Z)({},e.bucketDetails),{},{bucketInfo:t.info})});default:return e}},objectBrowser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case C.lx:var n=(0,r.Z)((0,r.Z)({},e.rewind),{},{rewindEnabled:t.state,bucketToRewind:t.bucket,dateToRewind:t.dateRewind});return(0,r.Z)((0,r.Z)({},e),{},{rewind:n});case C.JR:var a={rewindEnabled:!1,bucketToRewind:"",dateToRewind:null};return(0,r.Z)((0,r.Z)({},e),{},{rewind:a});case C.oJ:var o=t.status?t.objectName:"";return(0,r.Z)((0,r.Z)({},e),{},{versionsMode:t.status,versionedFile:o,selectedVersion:""});case C.nY:var i=[t.newObject].concat((0,m.Z)(e.objectManager.objectsToManage));return(0,r.Z)((0,r.Z)({},e),{},{objectManager:{objectsToManage:i,managerOpen:e.objectManager.managerOpen}});case C.kB:var s=(0,m.Z)(e.objectManager.objectsToManage),l=e.objectManager.objectsToManage.findIndex((function(e){return e.instanceID===t.instanceID}));return-1===l?(0,r.Z)({},e):(s[l].percentage=t.progress,s[l].waitingForFile=!1,(0,r.Z)((0,r.Z)({},e),{},{objectManager:{objectsToManage:s,managerOpen:e.objectManager.managerOpen}}));case C.GW:var c=(0,m.Z)(e.objectManager.objectsToManage),u=e.objectManager.objectsToManage.findIndex((function(e){return e.instanceID===t.instanceID}));return-1===u?(0,r.Z)({},e):(c[u].percentage=100,c[u].waitingForFile=!1,c[u].done=!0,(0,r.Z)((0,r.Z)({},e),{},{objectManager:{objectsToManage:c,managerOpen:e.objectManager.managerOpen}}));case C.P$:var d=e.objectManager.objectsToManage.filter((function(e){return e.instanceID!==t.instanceID}));return(0,r.Z)((0,r.Z)({},e),{},{objectManager:{objectsToManage:d,managerOpen:0!==d.length&&e.objectManager.managerOpen}});case C.sR:var f=e.objectManager.objectsToManage.filter((function(e){return 100!==e.percentage}));return(0,r.Z)((0,r.Z)({},e),{},{objectManager:{objectsToManage:f,managerOpen:0!==f.length&&e.objectManager.managerOpen}});case C.Jt:return(0,r.Z)((0,r.Z)({},e),{},{objectManager:(0,r.Z)((0,r.Z)({},e.objectManager),{},{managerOpen:!e.objectManager.managerOpen})});case C.f0:return(0,r.Z)((0,r.Z)({},e),{},{objectManager:(0,r.Z)((0,r.Z)({},e.objectManager),{},{managerOpen:!0})});case C.SZ:return(0,r.Z)((0,r.Z)({},e),{},{objectManager:(0,r.Z)((0,r.Z)({},e.objectManager),{},{managerOpen:!1})});case C.t$:return(0,r.Z)((0,r.Z)({},e),{},{searchObjects:t.searchString});case C.u:return(0,r.Z)((0,r.Z)({},e),{},{searchVersions:t.searchString});case C.CL:return(0,r.Z)((0,r.Z)({},e),{},{selectedVersion:t.selectedVersion});case C.BI:return(0,r.Z)((0,r.Z)({},e),{},{showDeleted:t.status});case C.qJ:return(0,r.Z)((0,r.Z)({},e),{},{loadingVersions:t.status});case C.bK:return(0,r.Z)((0,r.Z)({},e),{},{loadingObjectInfo:t.status});default:return e}},healthInfo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case b.$P:return(0,r.Z)((0,r.Z)({},e),{},{message:t.message});case b.X8:return(0,r.Z)((0,r.Z)({},e),{},{message:{}});default:return e}},tenants:function(){var e,t,n,a,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:H,i=arguments.length>1?arguments[1]:void 0,s=(0,r.Z)({},o);switch(i.type){case N.d0:return s.createTenant.page=i.page,(0,r.Z)({},s);case N.JC:if(k()(s.createTenant.fields,"".concat(i.pageName,".").concat(i.field))){var l=R()(s.createTenant.fields,"".concat(i.pageName),{}),c={};c[i.field]=i.value;var u=(0,r.Z)((0,r.Z)({},l),c);return s.createTenant.fields[i.pageName]=(0,r.Z)({},u),(0,r.Z)({},s)}return o;case N.Jq:var d=o.createTenant.validPages;if(i.valid)d.includes(i.pageName)||(d.push(i.pageName),s.createTenant.validPages=(0,m.Z)(d));else{var f=d.filter((function(e){return e!==i.pageName}));s.createTenant.validPages=(0,m.Z)(f)}return(0,r.Z)({},s);case N.$0:var p=(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{storageClasses:i.storageClasses})});return(0,r.Z)({},p);case N.FN:return D(i,o);case N.WC:var h=(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{limitSize:i.limitSize})});return(0,r.Z)({},h);case N.nr:var v=[].concat((0,m.Z)(o.createTenant.certificates.minioCertificates),[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}]);return s.createTenant.certificates.minioCertificates=(0,m.Z)(v),(0,r.Z)({},s);case N.KU:var g=o.createTenant.certificates.minioCertificates,y=g.map((function(e){var t;return e.id===i.id?(0,r.Z)((0,r.Z)({},e),{},(t={},(0,M.Z)(t,i.key,i.fileName),(0,M.Z)(t,"encoded_".concat(i.key),i.value),t)):e}));return s.createTenant.certificates.minioCertificates=(0,m.Z)(y),(0,r.Z)({},s);case N.$j:var x=o.createTenant.certificates.minioCertificates;if(x.length>1){var b=x.filter((function(e){return e.id!==i.id}));return s.createTenant.certificates.minioCertificates=(0,m.Z)(b),(0,r.Z)({},s)}return(0,r.Z)({},o);case N.Oz:var w=[].concat((0,m.Z)(o.createTenant.certificates.caCertificates),[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}]);return s.createTenant.certificates.caCertificates=(0,m.Z)(w),(0,r.Z)({},s);case N.PO:var _=o.createTenant.certificates.caCertificates,Z=_.map((function(e){var t;return e.id===i.id?(0,r.Z)((0,r.Z)({},e),{},(t={},(0,M.Z)(t,i.key,i.fileName),(0,M.Z)(t,"encoded_".concat(i.key),i.value),t)):e}));return s.createTenant.certificates.caCertificates=(0,m.Z)(Z),(0,r.Z)({},s);case N.HD:var S=o.createTenant.certificates.caCertificates;if(S.length>1){var j=S.filter((function(e){return e.id!==i.id}));return s.createTenant.certificates.caCertificates=(0,m.Z)(j),(0,r.Z)({},s)}return(0,r.Z)({},o);case N.wv:var E=o.createTenant.certificates.consoleCertificate;return s.createTenant.certificates.consoleCertificate=(0,r.Z)((0,r.Z)({},E),{},(e={},(0,M.Z)(e,i.key,i.fileName),(0,M.Z)(e,"encoded_".concat(i.key),i.value),e)),(0,r.Z)({},s);case N.lV:var T=[].concat((0,m.Z)(o.createTenant.certificates.consoleCaCertificates),[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}]);return s.createTenant.certificates.consoleCaCertificates=(0,m.Z)(T),(0,r.Z)({},s);case N.dJ:var C=o.createTenant.certificates.consoleCaCertificates,A=C.map((function(e){var t;return e.id===i.id?(0,r.Z)((0,r.Z)({},e),{},(t={},(0,M.Z)(t,i.key,i.fileName),(0,M.Z)(t,"encoded_".concat(i.key),i.value),t)):e}));return s.createTenant.certificates.consoleCaCertificates=(0,m.Z)(A),(0,r.Z)({},s);case N.AY:var P=o.createTenant.certificates.consoleCaCertificates;if(P.length>1){var O=P.filter((function(e){return e.id!==i.id}));return s.createTenant.certificates.consoleCaCertificates=(0,m.Z)(O),(0,r.Z)({},s)}return(0,r.Z)({},o);case N.J7:var I=o.createTenant.certificates.serverCertificate;return s.createTenant.certificates.serverCertificate=(0,r.Z)((0,r.Z)({},I),{},(t={},(0,M.Z)(t,i.key,i.fileName),(0,M.Z)(t,"encoded_".concat(i.key),i.value),t)),(0,r.Z)({},s);case N.ci:var L=o.createTenant.certificates.clientCertificate;return s.createTenant.certificates.clientCertificate=(0,r.Z)((0,r.Z)({},L),{},(n={},(0,M.Z)(n,i.key,i.fileName),(0,M.Z)(n,"encoded_".concat(i.key),i.value),n)),(0,r.Z)({},s);case N.s5:var F=o.createTenant.certificates.vaultCertificate;return s.createTenant.certificates.vaultCertificate=(0,r.Z)((0,r.Z)({},F),{},(a={},(0,M.Z)(a,i.key,i.fileName),(0,M.Z)(a,"encoded_".concat(i.key),i.value),a)),(0,r.Z)({},s);case N.A3:var U=o.createTenant.certificates.vaultCA;return s.createTenant.certificates.vaultCA=(0,r.Z)((0,r.Z)({},U),{},{cert:i.fileName,encoded_cert:i.value}),(0,r.Z)({},s);case N.ox:var V=o.createTenant.certificates.gemaltoCA;return s.createTenant.certificates.gemaltoCA=(0,r.Z)((0,r.Z)({},V),{},{cert:i.fileName,encoded_cert:i.value}),(0,r.Z)({},s);case N.j5:return(0,r.Z)((0,r.Z)({},o),{},{createTenant:{page:0,validPages:["tenantSize","configure","affinity","identityProvider","security","encryption"],storageClasses:[],limitSize:{},fields:{nameTenant:{tenantName:"",namespace:"",selectedStorageClass:"",selectedStorageType:""},configure:{customImage:!1,imageName:"",customDockerhub:!1,imageRegistry:"",imageRegistryUsername:"",imageRegistryPassword:"",exposeMinIO:!0,exposeConsole:!0,tenantCustom:!1,logSearchEnabled:!0,prometheusEnabled:!0,logSearchVolumeSize:"5",logSearchSizeFactor:"Gi",logSearchSelectedStorageClass:"default",logSearchImage:"",kesImage:"",logSearchPostgresImage:"",logSearchPostgresInitImage:"",prometheusVolumeSize:"5",prometheusSizeFactor:"Gi",prometheusSelectedStorageClass:"default",prometheusImage:"",prometheusSidecarImage:"",prometheusInitImage:"",tenantSecurityContext:{runAsUser:"1000",runAsGroup:"1000",fsGroup:"1000",runAsNonRoot:!0},logSearchSecurityContext:{runAsUser:"1000",runAsGroup:"1000",fsGroup:"1000",runAsNonRoot:!0},logSearchPostgresSecurityContext:{runAsUser:"999",runAsGroup:"999",fsGroup:"999",runAsNonRoot:!0},prometheusSecurityContext:{runAsUser:"1000",runAsGroup:"1000",fsGroup:"1000",runAsNonRoot:!0}},identityProvider:{idpSelection:"Built-in",accessKeys:[(0,z.z)(16)],secretKeys:[(0,z.z)(32)],openIDConfigurationURL:"",openIDClientID:"",openIDSecretID:"",openIDCallbackURL:"",openIDClaimName:"",openIDScopes:"",ADURL:"",ADSkipTLS:!1,ADServerInsecure:!1,ADGroupSearchBaseDN:"",ADGroupSearchFilter:"",ADUserDNs:[""],ADLookupBindDN:"",ADLookupBindPassword:"",ADUserDNSearchBaseDN:"",ADUserDNSearchFilter:"",ADServerStartTLS:!1},security:{enableAutoCert:!0,enableCustomCerts:!1,enableTLS:!0},encryption:{enableEncryption:!1,encryptionType:"vault",gemaltoEndpoint:"",gemaltoToken:"",gemaltoDomain:"",gemaltoRetry:"0",awsEndpoint:"",awsRegion:"",awsKMSKey:"",awsAccessKey:"",awsSecretKey:"",awsToken:"",vaultEndpoint:"",vaultEngine:"",vaultNamespace:"",vaultPrefix:"",vaultAppRoleEngine:"",vaultId:"",vaultSecret:"",vaultRetry:"0",vaultPing:"0",azureEndpoint:"",azureTenantID:"",azureClientID:"",azureClientSecret:"",gcpProjectID:"",gcpEndpoint:"",gcpClientEmail:"",gcpClientID:"",gcpPrivateKeyID:"",gcpPrivateKey:"",enableCustomCertsForKES:!1,replicas:"1",kesSecurityContext:{runAsUser:"1000",runAsGroup:"1000",fsGroup:"1000",runAsNonRoot:!0}},tenantSize:{volumeSize:"1024",sizeFactor:"Gi",drivesPerServer:"4",nodes:"4",memoryNode:"2",ecParity:"",ecParityChoices:[],cleanECChoices:[],untouchedECField:!0,distribution:{error:"",nodes:0,persistentVolumes:0,disks:0},ecParityCalc:{error:0,defaultEC:"",erasureCodeSet:0,maxEC:"",rawCapacity:"0",storageFactors:[]},limitSize:{},cpuToUse:"0",resourcesSpecifyLimit:!1,resourcesCPURequestError:"",resourcesCPURequest:"",resourcesCPULimitError:"",resourcesCPULimit:"",resourcesMemoryRequestError:"",resourcesMemoryRequest:"",resourcesMemoryLimitError:"",resourcesMemoryLimit:"",resourcesSize:{error:"",memoryRequest:0,memoryLimit:0,cpuRequest:0,cpuLimit:0},maxAllocatableResources:{min_allocatable_mem:0,min_allocatable_cpu:0,cpu_priority:{max_allocatable_cpu:0,max_allocatable_mem:0},mem_priority:{max_allocatable_cpu:0,max_allocatable_mem:0}},maxCPUsUse:"0",maxMemorySize:"0",integrationSelection:{driveSize:{driveSize:"0",sizeUnit:"B"},CPU:0,typeSelection:"",memory:0,drivesPerServer:0,storageClass:""}},affinity:{nodeSelectorLabels:"",podAffinity:"default",withPodAntiAffinity:!0}},certificates:{minioCertificates:[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}],caCertificates:[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}],consoleCaCertificates:[{id:Date.now().toString(),key:"",cert:"",encoded_key:"",encoded_cert:""}],consoleCertificate:{id:"console_cert_pair",key:"",cert:"",encoded_key:"",encoded_cert:""},serverCertificate:{id:"encryptionServerCertificate",key:"",cert:"",encoded_key:"",encoded_cert:""},clientCertificate:{id:"encryptionClientCertificate",key:"",cert:"",encoded_key:"",encoded_cert:""},vaultCertificate:{id:"encryptionVaultCertificate",key:"",cert:"",encoded_key:"",encoded_cert:""},vaultCA:{id:"encryptionVaultCA",key:"",cert:"",encoded_key:"",encoded_cert:""},gemaltoCA:{id:"encryptionGemaltoCA",key:"",cert:"",encoded_key:"",encoded_cert:""}},nodeSelectorPairs:[{key:"",value:""}],tolerations:[{key:"",tolerationSeconds:{seconds:0},value:"",effect:B.y.NoSchedule,operator:B.I.Equal}]}});case N.Vr:return(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{nodeSelectorPairs:i.newArray})});case N.Mm:var G=(0,r.Z)((0,r.Z)({},o.tenantDetails),{},{loadingTenant:i.state});return(0,r.Z)((0,r.Z)({},o),{},{tenantDetails:(0,r.Z)({},G)});case N.Xq:var W=(0,r.Z)((0,r.Z)({},o.tenantDetails),{},{currentTenant:i.name,currentNamespace:i.namespace});return(0,r.Z)((0,r.Z)({},o),{},{tenantDetails:(0,r.Z)({},W)});case N.f$:var q=null;i.tenant&&(q={tenantInfo:(0,r.Z)({},i.tenant)});var K=(0,r.Z)((0,r.Z)({},o.tenantDetails),q);return(0,r.Z)((0,r.Z)({},o),{},{tenantDetails:(0,r.Z)({},K)});case N.E0:var $=(0,r.Z)((0,r.Z)({},o.tenantDetails),{},{currentTab:i.tab});return(0,r.Z)((0,r.Z)({},o),{},{tenantDetails:(0,r.Z)({},$)});case N.jm:var Y=(0,m.Z)(o.createTenant.tolerations);return Y[i.index]=i.toleration,(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{tolerations:(0,m.Z)(Y)})});case N.GO:var Q=[].concat((0,m.Z)(o.createTenant.tolerations),[{key:"",tolerationSeconds:{seconds:0},value:"",effect:B.y.NoSchedule,operator:B.I.Equal}]);return(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{tolerations:(0,m.Z)(Q)})});case N.FG:var J=o.createTenant.tolerations.filter((function(e,t){return t!==i.index}));return(0,r.Z)((0,r.Z)({},o),{},{createTenant:(0,r.Z)((0,r.Z)({},o.createTenant),{},{tolerations:(0,m.Z)(J)})});case N.vG:return(0,r.Z)((0,r.Z)({},o),{},{addPool:(0,r.Z)((0,r.Z)({},o.addPool),{},{addPoolLoading:i.state})});case N.Lz:if(k()(s.addPool.fields,"".concat(i.page,".").concat(i.field))){var X=R()(s.addPool.fields,"".concat(i.page),{}),ee={};ee[i.field]=i.value;var te=(0,r.Z)((0,r.Z)({},X),ee);return s.addPool.fields[i.page]=(0,r.Z)({},te),(0,r.Z)({},s)}return o;case N.Ag:var ne=(0,m.Z)(o.addPool.validPages);if(i.status)ne.includes(i.page)||(ne.push(i.page),s.addPool.validPages=(0,m.Z)(ne));else{var re=ne.filter((function(e){return e!==i.page}));s.addPool.validPages=(0,m.Z)(re)}return(0,r.Z)({},s);case N.UD:return(0,r.Z)((0,r.Z)({},s),{},{addPool:(0,r.Z)((0,r.Z)({},s.addPool),{},{storageClasses:i.storageClasses})});case N.hm:var ae=(0,m.Z)(o.addPool.fields.tolerations);return ae[i.index]=i.toleration,(0,r.Z)((0,r.Z)({},o),{},{addPool:(0,r.Z)((0,r.Z)({},o.addPool),{},{fields:(0,r.Z)((0,r.Z)({},o.addPool.fields),{},{tolerations:(0,m.Z)(ae)})})});case N.vM:var oe=[].concat((0,m.Z)(o.addPool.fields.tolerations),[{key:"",tolerationSeconds:{seconds:0},value:"",effect:B.y.NoSchedule,operator:B.I.Equal}]);return(0,r.Z)((0,r.Z)({},o),{},{addPool:(0,r.Z)((0,r.Z)({},o.addPool),{},{fields:(0,r.Z)((0,r.Z)({},o.addPool.fields),{},{tolerations:(0,m.Z)(oe)})})});case N.Jj:var ie=o.addPool.fields.tolerations.filter((function(e,t){return t!==i.index}));return(0,r.Z)((0,r.Z)({},o),{},{addPool:(0,r.Z)((0,r.Z)({},o.addPool),{},{fields:(0,r.Z)((0,r.Z)({},o.addPool.fields),{},{tolerations:(0,m.Z)(ie)})})});case N.Q2:return(0,r.Z)((0,r.Z)({},o),{},{addPool:(0,r.Z)((0,r.Z)({},o.addPool),{},{fields:(0,r.Z)((0,r.Z)({},o.addPool.fields),{},{nodeSelectorPairs:i.newArray})})});case N.vb:return(0,r.Z)((0,r.Z)({},o),{},{tenantDetails:(0,r.Z)((0,r.Z)({},o.tenantDetails),{},{selectedPool:i.pool})});case N.FM:return(0,r.Z)((0,r.Z)({},o),{},{addPool:{addPoolLoading:!1,validPages:["affinity","configure"],storageClasses:[],limitSize:{},fields:{setup:{numberOfNodes:0,storageClass:"",volumeSize:0,volumesPerServer:0},affinity:{nodeSelectorLabels:"",podAffinity:"default",withPodAntiAffinity:!0},configuration:{securityContextEnabled:!1,securityContext:{runAsUser:"1000",runAsGroup:"1000",fsGroup:"1000",runAsNonRoot:!0}},nodeSelectorPairs:[{key:"",value:""}],tolerations:[{key:"",tolerationSeconds:{seconds:0},value:"",effect:B.y.NoSchedule,operator:B.I.Equal}]}}});default:return o}},directCSI:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:U,t=arguments.length>1?arguments[1]:void 0;if(t.type===F){if(""!==t.driveName){var n=(0,r.Z)({},e);return n.selectedDrive=t.driveName,n}return e}return e},dashboard:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:G,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case V.N1:return(0,r.Z)((0,r.Z)({},e),{},{zoom:{openZoom:!0,widgetRender:(0,r.Z)({},t.widget)}});case V.cM:return(0,r.Z)((0,r.Z)({},e),{},{zoom:{openZoom:!1,widgetRender:null}});default:return e}}}),q=function e(t,n,r){var i;if("function"===typeof n&&"function"===typeof r||"function"===typeof r&&"function"===typeof arguments[3])throw new Error(a(0));if("function"===typeof n&&"undefined"===typeof r&&(r=n,n=void 0),"undefined"!==typeof r){if("function"!==typeof r)throw new Error(a(1));return r(e)(t,n)}if("function"!==typeof t)throw new Error(a(2));var c=t,u=n,d=[],f=d,p=!1;function h(){f===d&&(f=d.slice())}function m(){if(p)throw new Error(a(3));return u}function v(e){if("function"!==typeof e)throw new Error(a(4));if(p)throw new Error(a(5));var t=!0;return h(),f.push(e),function(){if(t){if(p)throw new Error(a(6));t=!1,h();var n=f.indexOf(e);f.splice(n,1),d=null}}}function g(e){if(!l(e))throw new Error(a(7));if("undefined"===typeof e.type)throw new Error(a(8));if(p)throw new Error(a(9));try{p=!0,u=c(u,e)}finally{p=!1}for(var t=d=f,n=0;n0?u(b,--y):0,v--,10===x&&(v=1,m--),x}function S(){return x=y2||C(x)>3?"":" "}function O(e,t){for(;--t&&S()&&!(x<48||x>102||x>57&&x<65||x>70&&x<97););return T(e,E()+(t<6&&32==j()&&32==S()))}function R(e){for(;S();)switch(x){case e:return y;case 34:case 39:34!==e&&39!==e&&R(x);break;case 40:41===e&&R(e);break;case 92:S()}return y}function N(e,t){for(;S()&&e+x!==57&&(e+x!==84||47!==j()););return"/*"+T(t,y-1)+"*"+o(47===e?e:S())}function z(e){for(;!C(j());)S();return T(e,y)}var I="-ms-",L="-moz-",D="-webkit-",B="comm",H="rule",F="decl",U="@keyframes";function V(e,t){for(var n="",r=p(e),a=0;a6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+L+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?W(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,f(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+D)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+D+(45===u(e,14)?"inline-":"")+"box$3$1"+D+"$2$3$1"+I+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return D+e+I+e+e}return e}function q(e){return M(K("",null,null,null,[""],e=A(e),0,[0],e))}function K(e,t,n,r,a,i,s,u,d){for(var p=0,m=0,v=s,g=0,y=0,x=0,b=1,w=1,_=1,T=0,C="",A=a,M=i,R=r,I=C;w;)switch(x=T,T=S()){case 40:if(108!=x&&58==I.charCodeAt(v-1)){-1!=c(I+=l(P(T),"&","&\f"),"&\f")&&(_=-1);break}case 34:case 39:case 91:I+=P(T);break;case 9:case 10:case 13:case 32:I+=k(x);break;case 92:I+=O(E()-1,7);continue;case 47:switch(j()){case 42:case 47:h(Y(N(S(),E()),t,n),d);break;default:I+="/"}break;case 123*b:u[p++]=f(I)*_;case 125*b:case 59:case 0:switch(T){case 0:case 125:w=0;case 59+m:y>0&&f(I)-v&&h(y>32?Q(I+";",r,n,v-1):Q(l(I," ","")+";",r,n,v-2),d);break;case 59:I+=";";default:if(h(R=$(I,t,n,p,m,a,u,C,A=[],M=[],v),i),123===T)if(0===m)K(I,t,R,R,A,i,v,u,M);else switch(g){case 100:case 109:case 115:K(e,R,R,r&&h($(e,R,R,0,0,a,u,C,a,A=[],v),M),a,M,v,u,r?A:M);break;default:K(I,R,R,R,[""],M,0,u,M)}}p=m=y=0,b=_=1,C=I="",v=s;break;case 58:v=1+f(I),y=x;default:if(b<1)if(123==T)--b;else if(125==T&&0==b++&&125==Z())continue;switch(I+=o(T),T*b){case 38:_=m>0?1:(I+="\f",-1);break;case 44:u[p++]=(f(I)-1)*_,_=1;break;case 64:45===j()&&(I+=P(S())),g=j(),m=v=f(C=I+=z(E())),T++;break;case 45:45===x&&2==f(I)&&(b=0)}}return i}function $(e,t,n,r,o,i,c,u,f,h,m){for(var v=o-1,g=0===o?i:[""],y=p(g),x=0,b=0,_=0;x0?g[Z]+" "+S:l(S,/&\f/g,g[Z])))&&(f[_++]=j);return w(e,t,n,0===o?H:u,f,h,m)}function Y(e,t,n){return w(e,t,n,B,o(x),d(e,2,-2),0)}function Q(e,t,n,r){return w(e,t,n,F,d(e,0,r),d(e,r+1,-1),r)}var J=function(e,t,n){for(var r=0,a=0;r=a,a=j(),38===r&&12===a&&(t[n]=1),!C(a);)S();return T(e,y)},X=function(e,t){return M(function(e,t){var n=-1,r=44;do{switch(C(r)){case 0:38===r&&12===j()&&(t[n]=1),e[n]+=J(y-1,t,n);break;case 2:e[n]+=P(r);break;case 4:if(44===r){e[++n]=58===j()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=o(r)}}while(r=S());return e}(A(e),t))},ee=new WeakMap,te=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ee.get(n))&&!r){ee.set(e,!0);for(var a=[],o=X(t,a),i=n.props,s=0,l=0;s-1&&!e.return)switch(e.type){case F:e.return=W(e.value,e.length);break;case U:return V([_(e,{value:l(e.value,"@","@"+D)})],r);case H:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([_(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return V([_(e,{props:[l(t,/:(plac\w+)/,":-webkit-input-$1")]}),_(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),_(e,{props:[l(t,/:(plac\w+)/,I+"input-$1")]})],r)}return""}))}}],ae=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var a=e.stylisPlugins||re;var o,i,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},a={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},o=n(93782),i=/[A-Z]|^ms/g,s=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},c=function(e){return null!=e&&"boolean"!==typeof e},u=(0,o.Z)((function(e){return l(e)?e:e.replace(i,"-$&").toLowerCase()})),d=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(s,(function(e,t,n){return p={name:t,styles:n,next:p},t}))}return 1===a[e]||l(e)||"number"!==typeof t||0===t?t:t+"px"};function f(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return p={name:n.name,styles:n.styles,next:p},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)p={name:r.name,styles:r.styles,next:p},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a0){var a,o,i=Boolean((null==(a=T.current)?void 0:a.shiftKey)&&"Tab"===(null==(o=T.current)?void 0:o.key)),s=r[0],l=r[r.length-1];i?l.focus():s.focus()}else n.focus()}}else x.current=!1},n=function(t){T.current=t,!d&&g()&&"Tab"===t.key&&e.activeElement===j.current&&t.shiftKey&&(x.current=!0,w.current.focus())};e.addEventListener("focusin",t),e.addEventListener("keydown",n,!0);var r=setInterval((function(){"BODY"===e.activeElement.tagName&&t()}),50);return function(){clearInterval(r),e.removeEventListener("focusin",t),e.removeEventListener("keydown",n,!0)}}}),[s,d,p,g,y,m]);var C=function(e){null===_.current&&(_.current=e.relatedTarget),S.current=!0};return(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)("div",{tabIndex:0,onFocus:C,ref:b,"data-test":"sentinelStart"}),r.cloneElement(t,{ref:E,onFocus:function(e){null===_.current&&(_.current=e.relatedTarget),S.current=!0,Z.current=e.target;var n=t.props.onFocus;n&&n(e)}}),(0,i.jsx)("div",{tabIndex:0,onFocus:C,ref:w,"data-test":"sentinelEnd"})]})}},57829:function(e,t){"use strict";var n=function(e){return e},r=function(){var e=n;return{configure:function(t){e=t},generate:function(t){return e(t)},reset:function(){e=n}}}();t.Z=r},90767:function(e,t,n){"use strict";function r(e,t,n){var r={};return Object.keys(e).forEach((function(a){r[a]=e[a].reduce((function(e,r){return r&&(n&&n[r]&&e.push(n[r]),e.push(t(r))),e}),[]).join(" ")})),r}n.d(t,{Z:function(){return r}})},95159:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(57829),a={active:"Mui-active",checked:"Mui-checked",completed:"Mui-completed",disabled:"Mui-disabled",error:"Mui-error",expanded:"Mui-expanded",focused:"Mui-focused",focusVisible:"Mui-focusVisible",required:"Mui-required",selected:"Mui-selected"};function o(e,t){return a[t]||"".concat(r.Z.generate(e),"-").concat(t)}},30208:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(95159);function a(e,t){var n={};return t.forEach((function(t){n[t]=(0,r.Z)(e,t)})),n}},90183:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(87462),a=n(20627);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return(0,a.Z)(e)?t:(0,r.Z)({},t,{ownerState:(0,r.Z)({},t.ownerState,n)})}},20627:function(e,t){"use strict";t.Z=function(e){return"string"===typeof e}},98008:function(e,t,n){"use strict";var r=n(95318);t.Z=void 0;var a=r(n(45649)),o=n(80184),i=(0,a.default)((0,o.jsx)("path",{d:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"}),"Menu");t.Z=i},45649:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(28610)},81489:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(63366),a=n(87462),o=n(72791),i=n(20627),s=n(28182),l=n(90767),c=n(30208),u=n(95159);function d(e){return(0,u.Z)("MuiBackdrop",e)}(0,c.Z)("MuiBackdrop",["root","invisible"]);var f=n(80184),p=["classes","className","invisible","component","components","componentsProps","theme"],h=o.forwardRef((function(e,t){var n=e.classes,o=e.className,c=e.invisible,u=void 0!==c&&c,h=e.component,m=void 0===h?"div":h,v=e.components,g=void 0===v?{}:v,y=e.componentsProps,x=void 0===y?{}:y,b=e.theme,w=(0,r.Z)(e,p),_=(0,a.Z)({},e,{classes:n,invisible:u}),Z=function(e){var t=e.classes,n={root:["root",e.invisible&&"invisible"]};return(0,l.Z)(n,d,t)}(_),S=g.Root||m,j=x.root||{};return(0,f.jsx)(S,(0,a.Z)({"aria-hidden":!0},j,!(0,i.Z)(S)&&{as:m,ownerState:(0,a.Z)({},_,j.ownerState),theme:b},{ref:t},w,{className:(0,s.Z)(Z.root,j.className,o)}))})),m=n(47630),v=n(93736),g=n(60627),y=["children","components","componentsProps","className","invisible","open","transitionDuration","TransitionComponent"],x=(0,m.ZP)("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.invisible&&t.invisible]}})((function(e){var t=e.ownerState;return(0,a.Z)({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},t.invisible&&{backgroundColor:"transparent"})})),b=o.forwardRef((function(e,t){var n,o=(0,v.Z)({props:e,name:"MuiBackdrop"}),s=o.children,l=o.components,c=void 0===l?{}:l,u=o.componentsProps,d=void 0===u?{}:u,p=o.className,m=o.invisible,b=void 0!==m&&m,w=o.open,_=o.transitionDuration,Z=o.TransitionComponent,S=void 0===Z?g.Z:Z,j=(0,r.Z)(o,y),E=function(e){return e.classes}((0,a.Z)({},o,{invisible:b}));return(0,f.jsx)(S,(0,a.Z)({in:w,timeout:_},j,{children:(0,f.jsx)(h,{className:p,invisible:b,components:(0,a.Z)({Root:x},c),componentsProps:{root:(0,a.Z)({},d.root,(!c.Root||!(0,i.Z)(c.Root))&&{ownerState:(0,a.Z)({},null==(n=d.root)?void 0:n.ownerState)})},classes:E,ref:t,children:s})}))}))},64554:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(87462),a=n(63366),o=n(72791),i=n(28182),s=n(80594),l=n(60104),c=n(78519),u=n(30418),d=n(80184),f=["className","component"];var p=n(57829),h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.defaultTheme,n=e.defaultClassName,p=void 0===n?"MuiBox-root":n,h=e.generateClassName,m=e.styleFunctionSx,v=void 0===m?l.Z:m,g=(0,s.ZP)("div")(v),y=o.forwardRef((function(e,n){var o=(0,u.Z)(t),s=(0,c.Z)(e),l=s.className,m=s.component,v=void 0===m?"div":m,y=(0,a.Z)(s,f);return(0,d.jsx)(g,(0,r.Z)({as:v,ref:n,className:(0,i.Z)(l,h?h(p):p),theme:o},y))}));return y}({defaultTheme:(0,n(83625).Z)(),defaultClassName:"MuiBox-root",generateClassName:p.Z.generate}),m=h},36151:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(35735),c=n(90767),u=n(12065),d=n(47630),f=n(93736),p=n(95080),h=n(14036),m=n(95159);function v(e){return(0,m.Z)("MuiButton",e)}var g=(0,n(30208).Z)("MuiButton",["root","text","textInherit","textPrimary","textSecondary","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","contained","containedInherit","containedPrimary","containedSecondary","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]);var y=i.createContext({}),x=n(80184),b=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],w=function(e){return(0,o.Z)({},"small"===e.size&&{"& > *:nth-of-type(1)":{fontSize:18}},"medium"===e.size&&{"& > *:nth-of-type(1)":{fontSize:20}},"large"===e.size&&{"& > *:nth-of-type(1)":{fontSize:22}})},_=(0,d.ZP)(p.Z,{shouldForwardProp:function(e){return(0,d.FO)(e)||"classes"===e},name:"MuiButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["".concat(n.variant).concat((0,h.Z)(n.color))],t["size".concat((0,h.Z)(n.size))],t["".concat(n.variant,"Size").concat((0,h.Z)(n.size))],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,o.Z)({},n.typography.button,(t={minWidth:64,padding:"6px 16px",borderRadius:n.shape.borderRadius,transition:n.transitions.create(["background-color","box-shadow","border-color","color"],{duration:n.transitions.duration.short}),"&:hover":(0,o.Z)({textDecoration:"none",backgroundColor:(0,u.Fq)(n.palette.text.primary,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"text"===a.variant&&"inherit"!==a.color&&{backgroundColor:(0,u.Fq)(n.palette[a.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"outlined"===a.variant&&"inherit"!==a.color&&{border:"1px solid ".concat(n.palette[a.color].main),backgroundColor:(0,u.Fq)(n.palette[a.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"contained"===a.variant&&{backgroundColor:n.palette.grey.A100,boxShadow:n.shadows[4],"@media (hover: none)":{boxShadow:n.shadows[2],backgroundColor:n.palette.grey[300]}},"contained"===a.variant&&"inherit"!==a.color&&{backgroundColor:n.palette[a.color].dark,"@media (hover: none)":{backgroundColor:n.palette[a.color].main}}),"&:active":(0,o.Z)({},"contained"===a.variant&&{boxShadow:n.shadows[8]})},(0,r.Z)(t,"&.".concat(g.focusVisible),(0,o.Z)({},"contained"===a.variant&&{boxShadow:n.shadows[6]})),(0,r.Z)(t,"&.".concat(g.disabled),(0,o.Z)({color:n.palette.action.disabled},"outlined"===a.variant&&{border:"1px solid ".concat(n.palette.action.disabledBackground)},"outlined"===a.variant&&"secondary"===a.color&&{border:"1px solid ".concat(n.palette.action.disabled)},"contained"===a.variant&&{color:n.palette.action.disabled,boxShadow:n.shadows[0],backgroundColor:n.palette.action.disabledBackground})),t),"text"===a.variant&&{padding:"6px 8px"},"text"===a.variant&&"inherit"!==a.color&&{color:n.palette[a.color].main},"outlined"===a.variant&&{padding:"5px 15px",border:"1px solid ".concat("light"===n.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)")},"outlined"===a.variant&&"inherit"!==a.color&&{color:n.palette[a.color].main,border:"1px solid ".concat((0,u.Fq)(n.palette[a.color].main,.5))},"contained"===a.variant&&{color:n.palette.getContrastText(n.palette.grey[300]),backgroundColor:n.palette.grey[300],boxShadow:n.shadows[2]},"contained"===a.variant&&"inherit"!==a.color&&{color:n.palette[a.color].contrastText,backgroundColor:n.palette[a.color].main},"inherit"===a.color&&{color:"inherit",borderColor:"currentColor"},"small"===a.size&&"text"===a.variant&&{padding:"4px 5px",fontSize:n.typography.pxToRem(13)},"large"===a.size&&"text"===a.variant&&{padding:"8px 11px",fontSize:n.typography.pxToRem(15)},"small"===a.size&&"outlined"===a.variant&&{padding:"3px 9px",fontSize:n.typography.pxToRem(13)},"large"===a.size&&"outlined"===a.variant&&{padding:"7px 21px",fontSize:n.typography.pxToRem(15)},"small"===a.size&&"contained"===a.variant&&{padding:"4px 10px",fontSize:n.typography.pxToRem(13)},"large"===a.size&&"contained"===a.variant&&{padding:"8px 22px",fontSize:n.typography.pxToRem(15)},a.fullWidth&&{width:"100%"})}),(function(e){var t;return e.ownerState.disableElevation&&(t={boxShadow:"none","&:hover":{boxShadow:"none"}},(0,r.Z)(t,"&.".concat(g.focusVisible),{boxShadow:"none"}),(0,r.Z)(t,"&:active",{boxShadow:"none"}),(0,r.Z)(t,"&.".concat(g.disabled),{boxShadow:"none"}),t)})),Z=(0,d.ZP)("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.startIcon,t["iconSize".concat((0,h.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,o.Z)({display:"inherit",marginRight:8,marginLeft:-4},"small"===t.size&&{marginLeft:-2},w(t))})),S=(0,d.ZP)("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.endIcon,t["iconSize".concat((0,h.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,o.Z)({display:"inherit",marginRight:-4,marginLeft:8},"small"===t.size&&{marginRight:-2},w(t))})),j=i.forwardRef((function(e,t){var n=i.useContext(y),r=(0,l.Z)(n,e),u=(0,f.Z)({props:r,name:"MuiButton"}),d=u.children,p=u.color,m=void 0===p?"primary":p,g=u.component,w=void 0===g?"button":g,j=u.className,E=u.disabled,T=void 0!==E&&E,C=u.disableElevation,A=void 0!==C&&C,M=u.disableFocusRipple,P=void 0!==M&&M,k=u.endIcon,O=u.focusVisibleClassName,R=u.fullWidth,N=void 0!==R&&R,z=u.size,I=void 0===z?"medium":z,L=u.startIcon,D=u.type,B=u.variant,H=void 0===B?"text":B,F=(0,a.Z)(u,b),U=(0,o.Z)({},u,{color:m,component:w,disabled:T,disableElevation:A,disableFocusRipple:P,fullWidth:N,size:I,type:D,variant:H}),V=function(e){var t=e.color,n=e.disableElevation,r=e.fullWidth,a=e.size,i=e.variant,s=e.classes,l={root:["root",i,"".concat(i).concat((0,h.Z)(t)),"size".concat((0,h.Z)(a)),"".concat(i,"Size").concat((0,h.Z)(a)),"inherit"===t&&"colorInherit",n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["startIcon","iconSize".concat((0,h.Z)(a))],endIcon:["endIcon","iconSize".concat((0,h.Z)(a))]},u=(0,c.Z)(l,v,s);return(0,o.Z)({},s,u)}(U),G=L&&(0,x.jsx)(Z,{className:V.startIcon,ownerState:U,children:L}),W=k&&(0,x.jsx)(S,{className:V.endIcon,ownerState:U,children:k});return(0,x.jsxs)(_,(0,o.Z)({ownerState:U,className:(0,s.Z)(j,n.className),component:w,disabled:T,focusRipple:!P,focusVisibleClassName:(0,s.Z)(V.focusVisible,O),ref:t,type:D},F,{classes:V,children:[G,d,W]}))}))},95080:function(e,t,n){"use strict";n.d(t,{Z:function(){return W}});var r=n(29439),a=n(4942),o=n(87462),i=n(63366),s=n(72791),l=n(28182),c=n(90767),u=n(47630),d=n(93736),f=n(42071),p=n(89683),h=n(23031),m=n(93433),v=n(30168),g=n(75660),y=n(52554),x=n(80184);var b=function(e){var t=e.className,n=e.classes,a=e.pulsate,o=void 0!==a&&a,i=e.rippleX,c=e.rippleY,u=e.rippleSize,d=e.in,f=e.onExited,p=e.timeout,h=s.useState(!1),m=(0,r.Z)(h,2),v=m[0],g=m[1],y=(0,l.Z)(t,n.ripple,n.rippleVisible,o&&n.ripplePulsate),b={width:u,height:u,top:-u/2+c,left:-u/2+i},w=(0,l.Z)(n.child,v&&n.childLeaving,o&&n.childPulsate);return d||v||g(!0),s.useEffect((function(){if(!d&&null!=f){var e=setTimeout(f,p);return function(){clearTimeout(e)}}}),[f,d,p]),(0,x.jsx)("span",{className:y,style:b,children:(0,x.jsx)("span",{className:w})})},w=n(30208);var _,Z,S,j,E,T,C,A,M=(0,w.Z)("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),P=["center","classes","className"],k=(0,y.F4)(E||(E=_||(_=(0,v.Z)(["\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n"])))),O=(0,y.F4)(T||(T=Z||(Z=(0,v.Z)(["\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n"])))),R=(0,y.F4)(C||(C=S||(S=(0,v.Z)(["\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n"])))),N=(0,u.ZP)("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),z=(0,u.ZP)(b,{name:"MuiTouchRipple",slot:"Ripple"})(A||(A=j||(j=(0,v.Z)(["\n opacity: 0;\n position: absolute;\n\n &."," {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ",";\n animation-duration: ","ms;\n animation-timing-function: ",";\n }\n\n &."," {\n animation-duration: ","ms;\n }\n\n & ."," {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & ."," {\n opacity: 0;\n animation-name: ",";\n animation-duration: ","ms;\n animation-timing-function: ",";\n }\n\n & ."," {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ",";\n animation-duration: 2500ms;\n animation-timing-function: ",";\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n"]))),M.rippleVisible,k,550,(function(e){return e.theme.transitions.easing.easeInOut}),M.ripplePulsate,(function(e){return e.theme.transitions.duration.shorter}),M.child,M.childLeaving,O,550,(function(e){return e.theme.transitions.easing.easeInOut}),M.childPulsate,R,(function(e){return e.theme.transitions.easing.easeInOut})),I=s.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiTouchRipple"}),a=n.center,c=void 0!==a&&a,u=n.classes,f=void 0===u?{}:u,p=n.className,h=(0,i.Z)(n,P),v=s.useState([]),y=(0,r.Z)(v,2),b=y[0],w=y[1],_=s.useRef(0),Z=s.useRef(null);s.useEffect((function(){Z.current&&(Z.current(),Z.current=null)}),[b]);var S=s.useRef(!1),j=s.useRef(null),E=s.useRef(null),T=s.useRef(null);s.useEffect((function(){return function(){clearTimeout(j.current)}}),[]);var C=s.useCallback((function(e){var t=e.pulsate,n=e.rippleX,r=e.rippleY,a=e.rippleSize,o=e.cb;w((function(e){return[].concat((0,m.Z)(e),[(0,x.jsx)(z,{classes:{ripple:(0,l.Z)(f.ripple,M.ripple),rippleVisible:(0,l.Z)(f.rippleVisible,M.rippleVisible),ripplePulsate:(0,l.Z)(f.ripplePulsate,M.ripplePulsate),child:(0,l.Z)(f.child,M.child),childLeaving:(0,l.Z)(f.childLeaving,M.childLeaving),childPulsate:(0,l.Z)(f.childPulsate,M.childPulsate)},timeout:550,pulsate:t,rippleX:n,rippleY:r,rippleSize:a},_.current)])})),_.current+=1,Z.current=o}),[f]),A=s.useCallback((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t.pulsate,a=void 0!==r&&r,o=t.center,i=void 0===o?c||t.pulsate:o,s=t.fakeElement,l=void 0!==s&&s;if("mousedown"===e.type&&S.current)S.current=!1;else{"touchstart"===e.type&&(S.current=!0);var u,d,f,p=l?null:T.current,h=p?p.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(i||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)u=Math.round(h.width/2),d=Math.round(h.height/2);else{var m=e.touches?e.touches[0]:e,v=m.clientX,g=m.clientY;u=Math.round(v-h.left),d=Math.round(g-h.top)}if(i)(f=Math.sqrt((2*Math.pow(h.width,2)+Math.pow(h.height,2))/3))%2===0&&(f+=1);else{var y=2*Math.max(Math.abs((p?p.clientWidth:0)-u),u)+2,x=2*Math.max(Math.abs((p?p.clientHeight:0)-d),d)+2;f=Math.sqrt(Math.pow(y,2)+Math.pow(x,2))}e.touches?null===E.current&&(E.current=function(){C({pulsate:a,rippleX:u,rippleY:d,rippleSize:f,cb:n})},j.current=setTimeout((function(){E.current&&(E.current(),E.current=null)}),80)):C({pulsate:a,rippleX:u,rippleY:d,rippleSize:f,cb:n})}}),[c,C]),k=s.useCallback((function(){A({},{pulsate:!0})}),[A]),O=s.useCallback((function(e,t){if(clearTimeout(j.current),"touchend"===e.type&&E.current)return E.current(),E.current=null,void(j.current=setTimeout((function(){O(e,t)})));E.current=null,w((function(e){return e.length>0?e.slice(1):e})),Z.current=t}),[]);return s.useImperativeHandle(t,(function(){return{pulsate:k,start:A,stop:O}}),[k,A,O]),(0,x.jsx)(N,(0,o.Z)({className:(0,l.Z)(f.root,M.root,p),ref:T},h,{children:(0,x.jsx)(g.Z,{component:null,exit:!0,children:b})}))})),L=I,D=n(95159);function B(e){return(0,D.Z)("MuiButtonBase",e)}var H,F=(0,w.Z)("MuiButtonBase",["root","disabled","focusVisible"]),U=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],V=(0,u.ZP)("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:function(e,t){return t.root}})((H={display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"}},(0,a.Z)(H,"&.".concat(F.disabled),{pointerEvents:"none",cursor:"default"}),(0,a.Z)(H,"@media print",{colorAdjust:"exact"}),H)),G=s.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiButtonBase"}),a=n.action,u=n.centerRipple,m=void 0!==u&&u,v=n.children,g=n.className,y=n.component,b=void 0===y?"button":y,w=n.disabled,_=void 0!==w&&w,Z=n.disableRipple,S=void 0!==Z&&Z,j=n.disableTouchRipple,E=void 0!==j&&j,T=n.focusRipple,C=void 0!==T&&T,A=n.LinkComponent,M=void 0===A?"a":A,P=n.onBlur,k=n.onClick,O=n.onContextMenu,R=n.onDragLeave,N=n.onFocus,z=n.onFocusVisible,I=n.onKeyDown,D=n.onKeyUp,H=n.onMouseDown,F=n.onMouseLeave,G=n.onMouseUp,W=n.onTouchEnd,q=n.onTouchMove,K=n.onTouchStart,$=n.tabIndex,Y=void 0===$?0:$,Q=n.TouchRippleProps,J=n.touchRippleRef,X=n.type,ee=(0,i.Z)(n,U),te=s.useRef(null),ne=s.useRef(null),re=(0,f.Z)(ne,J),ae=(0,h.Z)(),oe=ae.isFocusVisibleRef,ie=ae.onFocus,se=ae.onBlur,le=ae.ref,ce=s.useState(!1),ue=(0,r.Z)(ce,2),de=ue[0],fe=ue[1];function pe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:E;return(0,p.Z)((function(r){return t&&t(r),!n&&ne.current&&ne.current[e](r),!0}))}_&&de&&fe(!1),s.useImperativeHandle(a,(function(){return{focusVisible:function(){fe(!0),te.current.focus()}}}),[]),s.useEffect((function(){de&&C&&!S&&ne.current.pulsate()}),[S,C,de]);var he=pe("start",H),me=pe("stop",O),ve=pe("stop",R),ge=pe("stop",G),ye=pe("stop",(function(e){de&&e.preventDefault(),F&&F(e)})),xe=pe("start",K),be=pe("stop",W),we=pe("stop",q),_e=pe("stop",(function(e){se(e),!1===oe.current&&fe(!1),P&&P(e)}),!1),Ze=(0,p.Z)((function(e){te.current||(te.current=e.currentTarget),ie(e),!0===oe.current&&(fe(!0),z&&z(e)),N&&N(e)})),Se=function(){var e=te.current;return b&&"button"!==b&&!("A"===e.tagName&&e.href)},je=s.useRef(!1),Ee=(0,p.Z)((function(e){C&&!je.current&&de&&ne.current&&" "===e.key&&(je.current=!0,ne.current.stop(e,(function(){ne.current.start(e)}))),e.target===e.currentTarget&&Se()&&" "===e.key&&e.preventDefault(),I&&I(e),e.target===e.currentTarget&&Se()&&"Enter"===e.key&&!_&&(e.preventDefault(),k&&k(e))})),Te=(0,p.Z)((function(e){C&&" "===e.key&&ne.current&&de&&!e.defaultPrevented&&(je.current=!1,ne.current.stop(e,(function(){ne.current.pulsate(e)}))),D&&D(e),k&&e.target===e.currentTarget&&Se()&&" "===e.key&&!e.defaultPrevented&&k(e)})),Ce=b;"button"===Ce&&(ee.href||ee.to)&&(Ce=M);var Ae={};"button"===Ce?(Ae.type=void 0===X?"button":X,Ae.disabled=_):(ee.href||ee.to||(Ae.role="button"),_&&(Ae["aria-disabled"]=_));var Me=(0,f.Z)(le,te),Pe=(0,f.Z)(t,Me),ke=s.useState(!1),Oe=(0,r.Z)(ke,2),Re=Oe[0],Ne=Oe[1];s.useEffect((function(){Ne(!0)}),[]);var ze=Re&&!S&&!_;var Ie=(0,o.Z)({},n,{centerRipple:m,component:b,disabled:_,disableRipple:S,disableTouchRipple:E,focusRipple:C,tabIndex:Y,focusVisible:de}),Le=function(e){var t=e.disabled,n=e.focusVisible,r=e.focusVisibleClassName,a=e.classes,o={root:["root",t&&"disabled",n&&"focusVisible"]},i=(0,c.Z)(o,B,a);return n&&r&&(i.root+=" ".concat(r)),i}(Ie);return(0,x.jsxs)(V,(0,o.Z)({as:Ce,className:(0,l.Z)(Le.root,g),ownerState:Ie,onBlur:_e,onClick:k,onContextMenu:me,onFocus:Ze,onKeyDown:Ee,onKeyUp:Te,onMouseDown:he,onMouseLeave:ye,onMouseUp:ge,onDragLeave:ve,onTouchEnd:be,onTouchMove:we,onTouchStart:xe,ref:Pe,tabIndex:_?-1:Y,type:X},Ae,ee,{children:[v,ze?(0,x.jsx)(L,(0,o.Z)({ref:re,center:m},Q)):null]}))})),W=G},56125:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(18875),c=n(90767),u=n(47630),d=n(93736),f=n(81314),p=n(4999),h=n(13967),m=n(42071),v=n(95159);function g(e){return(0,v.Z)("MuiCollapse",e)}(0,n(30208).Z)("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);var y=n(80184),x=["addEndListener","children","className","collapsedSize","component","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","orientation","style","timeout","TransitionComponent"],b=(0,u.ZP)("div",{name:"MuiCollapse",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.orientation],"entered"===n.state&&t.entered,"exited"===n.state&&!n.in&&"0px"===n.collapsedSize&&t.hidden]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({height:0,overflow:"hidden",transition:t.transitions.create("height")},"horizontal"===n.orientation&&{height:"auto",width:0,transition:t.transitions.create("width")},"entered"===n.state&&(0,o.Z)({height:"auto",overflow:"visible"},"horizontal"===n.orientation&&{width:"auto"}),"exited"===n.state&&!n.in&&"0px"===n.collapsedSize&&{visibility:"hidden"})})),w=(0,u.ZP)("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:function(e,t){return t.wrapper}})((function(e){var t=e.ownerState;return(0,o.Z)({display:"flex",width:"100%"},"horizontal"===t.orientation&&{width:"auto",height:"100%"})})),_=(0,u.ZP)("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:function(e,t){return t.wrapperInner}})((function(e){var t=e.ownerState;return(0,o.Z)({width:"100%"},"horizontal"===t.orientation&&{width:"auto",height:"100%"})})),Z=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiCollapse"}),u=n.addEndListener,v=n.children,Z=n.className,S=n.collapsedSize,j=void 0===S?"0px":S,E=n.component,T=n.easing,C=n.in,A=n.onEnter,M=n.onEntered,P=n.onEntering,k=n.onExit,O=n.onExited,R=n.onExiting,N=n.orientation,z=void 0===N?"vertical":N,I=n.style,L=n.timeout,D=void 0===L?f.x9.standard:L,B=n.TransitionComponent,H=void 0===B?l.ZP:B,F=(0,a.Z)(n,x),U=(0,o.Z)({},n,{orientation:z,collapsedSize:j}),V=function(e){var t=e.orientation,n=e.classes,r={root:["root","".concat(t)],entered:["entered"],hidden:["hidden"],wrapper:["wrapper","".concat(t)],wrapperInner:["wrapperInner","".concat(t)]};return(0,c.Z)(r,g,n)}(U),G=(0,h.Z)(),W=i.useRef(),q=i.useRef(null),K=i.useRef(),$="number"===typeof j?"".concat(j,"px"):j,Y="horizontal"===z,Q=Y?"width":"height";i.useEffect((function(){return function(){clearTimeout(W.current)}}),[]);var J=i.useRef(null),X=(0,m.Z)(t,J),ee=function(e){return function(t){if(e){var n=J.current;void 0===t?e(n):e(n,t)}}},te=function(){return q.current?q.current[Y?"clientWidth":"clientHeight"]:0},ne=ee((function(e,t){q.current&&Y&&(q.current.style.position="absolute"),e.style[Q]=$,A&&A(e,t)})),re=ee((function(e,t){var n=te();q.current&&Y&&(q.current.style.position="");var r=(0,p.C)({style:I,timeout:D,easing:T},{mode:"enter"}),a=r.duration,o=r.easing;if("auto"===D){var i=G.transitions.getAutoHeightDuration(n);e.style.transitionDuration="".concat(i,"ms"),K.current=i}else e.style.transitionDuration="string"===typeof a?a:"".concat(a,"ms");e.style[Q]="".concat(n,"px"),e.style.transitionTimingFunction=o,P&&P(e,t)})),ae=ee((function(e,t){e.style[Q]="auto",M&&M(e,t)})),oe=ee((function(e){e.style[Q]="".concat(te(),"px"),k&&k(e)})),ie=ee(O),se=ee((function(e){var t=te(),n=(0,p.C)({style:I,timeout:D,easing:T},{mode:"exit"}),r=n.duration,a=n.easing;if("auto"===D){var o=G.transitions.getAutoHeightDuration(t);e.style.transitionDuration="".concat(o,"ms"),K.current=o}else e.style.transitionDuration="string"===typeof r?r:"".concat(r,"ms");e.style[Q]=$,e.style.transitionTimingFunction=a,R&&R(e)}));return(0,y.jsx)(H,(0,o.Z)({in:C,onEnter:ne,onEntered:ae,onEntering:re,onExit:oe,onExited:ie,onExiting:se,addEndListener:function(e){"auto"===D&&(W.current=setTimeout(e,K.current||0)),u&&u(J.current,e)},nodeRef:J,timeout:"auto"===D?null:D},F,{children:function(e,t){return(0,y.jsx)(b,(0,o.Z)({as:E,className:(0,s.Z)(V.root,Z,{entered:V.entered,exited:!C&&"0px"===$&&V.hidden}[e]),style:(0,o.Z)((0,r.Z)({},Y?"minWidth":"minHeight",$),I),ownerState:(0,o.Z)({},U,{state:e}),ref:X},t,{children:(0,y.jsx)(w,{ownerState:(0,o.Z)({},U,{state:e}),className:V.wrapper,ref:q,children:(0,y.jsx)(_,{ownerState:(0,o.Z)({},U,{state:e}),className:V.wrapperInner,children:v})})}))}}))}));Z.muiSupportAuto=!0;var S=Z},4708:function(e,t,n){"use strict";var r=n(87462),a=n(72791),o=n(93736),i=n(25502),s=n(80184),l=function(e,t){return(0,r.Z)({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&{colorScheme:e.palette.mode})},c=function(e){return(0,r.Z)({color:e.palette.text.primary},e.typography.body1,{backgroundColor:e.palette.background.default,"@media print":{backgroundColor:e.palette.common.white}})};t.ZP=function(e){var t=(0,o.Z)({props:e,name:"MuiCssBaseline"}),n=t.children,u=t.enableColorScheme,d=void 0!==u&&u;return(0,s.jsxs)(a.Fragment,{children:[(0,s.jsx)(i.Z,{styles:function(e){return function(e){var t,n,a={html:l(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1]),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:(0,r.Z)({margin:0},c(e),{"&::backdrop":{backgroundColor:e.palette.background.default}})},o=null==(t=e.components)||null==(n=t.MuiCssBaseline)?void 0:n.styleOverrides;return o&&(a=[a,o]),a}(e,d)}}),n]})}},90133:function(e,t,n){"use strict";n.d(t,{V:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiDivider",e)}var o=(0,n(30208).Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);t.Z=o},60627:function(e,t,n){"use strict";var r=n(87462),a=n(63366),o=n(72791),i=n(18875),s=n(13967),l=n(4999),c=n(42071),u=n(80184),d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],f={entering:{opacity:1},entered:{opacity:1}},p=o.forwardRef((function(e,t){var n=(0,s.Z)(),p={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},h=e.addEndListener,m=e.appear,v=void 0===m||m,g=e.children,y=e.easing,x=e.in,b=e.onEnter,w=e.onEntered,_=e.onEntering,Z=e.onExit,S=e.onExited,j=e.onExiting,E=e.style,T=e.timeout,C=void 0===T?p:T,A=e.TransitionComponent,M=void 0===A?i.ZP:A,P=(0,a.Z)(e,d),k=o.useRef(null),O=(0,c.Z)(g.ref,t),R=(0,c.Z)(k,O),N=function(e){return function(t){if(e){var n=k.current;void 0===t?e(n):e(n,t)}}},z=N(_),I=N((function(e,t){(0,l.n)(e);var r=(0,l.C)({style:E,timeout:C,easing:y},{mode:"enter"});e.style.webkitTransition=n.transitions.create("opacity",r),e.style.transition=n.transitions.create("opacity",r),b&&b(e,t)})),L=N(w),D=N(j),B=N((function(e){var t=(0,l.C)({style:E,timeout:C,easing:y},{mode:"exit"});e.style.webkitTransition=n.transitions.create("opacity",t),e.style.transition=n.transitions.create("opacity",t),Z&&Z(e)})),H=N(S);return(0,u.jsx)(M,(0,r.Z)({appear:v,in:x,nodeRef:k,onEnter:I,onEntered:L,onEntering:z,onExit:B,onExited:H,onExiting:D,addEndListener:function(e){h&&h(k.current,e)},timeout:C},P,{children:function(e,t){return o.cloneElement(g,(0,r.Z)({style:(0,r.Z)({opacity:0,visibility:"exited"!==e||x?void 0:"hidden"},f[e],E,g.props.style),ref:R},t))}}))}));t.Z=p},86596:function(e,t,n){"use strict";var r=n(4942),a=n(93433),o=n(63366),i=n(87462),s=n(72791),l=n(82466),c=n(90767),u=n(4834),d=n(47630),f=n(93736),p=n(96285),h=n(80184),m=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","type"],v=(0,d.ZP)(u.Ej,{shouldForwardProp:function(e){return(0,d.FO)(e)||"classes"===e},name:"MuiFilledInput",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[].concat((0,a.Z)((0,u.Gx)(e,t)),[!n.disableUnderline&&t.underline])}})((function(e){var t,n,a=e.theme,o=e.ownerState,s="light"===a.palette.mode,l=s?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",c=s?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)";return(0,i.Z)((t={position:"relative",backgroundColor:c,borderTopLeftRadius:a.shape.borderRadius,borderTopRightRadius:a.shape.borderRadius,transition:a.transitions.create("background-color",{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut}),"&:hover":{backgroundColor:s?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)","@media (hover: none)":{backgroundColor:c}}},(0,r.Z)(t,"&.".concat(p.Z.focused),{backgroundColor:c}),(0,r.Z)(t,"&.".concat(p.Z.disabled),{backgroundColor:s?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)"}),t),!o.disableUnderline&&(n={"&:after":{borderBottom:"2px solid ".concat(a.palette[o.color].main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:a.transitions.create("transform",{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut}),pointerEvents:"none"}},(0,r.Z)(n,"&.".concat(p.Z.focused,":after"),{transform:"scaleX(1)"}),(0,r.Z)(n,"&.".concat(p.Z.error,":after"),{borderBottomColor:a.palette.error.main,transform:"scaleX(1)"}),(0,r.Z)(n,"&:before",{borderBottom:"1px solid ".concat(l),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:a.transitions.create("border-bottom-color",{duration:a.transitions.duration.shorter}),pointerEvents:"none"}),(0,r.Z)(n,"&:hover:not(.".concat(p.Z.disabled,"):before"),{borderBottom:"1px solid ".concat(a.palette.text.primary)}),(0,r.Z)(n,"&.".concat(p.Z.disabled,":before"),{borderBottomStyle:"dotted"}),n),o.startAdornment&&{paddingLeft:12},o.endAdornment&&{paddingRight:12},o.multiline&&(0,i.Z)({padding:"25px 12px 8px"},"small"===o.size&&{paddingTop:21,paddingBottom:4},o.hiddenLabel&&{paddingTop:16,paddingBottom:17}))})),g=(0,d.ZP)(u.rA,{name:"MuiFilledInput",slot:"Input",overridesResolver:u._o})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},"small"===n.size&&{paddingTop:21,paddingBottom:4},n.hiddenLabel&&{paddingTop:16,paddingBottom:17},n.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0},n.hiddenLabel&&"small"===n.size&&{paddingTop:8,paddingBottom:9})})),y=s.forwardRef((function(e,t){var n=(0,f.Z)({props:e,name:"MuiFilledInput"}),r=n.components,a=void 0===r?{}:r,s=n.componentsProps,d=n.fullWidth,y=void 0!==d&&d,x=n.inputComponent,b=void 0===x?"input":x,w=n.multiline,_=void 0!==w&&w,Z=n.type,S=void 0===Z?"text":Z,j=(0,o.Z)(n,m),E=(0,i.Z)({},n,{fullWidth:y,inputComponent:b,multiline:_,type:S}),T=function(e){var t=e.classes,n={root:["root",!e.disableUnderline&&"underline"],input:["input"]},r=(0,c.Z)(n,p._,t);return(0,i.Z)({},t,r)}(n),C={root:{ownerState:E},input:{ownerState:E}},A=s?(0,l.Z)(s,C):C;return(0,h.jsx)(u.ZP,(0,i.Z)({components:(0,i.Z)({Root:v,Input:g},a),componentsProps:A,fullWidth:y,inputComponent:b,multiline:_,ref:t,type:S},j,{classes:T}))}));y.muiName="Input",t.Z=y},96285:function(e,t,n){"use strict";n.d(t,{_:function(){return s}});var r=n(87462),a=n(95159),o=n(30208),i=n(55891);function s(e){return(0,a.Z)("MuiFilledInput",e)}var l=(0,r.Z)({},i.Z,(0,o.Z)("MuiFilledInput",["root","underline","input"]));t.Z=l},68096:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(29439),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(93736),u=n(47630),d=n(35470),f=n(14036),p=n(19103),h=n(93840),m=n(95159);function v(e){return(0,m.Z)("MuiFormControl",e)}(0,n(30208).Z)("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var g=n(80184),y=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],x=(0,u.ZP)("div",{name:"MuiFormControl",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,o.Z)({},t.root,t["margin".concat((0,f.Z)(n.margin))],n.fullWidth&&t.fullWidth)}})((function(e){var t=e.ownerState;return(0,o.Z)({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},"normal"===t.margin&&{marginTop:16,marginBottom:8},"dense"===t.margin&&{marginTop:8,marginBottom:4},t.fullWidth&&{width:"100%"})})),b=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiFormControl"}),u=n.children,m=n.className,b=n.color,w=void 0===b?"primary":b,_=n.component,Z=void 0===_?"div":_,S=n.disabled,j=void 0!==S&&S,E=n.error,T=void 0!==E&&E,C=n.focused,A=n.fullWidth,M=void 0!==A&&A,P=n.hiddenLabel,k=void 0!==P&&P,O=n.margin,R=void 0===O?"none":O,N=n.required,z=void 0!==N&&N,I=n.size,L=void 0===I?"medium":I,D=n.variant,B=void 0===D?"outlined":D,H=(0,a.Z)(n,y),F=(0,o.Z)({},n,{color:w,component:Z,disabled:j,error:T,fullWidth:M,hiddenLabel:k,margin:R,required:z,size:L,variant:B}),U=function(e){var t=e.classes,n=e.margin,r=e.fullWidth,a={root:["root","none"!==n&&"margin".concat((0,f.Z)(n)),r&&"fullWidth"]};return(0,l.Z)(a,v,t)}(F),V=i.useState((function(){var e=!1;return u&&i.Children.forEach(u,(function(t){if((0,p.Z)(t,["Input","Select"])){var n=(0,p.Z)(t,["Select"])?t.props.input:t;n&&(0,d.B7)(n.props)&&(e=!0)}})),e})),G=(0,r.Z)(V,2),W=G[0],q=G[1],K=i.useState((function(){var e=!1;return u&&i.Children.forEach(u,(function(t){(0,p.Z)(t,["Input","Select"])&&(0,d.vd)(t.props,!0)&&(e=!0)})),e})),$=(0,r.Z)(K,2),Y=$[0],Q=$[1],J=i.useState(!1),X=(0,r.Z)(J,2),ee=X[0],te=X[1];j&&ee&&te(!1);var ne=void 0===C||j?ee:C,re=i.useCallback((function(){Q(!0)}),[]),ae={adornedStart:W,setAdornedStart:q,color:w,disabled:j,error:T,filled:Y,focused:ne,fullWidth:M,hiddenLabel:k,size:L,onBlur:function(){te(!1)},onEmpty:i.useCallback((function(){Q(!1)}),[]),onFilled:re,onFocus:function(){te(!0)},registerEffect:undefined,required:z,variant:B};return(0,g.jsx)(h.Z.Provider,{value:ae,children:(0,g.jsx)(x,(0,o.Z)({as:Z,ownerState:F,className:(0,s.Z)(U.root,m),ref:t},H,{children:u}))})}))},93840:function(e,t,n){"use strict";var r=n(72791).createContext();t.Z=r},76147:function(e,t,n){"use strict";function r(e){var t=e.props,n=e.states,r=e.muiFormControl;return n.reduce((function(e,n){return e[n]=t[n],r&&"undefined"===typeof t[n]&&(e[n]=r[n]),e}),{})}n.d(t,{Z:function(){return r}})},52930:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(72791),a=n(93840);function o(){return r.useContext(a.Z)}},17133:function(e,t,n){"use strict";var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(76147),u=n(52930),d=n(14036),f=n(93736),p=n(47630),h=n(10843),m=n(80184),v=["children","className","color","component","disabled","error","filled","focused","required"],g=(0,p.ZP)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,o.Z)({},t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled)}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,o.Z)({color:n.palette.text.secondary},n.typography.body1,(t={lineHeight:"1.4375em",padding:0,position:"relative"},(0,r.Z)(t,"&.".concat(h.Z.focused),{color:n.palette[a.color].main}),(0,r.Z)(t,"&.".concat(h.Z.disabled),{color:n.palette.text.disabled}),(0,r.Z)(t,"&.".concat(h.Z.error),{color:n.palette.error.main}),t))})),y=(0,p.ZP)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return(0,r.Z)({},"&.".concat(h.Z.error),{color:t.palette.error.main})})),x=i.forwardRef((function(e,t){var n=(0,f.Z)({props:e,name:"MuiFormLabel"}),r=n.children,i=n.className,p=n.component,x=void 0===p?"label":p,b=(0,a.Z)(n,v),w=(0,u.Z)(),_=(0,c.Z)({props:n,muiFormControl:w,states:["color","required","focused","disabled","error","filled"]}),Z=(0,o.Z)({},n,{color:_.color||"primary",component:x,disabled:_.disabled,error:_.error,filled:_.filled,focused:_.focused,required:_.required}),S=function(e){var t=e.classes,n=e.color,r=e.focused,a=e.disabled,o=e.error,i=e.filled,s=e.required,c={root:["root","color".concat((0,d.Z)(n)),a&&"disabled",o&&"error",i&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",o&&"error"]};return(0,l.Z)(c,h.M,t)}(Z);return(0,m.jsxs)(g,(0,o.Z)({as:x,ownerState:Z,className:(0,s.Z)(S.root,i),ref:t},b,{children:[r,_.required&&(0,m.jsxs)(y,{ownerState:Z,"aria-hidden":!0,className:S.asterisk,children:["\u2009","*"]})]}))}));t.Z=x},10843:function(e,t,n){"use strict";n.d(t,{M:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiFormLabel",e)}var o=(0,n(30208).Z)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]);t.Z=o},25502:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(87462),a=(n(72791),n(52554)),o=n(80184);function i(e){var t=e.styles,n=e.defaultTheme,r=void 0===n?{}:n,i="function"===typeof t?function(e){return t(void 0===(n=e)||null===n||0===Object.keys(n).length?r:e);var n}:t;return(0,o.jsx)(a.xB,{styles:i})}var s=n(36482);var l=function(e){return(0,o.jsx)(i,(0,r.Z)({},e,{defaultTheme:s.Z}))}},61889:function(e,t,n){"use strict";n.d(t,{ZP:function(){return S}});var r=n(93433),a=n(4942),o=n(63366),i=n(87462),s=n(72791),l=n(28182),c=n(51184),u=n(78519),d=n(90767),f=n(47630),p=n(93736);var h=s.createContext(),m=n(95159);function v(e){return(0,m.Z)("MuiGrid",e)}var g=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],y=(0,n(30208).Z)("MuiGrid",["root","container","item","zeroMinWidth"].concat((0,r.Z)([0,1,2,3,4,5,6,7,8,9,10].map((function(e){return"spacing-xs-".concat(e)}))),(0,r.Z)(["column-reverse","column","row-reverse","row"].map((function(e){return"direction-xs-".concat(e)}))),(0,r.Z)(["nowrap","wrap-reverse","wrap"].map((function(e){return"wrap-xs-".concat(e)}))),(0,r.Z)(g.map((function(e){return"grid-xs-".concat(e)}))),(0,r.Z)(g.map((function(e){return"grid-sm-".concat(e)}))),(0,r.Z)(g.map((function(e){return"grid-md-".concat(e)}))),(0,r.Z)(g.map((function(e){return"grid-lg-".concat(e)}))),(0,r.Z)(g.map((function(e){return"grid-xl-".concat(e)}))))),x=n(80184),b=["className","columns","columnSpacing","component","container","direction","item","lg","md","rowSpacing","sm","spacing","wrap","xl","xs","zeroMinWidth"];function w(e){var t=parseFloat(e);return"".concat(t).concat(String(e).replace(String(t),"")||"px")}function _(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t||!e||e<=0)return[];if("string"===typeof e&&!Number.isNaN(Number(e))||"number"===typeof e)return[n["spacing-xs-".concat(String(e))]||"spacing-xs-".concat(String(e))];var r=e.xs,a=e.sm,o=e.md,i=e.lg,s=e.xl;return[Number(r)>0&&(n["spacing-xs-".concat(String(r))]||"spacing-xs-".concat(String(r))),Number(a)>0&&(n["spacing-sm-".concat(String(a))]||"spacing-sm-".concat(String(a))),Number(o)>0&&(n["spacing-md-".concat(String(o))]||"spacing-md-".concat(String(o))),Number(i)>0&&(n["spacing-lg-".concat(String(i))]||"spacing-lg-".concat(String(i))),Number(s)>0&&(n["spacing-xl-".concat(String(s))]||"spacing-xl-".concat(String(s)))]}var Z=(0,f.ZP)("div",{name:"MuiGrid",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState,a=n.container,o=n.direction,i=n.item,s=n.lg,l=n.md,c=n.sm,u=n.spacing,d=n.wrap,f=n.xl,p=n.xs,h=n.zeroMinWidth;return[t.root,a&&t.container,i&&t.item,h&&t.zeroMinWidth].concat((0,r.Z)(_(u,a,t)),["row"!==o&&t["direction-xs-".concat(String(o))],"wrap"!==d&&t["wrap-xs-".concat(String(d))],!1!==p&&t["grid-xs-".concat(String(p))],!1!==c&&t["grid-sm-".concat(String(c))],!1!==l&&t["grid-md-".concat(String(l))],!1!==s&&t["grid-lg-".concat(String(s))],!1!==f&&t["grid-xl-".concat(String(f))]])}})((function(e){var t=e.ownerState;return(0,i.Z)({boxSizing:"border-box"},t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},t.item&&{margin:0},t.zeroMinWidth&&{minWidth:0},"wrap"!==t.wrap&&{flexWrap:t.wrap})}),(function(e){var t=e.theme,n=e.ownerState,r=(0,c.P$)({values:n.direction,breakpoints:t.breakpoints.values});return(0,c.k9)({theme:t},r,(function(e){var t={flexDirection:e};return 0===e.indexOf("column")&&(t["& > .".concat(y.item)]={maxWidth:"none"}),t}))}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,o=n.rowSpacing,i={};if(r&&0!==o){var s=(0,c.P$)({values:o,breakpoints:t.breakpoints.values});i=(0,c.k9)({theme:t},s,(function(e){var n=t.spacing(e);return"0px"!==n?(0,a.Z)({marginTop:"-".concat(w(n))},"& > .".concat(y.item),{paddingTop:w(n)}):{}}))}return i}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,o=n.columnSpacing,i={};if(r&&0!==o){var s=(0,c.P$)({values:o,breakpoints:t.breakpoints.values});i=(0,c.k9)({theme:t},s,(function(e){var n=t.spacing(e);return"0px"!==n?(0,a.Z)({width:"calc(100% + ".concat(w(n),")"),marginLeft:"-".concat(w(n))},"& > .".concat(y.item),{paddingLeft:w(n)}):{}}))}return i}),(function(e){var t,n=e.theme,r=e.ownerState;return n.breakpoints.keys.reduce((function(e,a){var o={};if(r[a]&&(t=r[a]),!t)return e;if(!0===t)o={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if("auto"===t)o={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{var s=(0,c.P$)({values:r.columns,breakpoints:n.breakpoints.values}),l="object"===typeof s?s[a]:s;if(void 0===l||null===l)return e;var u="".concat(Math.round(t/l*1e8)/1e6,"%"),d={};if(r.container&&r.item&&0!==r.columnSpacing){var f=n.spacing(r.columnSpacing);if("0px"!==f){var p="calc(".concat(u," + ").concat(w(f),")");d={flexBasis:p,maxWidth:p}}}o=(0,i.Z)({flexBasis:u,flexGrow:0,maxWidth:u},d)}return 0===n.breakpoints.values[a]?Object.assign(e,o):e[n.breakpoints.up(a)]=o,e}),{})})),S=s.forwardRef((function(e,t){var n=(0,p.Z)({props:e,name:"MuiGrid"}),a=(0,u.Z)(n),c=a.className,f=a.columns,m=a.columnSpacing,g=a.component,y=void 0===g?"div":g,w=a.container,S=void 0!==w&&w,j=a.direction,E=void 0===j?"row":j,T=a.item,C=void 0!==T&&T,A=a.lg,M=void 0!==A&&A,P=a.md,k=void 0!==P&&P,O=a.rowSpacing,R=a.sm,N=void 0!==R&&R,z=a.spacing,I=void 0===z?0:z,L=a.wrap,D=void 0===L?"wrap":L,B=a.xl,H=void 0!==B&&B,F=a.xs,U=void 0!==F&&F,V=a.zeroMinWidth,G=void 0!==V&&V,W=(0,o.Z)(a,b),q=O||I,K=m||I,$=s.useContext(h),Y=S?f||12:$,Q=(0,i.Z)({},a,{columns:Y,container:S,direction:E,item:C,lg:M,md:k,sm:N,rowSpacing:q,columnSpacing:K,wrap:D,xl:H,xs:U,zeroMinWidth:G}),J=function(e){var t=e.classes,n=e.container,a=e.direction,o=e.item,i=e.lg,s=e.md,l=e.sm,c=e.spacing,u=e.wrap,f=e.xl,p=e.xs,h={root:["root",n&&"container",o&&"item",e.zeroMinWidth&&"zeroMinWidth"].concat((0,r.Z)(_(c,n)),["row"!==a&&"direction-xs-".concat(String(a)),"wrap"!==u&&"wrap-xs-".concat(String(u)),!1!==p&&"grid-xs-".concat(String(p)),!1!==l&&"grid-sm-".concat(String(l)),!1!==s&&"grid-md-".concat(String(s)),!1!==i&&"grid-lg-".concat(String(i)),!1!==f&&"grid-xl-".concat(String(f))])};return(0,d.Z)(h,v,t)}(Q);return(0,x.jsx)(h.Provider,{value:Y,children:(0,x.jsx)(Z,(0,i.Z)({ownerState:Q,className:(0,l.Z)(J.root,c),as:y,ref:t},W))})}))},13208:function(e,t,n){"use strict";var r=n(87462),a=n(63366),o=n(72791),i=n(18875),s=n(13967),l=n(4999),c=n(42071),u=n(80184),d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function f(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var p={entering:{opacity:1,transform:f(1)},entered:{opacity:1,transform:"none"}},h=o.forwardRef((function(e,t){var n=e.addEndListener,h=e.appear,m=void 0===h||h,v=e.children,g=e.easing,y=e.in,x=e.onEnter,b=e.onEntered,w=e.onEntering,_=e.onExit,Z=e.onExited,S=e.onExiting,j=e.style,E=e.timeout,T=void 0===E?"auto":E,C=e.TransitionComponent,A=void 0===C?i.ZP:C,M=(0,a.Z)(e,d),P=o.useRef(),k=o.useRef(),O=(0,s.Z)(),R=o.useRef(null),N=(0,c.Z)(v.ref,t),z=(0,c.Z)(R,N),I=function(e){return function(t){if(e){var n=R.current;void 0===t?e(n):e(n,t)}}},L=I(w),D=I((function(e,t){(0,l.n)(e);var n,r=(0,l.C)({style:j,timeout:T,easing:g},{mode:"enter"}),a=r.duration,o=r.delay,i=r.easing;"auto"===T?(n=O.transitions.getAutoHeightDuration(e.clientHeight),k.current=n):n=a,e.style.transition=[O.transitions.create("opacity",{duration:n,delay:o}),O.transitions.create("transform",{duration:.666*n,delay:o,easing:i})].join(","),x&&x(e,t)})),B=I(b),H=I(S),F=I((function(e){var t,n=(0,l.C)({style:j,timeout:T,easing:g},{mode:"exit"}),r=n.duration,a=n.delay,o=n.easing;"auto"===T?(t=O.transitions.getAutoHeightDuration(e.clientHeight),k.current=t):t=r,e.style.transition=[O.transitions.create("opacity",{duration:t,delay:a}),O.transitions.create("transform",{duration:.666*t,delay:a||.333*t,easing:o})].join(","),e.style.opacity="0",e.style.transform=f(.75),_&&_(e)})),U=I(Z);return o.useEffect((function(){return function(){clearTimeout(P.current)}}),[]),(0,u.jsx)(A,(0,r.Z)({appear:m,in:y,nodeRef:R,onEnter:D,onEntered:B,onEntering:L,onExit:F,onExited:U,onExiting:H,addEndListener:function(e){"auto"===T&&(P.current=setTimeout(e,k.current||0)),n&&n(R.current,e)},timeout:"auto"===T?null:T},M,{children:function(e,t){return o.cloneElement(v,(0,r.Z)({style:(0,r.Z)({opacity:0,transform:f(.75),visibility:"exited"!==e||y?void 0:"hidden"},p[e],j,v.props.style),ref:z},t))}}))}));h.muiSupportAuto=!0,t.Z=h},13400:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(12065),u=n(47630),d=n(93736),f=n(95080),p=n(14036),h=n(95159);function m(e){return(0,h.Z)("MuiIconButton",e)}var v=(0,n(30208).Z)("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),g=n(80184),y=["edge","children","className","color","disabled","disableFocusRipple","size"],x=(0,u.ZP)(f.Z,{name:"MuiIconButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"default"!==n.color&&t["color".concat((0,p.Z)(n.color))],n.edge&&t["edge".concat((0,p.Z)(n.edge))],t["size".concat((0,p.Z)(n.size))]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:t.palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest})},!n.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===n.edge&&{marginLeft:"small"===n.size?-3:-12},"end"===n.edge&&{marginRight:"small"===n.size?-3:-12})}),(function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({},"inherit"===n.color&&{color:"inherit"},"inherit"!==n.color&&"default"!==n.color&&(0,o.Z)({color:t.palette[n.color].main},!n.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)(t.palette[n.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}}),"small"===n.size&&{padding:5,fontSize:t.typography.pxToRem(18)},"large"===n.size&&{padding:12,fontSize:t.typography.pxToRem(28)},(0,r.Z)({},"&.".concat(v.disabled),{backgroundColor:"transparent",color:t.palette.action.disabled}))})),b=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiIconButton"}),r=n.edge,i=void 0!==r&&r,c=n.children,u=n.className,f=n.color,h=void 0===f?"default":f,v=n.disabled,b=void 0!==v&&v,w=n.disableFocusRipple,_=void 0!==w&&w,Z=n.size,S=void 0===Z?"medium":Z,j=(0,a.Z)(n,y),E=(0,o.Z)({},n,{edge:i,color:h,disabled:b,disableFocusRipple:_,size:S}),T=function(e){var t=e.classes,n=e.disabled,r=e.color,a=e.edge,o=e.size,i={root:["root",n&&"disabled","default"!==r&&"color".concat((0,p.Z)(r)),a&&"edge".concat((0,p.Z)(a)),"size".concat((0,p.Z)(o))]};return(0,l.Z)(i,m,t)}(E);return(0,g.jsx)(x,(0,o.Z)({className:(0,s.Z)(T.root,u),centerRipple:!0,focusRipple:!_,disabled:b,ref:t,ownerState:E},j,{children:c}))}))},4110:function(e,t,n){"use strict";var r=n(4942),a=n(93433),o=n(63366),i=n(87462),s=n(72791),l=n(90767),c=n(82466),u=n(4834),d=n(47630),f=n(93736),p=n(86779),h=n(80184),m=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","type"],v=(0,d.ZP)(u.Ej,{shouldForwardProp:function(e){return(0,d.FO)(e)||"classes"===e},name:"MuiInput",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[].concat((0,a.Z)((0,u.Gx)(e,t)),[!n.disableUnderline&&t.underline])}})((function(e){var t,n=e.theme,a=e.ownerState,o="light"===n.palette.mode?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return(0,i.Z)({position:"relative"},a.formControl&&{"label + &":{marginTop:16}},!a.disableUnderline&&(t={"&:after":{borderBottom:"2px solid ".concat(n.palette[a.color].main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:n.transitions.create("transform",{duration:n.transitions.duration.shorter,easing:n.transitions.easing.easeOut}),pointerEvents:"none"}},(0,r.Z)(t,"&.".concat(p.Z.focused,":after"),{transform:"scaleX(1)"}),(0,r.Z)(t,"&.".concat(p.Z.error,":after"),{borderBottomColor:n.palette.error.main,transform:"scaleX(1)"}),(0,r.Z)(t,"&:before",{borderBottom:"1px solid ".concat(o),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:n.transitions.create("border-bottom-color",{duration:n.transitions.duration.shorter}),pointerEvents:"none"}),(0,r.Z)(t,"&:hover:not(.".concat(p.Z.disabled,"):before"),{borderBottom:"2px solid ".concat(n.palette.text.primary),"@media (hover: none)":{borderBottom:"1px solid ".concat(o)}}),(0,r.Z)(t,"&.".concat(p.Z.disabled,":before"),{borderBottomStyle:"dotted"}),t))})),g=(0,d.ZP)(u.rA,{name:"MuiInput",slot:"Input",overridesResolver:u._o})({}),y=s.forwardRef((function(e,t){var n=(0,f.Z)({props:e,name:"MuiInput"}),r=n.disableUnderline,a=n.components,s=void 0===a?{}:a,d=n.componentsProps,y=n.fullWidth,x=void 0!==y&&y,b=n.inputComponent,w=void 0===b?"input":b,_=n.multiline,Z=void 0!==_&&_,S=n.type,j=void 0===S?"text":S,E=(0,o.Z)(n,m),T=function(e){var t=e.classes,n={root:["root",!e.disableUnderline&&"underline"],input:["input"]},r=(0,l.Z)(n,p.l,t);return(0,i.Z)({},t,r)}(n),C={root:{ownerState:{disableUnderline:r}}},A=d?(0,c.Z)(d,C):C;return(0,h.jsx)(u.ZP,(0,i.Z)({components:(0,i.Z)({Root:v,Input:g},s),componentsProps:A,fullWidth:x,inputComponent:w,multiline:Z,ref:t,type:j},E,{classes:T}))}));y.muiName="Input",t.Z=y},86779:function(e,t,n){"use strict";n.d(t,{l:function(){return s}});var r=n(87462),a=n(95159),o=n(30208),i=n(55891);function s(e){return(0,a.Z)("MuiInput",e)}var l=(0,r.Z)({},i.Z,(0,o.Z)("MuiInput",["root","underline","input"]));t.Z=l},4834:function(e,t,n){"use strict";n.d(t,{rA:function(){return z},Ej:function(){return N},ZP:function(){return D},_o:function(){return R},Gx:function(){return O}});var r=n(29439),a=n(4942),o=n(63366),i=n(87462),s=n(46189),l=n(72791),c=n(28182),u=n(47563),d=n(27979),f=n(93981),p=n(75721),h=n(80184),m=["onChange","maxRows","minRows","style","value"];function v(e,t){return parseInt(e[t],10)||0}var g={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"},y=l.forwardRef((function(e,t){var n=e.onChange,a=e.maxRows,s=e.minRows,c=void 0===s?1:s,y=e.style,x=e.value,b=(0,o.Z)(e,m),w=l.useRef(null!=x).current,_=l.useRef(null),Z=(0,u.Z)(t,_),S=l.useRef(null),j=l.useRef(0),E=l.useState({}),T=(0,r.Z)(E,2),C=T[0],A=T[1],M=l.useCallback((function(){var t=_.current,n=(0,d.Z)(t).getComputedStyle(t);if("0px"!==n.width){var r=S.current;r.style.width=n.width,r.value=t.value||e.placeholder||"x","\n"===r.value.slice(-1)&&(r.value+=" ");var o=n["box-sizing"],i=v(n,"padding-bottom")+v(n,"padding-top"),s=v(n,"border-bottom-width")+v(n,"border-top-width"),l=r.scrollHeight;r.value="x";var u=r.scrollHeight,f=l;c&&(f=Math.max(Number(c)*u,f)),a&&(f=Math.min(Number(a)*u,f));var p=(f=Math.max(f,u))+("border-box"===o?i+s:0),h=Math.abs(f-l)<=1;A((function(e){return j.current<20&&(p>0&&Math.abs((e.outerHeightStyle||0)-p)>1||e.overflow!==h)?(j.current+=1,{overflow:h,outerHeightStyle:p}):e}))}}),[a,c,e.placeholder]);l.useEffect((function(){var e,t=(0,f.Z)((function(){j.current=0,M()})),n=(0,d.Z)(_.current);return n.addEventListener("resize",t),"undefined"!==typeof ResizeObserver&&(e=new ResizeObserver(t)).observe(_.current),function(){t.clear(),n.removeEventListener("resize",t),e&&e.disconnect()}}),[M]),(0,p.Z)((function(){M()})),l.useEffect((function(){j.current=0}),[x]);return(0,h.jsxs)(l.Fragment,{children:[(0,h.jsx)("textarea",(0,i.Z)({value:x,onChange:function(e){j.current=0,w||M(),n&&n(e)},ref:Z,rows:c,style:(0,i.Z)({height:C.outerHeightStyle,overflow:C.overflow?"hidden":null},y)},b)),(0,h.jsx)("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:S,tabIndex:-1,style:(0,i.Z)({},g,y,{padding:0})})]})})),x=n(90767),b=n(20627),w=n(76147),_=n(93840),Z=n(52930),S=n(47630),j=n(93736),E=n(14036),T=n(42071),C=n(40162),A=n(25502),M=n(35470),P=n(55891),k=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","startAdornment","type","value"],O=function(e,t){var n=e.ownerState;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,"small"===n.size&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t["color".concat((0,E.Z)(n.color))],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},R=function(e,t){var n=e.ownerState;return[t.input,"small"===n.size&&t.inputSizeSmall,n.multiline&&t.inputMultiline,"search"===n.type&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},N=(0,S.ZP)("div",{name:"MuiInputBase",slot:"Root",overridesResolver:O})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({},t.typography.body1,(0,a.Z)({color:t.palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center"},"&.".concat(P.Z.disabled),{color:t.palette.text.disabled,cursor:"default"}),n.multiline&&(0,i.Z)({padding:"4px 0 5px"},"small"===n.size&&{paddingTop:1}),n.fullWidth&&{width:"100%"})})),z=(0,S.ZP)("input",{name:"MuiInputBase",slot:"Input",overridesResolver:R})((function(e){var t,n=e.theme,r=e.ownerState,o="light"===n.palette.mode,s={color:"currentColor",opacity:o?.42:.5,transition:n.transitions.create("opacity",{duration:n.transitions.duration.shorter})},l={opacity:"0 !important"},c={opacity:o?.42:.5};return(0,i.Z)((t={font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":s,"&::-moz-placeholder":s,"&:-ms-input-placeholder":s,"&::-ms-input-placeholder":s,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"}},(0,a.Z)(t,"label[data-shrink=false] + .".concat(P.Z.formControl," &"),{"&::-webkit-input-placeholder":l,"&::-moz-placeholder":l,"&:-ms-input-placeholder":l,"&::-ms-input-placeholder":l,"&:focus::-webkit-input-placeholder":c,"&:focus::-moz-placeholder":c,"&:focus:-ms-input-placeholder":c,"&:focus::-ms-input-placeholder":c}),(0,a.Z)(t,"&.".concat(P.Z.disabled),{opacity:1,WebkitTextFillColor:n.palette.text.disabled}),(0,a.Z)(t,"&:-webkit-autofill",{animationDuration:"5000s",animationName:"mui-auto-fill"}),t),"small"===r.size&&{paddingTop:1},r.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},"search"===r.type&&{MozAppearance:"textfield"})})),I=(0,h.jsx)(A.Z,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),L=l.forwardRef((function(e,t){var n=(0,j.Z)({props:e,name:"MuiInputBase"}),a=n["aria-describedby"],u=n.autoComplete,d=n.autoFocus,f=n.className,p=n.components,m=void 0===p?{}:p,v=n.componentsProps,g=void 0===v?{}:v,S=n.defaultValue,A=n.disabled,O=n.disableInjectingGlobalStyles,R=n.endAdornment,L=n.fullWidth,D=void 0!==L&&L,B=n.id,H=n.inputComponent,F=void 0===H?"input":H,U=n.inputProps,V=void 0===U?{}:U,G=n.inputRef,W=n.maxRows,q=n.minRows,K=n.multiline,$=void 0!==K&&K,Y=n.name,Q=n.onBlur,J=n.onChange,X=n.onClick,ee=n.onFocus,te=n.onKeyDown,ne=n.onKeyUp,re=n.placeholder,ae=n.readOnly,oe=n.renderSuffix,ie=n.rows,se=n.startAdornment,le=n.type,ce=void 0===le?"text":le,ue=n.value,de=(0,o.Z)(n,k),fe=null!=V.value?V.value:ue,pe=l.useRef(null!=fe).current,he=l.useRef(),me=l.useCallback((function(e){0}),[]),ve=(0,T.Z)(V.ref,me),ge=(0,T.Z)(G,ve),ye=(0,T.Z)(he,ge),xe=l.useState(!1),be=(0,r.Z)(xe,2),we=be[0],_e=be[1],Ze=(0,Z.Z)();var Se=(0,w.Z)({props:n,muiFormControl:Ze,states:["color","disabled","error","hiddenLabel","size","required","filled"]});Se.focused=Ze?Ze.focused:we,l.useEffect((function(){!Ze&&A&&we&&(_e(!1),Q&&Q())}),[Ze,A,we,Q]);var je=Ze&&Ze.onFilled,Ee=Ze&&Ze.onEmpty,Te=l.useCallback((function(e){(0,M.vd)(e)?je&&je():Ee&&Ee()}),[je,Ee]);(0,C.Z)((function(){pe&&Te({value:fe})}),[fe,Te,pe]);l.useEffect((function(){Te(he.current)}),[]);var Ce=F,Ae=V;$&&"input"===Ce&&(Ae=ie?(0,i.Z)({type:void 0,minRows:ie,maxRows:ie},Ae):(0,i.Z)({type:void 0,maxRows:W,minRows:q},Ae),Ce=y);l.useEffect((function(){Ze&&Ze.setAdornedStart(Boolean(se))}),[Ze,se]);var Me=(0,i.Z)({},n,{color:Se.color||"primary",disabled:Se.disabled,endAdornment:R,error:Se.error,focused:Se.focused,formControl:Ze,fullWidth:D,hiddenLabel:Se.hiddenLabel,multiline:$,size:Se.size,startAdornment:se,type:ce}),Pe=function(e){var t=e.classes,n=e.color,r=e.disabled,a=e.error,o=e.endAdornment,i=e.focused,s=e.formControl,l=e.fullWidth,c=e.hiddenLabel,u=e.multiline,d=e.size,f=e.startAdornment,p=e.type,h={root:["root","color".concat((0,E.Z)(n)),r&&"disabled",a&&"error",l&&"fullWidth",i&&"focused",s&&"formControl","small"===d&&"sizeSmall",u&&"multiline",f&&"adornedStart",o&&"adornedEnd",c&&"hiddenLabel"],input:["input",r&&"disabled","search"===p&&"inputTypeSearch",u&&"inputMultiline","small"===d&&"inputSizeSmall",c&&"inputHiddenLabel",f&&"inputAdornedStart",o&&"inputAdornedEnd"]};return(0,x.Z)(h,P.u,t)}(Me),ke=m.Root||N,Oe=g.root||{},Re=m.Input||z;return Ae=(0,i.Z)({},Ae,g.input),(0,h.jsxs)(l.Fragment,{children:[!O&&I,(0,h.jsxs)(ke,(0,i.Z)({},Oe,!(0,b.Z)(ke)&&{ownerState:(0,i.Z)({},Me,Oe.ownerState)},{ref:t,onClick:function(e){he.current&&e.currentTarget===e.target&&he.current.focus(),X&&X(e)}},de,{className:(0,c.Z)(Pe.root,Oe.className,f),children:[se,(0,h.jsx)(_.Z.Provider,{value:null,children:(0,h.jsx)(Re,(0,i.Z)({ownerState:Me,"aria-invalid":Se.error,"aria-describedby":a,autoComplete:u,autoFocus:d,defaultValue:S,disabled:Se.disabled,id:B,onAnimationStart:function(e){Te("mui-auto-fill-cancel"===e.animationName?he.current:{value:"x"})},name:Y,placeholder:re,readOnly:ae,required:Se.required,rows:ie,value:fe,onKeyDown:te,onKeyUp:ne,type:ce},Ae,!(0,b.Z)(Re)&&{as:Ce,ownerState:(0,i.Z)({},Me,Ae.ownerState)},{ref:ye,className:(0,c.Z)(Pe.input,Ae.className),onBlur:function(e){Q&&Q(e),V.onBlur&&V.onBlur(e),Ze&&Ze.onBlur?Ze.onBlur(e):_e(!1)},onChange:function(e){if(!pe){var t=e.target||he.current;if(null==t)throw new Error((0,s.Z)(1));Te({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a1&&void 0!==arguments[1]&&arguments[1];return e&&(r(e.value)&&""!==e.value||t&&r(e.defaultValue)&&""!==e.defaultValue)}function o(e){return e.startAdornment}n.d(t,{B7:function(){return o},vd:function(){return a}})},30829:function(e,t,n){"use strict";n.d(t,{Z:function(){return x}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(90767),l=n(76147),c=n(52930),u=n(17133),d=n(10843),f=n(93736),p=n(47630),h=n(95159);function m(e){return(0,h.Z)("MuiInputLabel",e)}(0,n(30208).Z)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);var v=n(80184),g=["disableAnimation","margin","shrink","variant"],y=(0,p.ZP)(u.Z,{shouldForwardProp:function(e){return(0,p.FO)(e)||"classes"===e},name:"MuiInputLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,r.Z)({},"& .".concat(d.Z.asterisk),t.asterisk),t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},n.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},"small"===n.size&&{transform:"translate(0, 17px) scale(1)"},n.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!n.disableAnimation&&{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})},"filled"===n.variant&&(0,o.Z)({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(12px, 13px) scale(1)"},n.shrink&&(0,o.Z)({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},"small"===n.size&&{transform:"translate(12px, 4px) scale(0.75)"})),"outlined"===n.variant&&(0,o.Z)({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(14px, 9px) scale(1)"},n.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 24px)",transform:"translate(14px, -9px) scale(0.75)"}))})),x=i.forwardRef((function(e,t){var n=(0,f.Z)({name:"MuiInputLabel",props:e}),r=n.disableAnimation,i=void 0!==r&&r,u=n.shrink,d=(0,a.Z)(n,g),p=(0,c.Z)(),h=u;"undefined"===typeof h&&p&&(h=p.filled||p.focused||p.adornedStart);var x=(0,l.Z)({props:n,muiFormControl:p,states:["size","variant","required"]}),b=(0,o.Z)({},n,{disableAnimation:i,formControl:p,shrink:h,size:x.size,variant:x.variant,required:x.required}),w=function(e){var t=e.classes,n=e.formControl,r=e.size,a=e.shrink,i={root:["root",n&&"formControl",!e.disableAnimation&&"animated",a&&"shrink","small"===r&&"sizeSmall",e.variant],asterisk:[e.required&&"asterisk"]},l=(0,s.Z)(i,m,t);return(0,o.Z)({},t,l)}(b);return(0,v.jsx)(y,(0,o.Z)({"data-shrink":h,ownerState:b,ref:t},d,{classes:w}))}))},40986:function(e,t,n){"use strict";var r,a,o,i,s,l,c,u,d,f,p,h,m=n(30168),v=n(63366),g=n(87462),y=n(72791),x=n(28182),b=n(90767),w=n(52554),_=n(12065),Z=n(14036),S=n(13967),j=n(47630),E=n(93736),T=n(78917),C=n(80184),A=["className","color","value","valueBuffer","variant"],M=(0,w.F4)(c||(c=r||(r=(0,m.Z)(["\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n"])))),P=(0,w.F4)(u||(u=a||(a=(0,m.Z)(["\n 0% {\n left: -200%;\n right: 100%;\n }\n\n 60% {\n left: 107%;\n right: -8%;\n }\n\n 100% {\n left: 107%;\n right: -8%;\n }\n"])))),k=(0,w.F4)(d||(d=o||(o=(0,m.Z)(["\n 0% {\n opacity: 1;\n background-position: 0 -23px;\n }\n\n 60% {\n opacity: 0;\n background-position: 0 -23px;\n }\n\n 100% {\n opacity: 1;\n background-position: -200px -23px;\n }\n"])))),O=function(e,t){return"inherit"===t?"currentColor":"light"===e.palette.mode?(0,_.$n)(e.palette[t].main,.62):(0,_._j)(e.palette[t].main,.5)},R=(0,j.ZP)("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["color".concat((0,Z.Z)(n.color))],t[n.variant]]}})((function(e){var t=e.ownerState,n=e.theme;return(0,g.Z)({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},backgroundColor:O(n,t.color)},"inherit"===t.color&&"buffer"!==t.variant&&{backgroundColor:"none","&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}},"buffer"===t.variant&&{backgroundColor:"transparent"},"query"===t.variant&&{transform:"rotate(180deg)"})})),N=(0,j.ZP)("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:function(e,t){var n=e.ownerState;return[t.dashed,t["dashedColor".concat((0,Z.Z)(n.color))]]}})((function(e){var t=e.ownerState,n=e.theme,r=O(n,t.color);return(0,g.Z)({position:"absolute",marginTop:0,height:"100%",width:"100%"},"inherit"===t.color&&{opacity:.3},{backgroundImage:"radial-gradient(".concat(r," 0%, ").concat(r," 16%, transparent 42%)"),backgroundSize:"10px 10px",backgroundPosition:"0 -23px"})}),(0,w.iv)(f||(f=i||(i=(0,m.Z)(["\n animation: "," 3s infinite linear;\n "]))),k)),z=(0,j.ZP)("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:function(e,t){var n=e.ownerState;return[t.bar,t["barColor".concat((0,Z.Z)(n.color))],("indeterminate"===n.variant||"query"===n.variant)&&t.bar1Indeterminate,"determinate"===n.variant&&t.bar1Determinate,"buffer"===n.variant&&t.bar1Buffer]}})((function(e){var t=e.ownerState,n=e.theme;return(0,g.Z)({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",backgroundColor:"inherit"===t.color?"currentColor":n.palette[t.color].main},"determinate"===t.variant&&{transition:"transform .".concat(4,"s linear")},"buffer"===t.variant&&{zIndex:1,transition:"transform .".concat(4,"s linear")})}),(function(e){var t=e.ownerState;return("indeterminate"===t.variant||"query"===t.variant)&&(0,w.iv)(p||(p=s||(s=(0,m.Z)(["\n width: auto;\n animation: "," 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n "]))),M)})),I=(0,j.ZP)("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:function(e,t){var n=e.ownerState;return[t.bar,t["barColor".concat((0,Z.Z)(n.color))],("indeterminate"===n.variant||"query"===n.variant)&&t.bar2Indeterminate,"buffer"===n.variant&&t.bar2Buffer]}})((function(e){var t=e.ownerState,n=e.theme;return(0,g.Z)({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},"buffer"!==t.variant&&{backgroundColor:"inherit"===t.color?"currentColor":n.palette[t.color].main},"inherit"===t.color&&{opacity:.3},"buffer"===t.variant&&{backgroundColor:O(n,t.color),transition:"transform .".concat(4,"s linear")})}),(function(e){var t=e.ownerState;return("indeterminate"===t.variant||"query"===t.variant)&&(0,w.iv)(h||(h=l||(l=(0,m.Z)(["\n width: auto;\n animation: "," 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n "]))),P)})),L=y.forwardRef((function(e,t){var n=(0,E.Z)({props:e,name:"MuiLinearProgress"}),r=n.className,a=n.color,o=void 0===a?"primary":a,i=n.value,s=n.valueBuffer,l=n.variant,c=void 0===l?"indeterminate":l,u=(0,v.Z)(n,A),d=(0,g.Z)({},n,{color:o,variant:c}),f=function(e){var t=e.classes,n=e.variant,r=e.color,a={root:["root","color".concat((0,Z.Z)(r)),n],dashed:["dashed","dashedColor".concat((0,Z.Z)(r))],bar1:["bar","barColor".concat((0,Z.Z)(r)),("indeterminate"===n||"query"===n)&&"bar1Indeterminate","determinate"===n&&"bar1Determinate","buffer"===n&&"bar1Buffer"],bar2:["bar","buffer"!==n&&"barColor".concat((0,Z.Z)(r)),"buffer"===n&&"color".concat((0,Z.Z)(r)),("indeterminate"===n||"query"===n)&&"bar2Indeterminate","buffer"===n&&"bar2Buffer"]};return(0,b.Z)(a,T.E,t)}(d),p=(0,S.Z)(),h={},m={bar1:{},bar2:{}};if("determinate"===c||"buffer"===c)if(void 0!==i){h["aria-valuenow"]=Math.round(i),h["aria-valuemin"]=0,h["aria-valuemax"]=100;var y=i-100;"rtl"===p.direction&&(y=-y),m.bar1.transform="translateX(".concat(y,"%)")}else 0;if("buffer"===c)if(void 0!==s){var w=(s||0)-100;"rtl"===p.direction&&(w=-w),m.bar2.transform="translateX(".concat(w,"%)")}else 0;return(0,C.jsxs)(R,(0,g.Z)({className:(0,x.Z)(f.root,r),ownerState:d,role:"progressbar"},h,{ref:t},u,{children:["buffer"===c?(0,C.jsx)(N,{className:f.dashed,ownerState:d}):null,(0,C.jsx)(z,{className:f.bar1,ownerState:d,style:m.bar1}),"determinate"===c?null:(0,C.jsx)(I,{className:f.bar2,ownerState:d,style:m.bar2})]}))}));t.Z=L},78917:function(e,t,n){"use strict";n.d(t,{E:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiLinearProgress",e)}var o=(0,n(30208).Z)("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]);t.Z=o},90493:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(63366),a=n(87462),o=n(72791),i=n(28182),s=n(90767),l=n(47630),c=n(93736),u=n(66199),d=n(95159);function f(e){return(0,d.Z)("MuiList",e)}(0,n(30208).Z)("MuiList",["root","padding","dense","subheader"]);var p=n(80184),h=["children","className","component","dense","disablePadding","subheader"],m=(0,l.ZP)("ul",{name:"MuiList",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})((function(e){var t=e.ownerState;return(0,a.Z)({listStyle:"none",margin:0,padding:0,position:"relative"},!t.disablePadding&&{paddingTop:8,paddingBottom:8},t.subheader&&{paddingTop:0})})),v=o.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiList"}),l=n.children,d=n.className,v=n.component,g=void 0===v?"ul":v,y=n.dense,x=void 0!==y&&y,b=n.disablePadding,w=void 0!==b&&b,_=n.subheader,Z=(0,r.Z)(n,h),S=o.useMemo((function(){return{dense:x}}),[x]),j=(0,a.Z)({},n,{component:g,dense:x,disablePadding:w}),E=function(e){var t=e.classes,n={root:["root",!e.disablePadding&&"padding",e.dense&&"dense",e.subheader&&"subheader"]};return(0,s.Z)(n,f,t)}(j);return(0,p.jsx)(u.Z.Provider,{value:S,children:(0,p.jsxs)(m,(0,a.Z)({as:g,className:(0,i.Z)(E.root,d),ref:t,ownerState:j},Z,{children:[_,l]}))})}))},66199:function(e,t,n){"use strict";var r=n(72791).createContext({});t.Z=r},15021:function(e,t,n){"use strict";n.d(t,{ZP:function(){return O}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(20627),u=n(12065),d=n(47630),f=n(93736),p=n(95080),h=n(19103),m=n(40162),v=n(42071),g=n(66199),y=n(95159),x=n(30208);function b(e){return(0,y.Z)("MuiListItem",e)}var w=(0,x.Z)("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),_=n(34065);function Z(e){return(0,y.Z)("MuiListItemSecondaryAction",e)}(0,x.Z)("MuiListItemSecondaryAction",["root","disableGutters"]);var S=n(80184),j=["className"],E=(0,d.ZP)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.disableGutters&&t.disableGutters]}})((function(e){var t=e.ownerState;return(0,o.Z)({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},t.disableGutters&&{right:0})})),T=i.forwardRef((function(e,t){var n=(0,f.Z)({props:e,name:"MuiListItemSecondaryAction"}),r=n.className,c=(0,a.Z)(n,j),u=i.useContext(g.Z),d=(0,o.Z)({},n,{disableGutters:u.disableGutters}),p=function(e){var t=e.disableGutters,n=e.classes,r={root:["root",t&&"disableGutters"]};return(0,l.Z)(r,Z,n)}(d);return(0,S.jsx)(E,(0,o.Z)({className:(0,s.Z)(p.root,r),ownerState:d,ref:t},c))}));T.muiName="ListItemSecondaryAction";var C=T,A=["className"],M=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected"],P=(0,d.ZP)("div",{name:"MuiListItem",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dense&&t.dense,"flex-start"===n.alignItems&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.button&&t.button,n.hasSecondaryAction&&t.secondaryAction]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,o.Z)({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!a.disablePadding&&(0,o.Z)({paddingTop:8,paddingBottom:8},a.dense&&{paddingTop:4,paddingBottom:4},!a.disableGutters&&{paddingLeft:16,paddingRight:16},!!a.secondaryAction&&{paddingRight:48}),!!a.secondaryAction&&(0,r.Z)({},"& > .".concat(_.Z.root),{paddingRight:48}),(t={},(0,r.Z)(t,"&.".concat(w.focusVisible),{backgroundColor:n.palette.action.focus}),(0,r.Z)(t,"&.".concat(w.selected),(0,r.Z)({backgroundColor:(0,u.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)},"&.".concat(w.focusVisible),{backgroundColor:(0,u.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.focusOpacity)})),(0,r.Z)(t,"&.".concat(w.disabled),{opacity:n.palette.action.disabledOpacity}),t),"flex-start"===a.alignItems&&{alignItems:"flex-start"},a.divider&&{borderBottom:"1px solid ".concat(n.palette.divider),backgroundClip:"padding-box"},a.button&&(0,r.Z)({transition:n.transitions.create("background-color",{duration:n.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:n.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(w.selected,":hover"),{backgroundColor:(0,u.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(0,u.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)}}),a.hasSecondaryAction&&{paddingRight:48})})),k=(0,d.ZP)("li",{name:"MuiListItem",slot:"Container",overridesResolver:function(e,t){return t.container}})({position:"relative"}),O=i.forwardRef((function(e,t){var n=(0,f.Z)({props:e,name:"MuiListItem"}),r=n.alignItems,u=void 0===r?"center":r,d=n.autoFocus,y=void 0!==d&&d,x=n.button,_=void 0!==x&&x,Z=n.children,j=n.className,E=n.component,T=n.components,O=void 0===T?{}:T,R=n.componentsProps,N=void 0===R?{}:R,z=n.ContainerComponent,I=void 0===z?"li":z,L=n.ContainerProps,D=(L=void 0===L?{}:L).className,B=n.dense,H=void 0!==B&&B,F=n.disabled,U=void 0!==F&&F,V=n.disableGutters,G=void 0!==V&&V,W=n.disablePadding,q=void 0!==W&&W,K=n.divider,$=void 0!==K&&K,Y=n.focusVisibleClassName,Q=n.secondaryAction,J=n.selected,X=void 0!==J&&J,ee=(0,a.Z)(n.ContainerProps,A),te=(0,a.Z)(n,M),ne=i.useContext(g.Z),re={dense:H||ne.dense||!1,alignItems:u,disableGutters:G},ae=i.useRef(null);(0,m.Z)((function(){y&&ae.current&&ae.current.focus()}),[y]);var oe=i.Children.toArray(Z),ie=oe.length&&(0,h.Z)(oe[oe.length-1],["ListItemSecondaryAction"]),se=(0,o.Z)({},n,{alignItems:u,autoFocus:y,button:_,dense:re.dense,disabled:U,disableGutters:G,disablePadding:q,divider:$,hasSecondaryAction:ie,selected:X}),le=function(e){var t=e.alignItems,n=e.button,r=e.classes,a=e.dense,o=e.disabled,i={root:["root",a&&"dense",!e.disableGutters&&"gutters",!e.disablePadding&&"padding",e.divider&&"divider",o&&"disabled",n&&"button","flex-start"===t&&"alignItemsFlexStart",e.hasSecondaryAction&&"secondaryAction",e.selected&&"selected"],container:["container"]};return(0,l.Z)(i,b,r)}(se),ce=(0,v.Z)(ae,t),ue=O.Root||P,de=N.root||{},fe=(0,o.Z)({className:(0,s.Z)(le.root,de.className,j),disabled:U},te),pe=E||"li";return _&&(fe.component=E||"div",fe.focusVisibleClassName=(0,s.Z)(w.focusVisible,Y),pe=p.Z),ie?(pe=fe.component||E?pe:"div","li"===I&&("li"===pe?pe="div":"li"===fe.component&&(fe.component="div")),(0,S.jsx)(g.Z.Provider,{value:re,children:(0,S.jsxs)(k,(0,o.Z)({as:I,className:(0,s.Z)(le.container,D),ref:ce,ownerState:se},ee,{children:[(0,S.jsx)(ue,(0,o.Z)({},de,!(0,c.Z)(ue)&&{as:pe,ownerState:(0,o.Z)({},se,de.ownerState)},fe,{children:oe})),oe.pop()]}))})):(0,S.jsx)(g.Z.Provider,{value:re,children:(0,S.jsxs)(ue,(0,o.Z)({},de,{as:pe,ref:ce,ownerState:se},!(0,c.Z)(ue)&&{ownerState:(0,o.Z)({},se,de.ownerState)},fe,{children:[oe,Q&&(0,S.jsx)(C,{children:Q})]}))})}))},34065:function(e,t,n){"use strict";n.d(t,{t:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiListItemButton",e)}var o=(0,n(30208).Z)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);t.Z=o},57064:function(e,t,n){"use strict";var r=n(63366),a=n(87462),o=n(72791),i=n(28182),s=n(90767),l=n(47630),c=n(93736),u=n(96014),d=n(66199),f=n(80184),p=["className"],h=(0,l.ZP)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"flex-start"===n.alignItems&&t.alignItemsFlexStart]}})((function(e){var t=e.theme,n=e.ownerState;return(0,a.Z)({minWidth:56,color:t.palette.action.active,flexShrink:0,display:"inline-flex"},"flex-start"===n.alignItems&&{marginTop:8})})),m=o.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiListItemIcon"}),l=n.className,m=(0,r.Z)(n,p),v=o.useContext(d.Z),g=(0,a.Z)({},n,{alignItems:v.alignItems}),y=function(e){var t=e.alignItems,n=e.classes,r={root:["root","flex-start"===t&&"alignItemsFlexStart"]};return(0,s.Z)(r,u.f,n)}(g);return(0,f.jsx)(h,(0,a.Z)({className:(0,i.Z)(y.root,l),ownerState:g,ref:t},m))}));t.Z=m},96014:function(e,t,n){"use strict";n.d(t,{f:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiListItemIcon",e)}var o=(0,n(30208).Z)("MuiListItemIcon",["root","alignItemsFlexStart"]);t.Z=o},49900:function(e,t,n){"use strict";var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(20890),u=n(66199),d=n(93736),f=n(47630),p=n(29849),h=n(80184),m=["children","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"],v=(0,f.ZP)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,r.Z)({},"& .".concat(p.Z.primary),t.primary),(0,r.Z)({},"& .".concat(p.Z.secondary),t.secondary),t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})((function(e){var t=e.ownerState;return(0,o.Z)({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},t.primary&&t.secondary&&{marginTop:6,marginBottom:6},t.inset&&{paddingLeft:56})})),g=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiListItemText"}),r=n.children,f=n.className,g=n.disableTypography,y=void 0!==g&&g,x=n.inset,b=void 0!==x&&x,w=n.primary,_=n.primaryTypographyProps,Z=n.secondary,S=n.secondaryTypographyProps,j=(0,a.Z)(n,m),E=i.useContext(u.Z).dense,T=null!=w?w:r,C=Z,A=(0,o.Z)({},n,{disableTypography:y,inset:b,primary:!!T,secondary:!!C,dense:E}),M=function(e){var t=e.classes,n=e.inset,r=e.primary,a=e.secondary,o={root:["root",n&&"inset",e.dense&&"dense",r&&a&&"multiline"],primary:["primary"],secondary:["secondary"]};return(0,l.Z)(o,p.L,t)}(A);return null==T||T.type===c.Z||y||(T=(0,h.jsx)(c.Z,(0,o.Z)({variant:E?"body2":"body1",className:M.primary,component:"span",display:"block"},_,{children:T}))),null==C||C.type===c.Z||y||(C=(0,h.jsx)(c.Z,(0,o.Z)({variant:"body2",className:M.secondary,color:"text.secondary",display:"block"},S,{children:C}))),(0,h.jsxs)(v,(0,o.Z)({className:(0,s.Z)(M.root,f),ownerState:A,ref:t},j,{children:[T,C]}))}));t.Z=g},29849:function(e,t,n){"use strict";n.d(t,{L:function(){return a}});var r=n(95159);function a(e){return(0,r.Z)("MuiListItemText",e)}var o=(0,n(30208).Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);t.Z=o},71715:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(87462),a=n(63366),o=n(72791),i=(n(57441),n(28182)),s=n(90767),l=n(98301),c=n(90493),u=n(57137).Z,d=n(42071),f=n(40162),p=n(80184),h=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function m(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function v(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function g(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function y(e,t,n,r,a,o){for(var i=!1,s=a(e,t,!!t&&n);s;){if(s===e.firstChild){if(i)return!1;i=!0}var l=!r&&(s.disabled||"true"===s.getAttribute("aria-disabled"));if(s.hasAttribute("tabindex")&&g(s,o)&&!l)return s.focus(),!0;s=a(e,s,n)}return!1}var x=o.forwardRef((function(e,t){var n=e.actions,i=e.autoFocus,s=void 0!==i&&i,x=e.autoFocusItem,b=void 0!==x&&x,w=e.children,_=e.className,Z=e.disabledItemsFocusable,S=void 0!==Z&&Z,j=e.disableListWrap,E=void 0!==j&&j,T=e.onKeyDown,C=e.variant,A=void 0===C?"selectedMenu":C,M=(0,a.Z)(e,h),P=o.useRef(null),k=o.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});(0,f.Z)((function(){s&&P.current.focus()}),[s]),o.useImperativeHandle(n,(function(){return{adjustStyleForScrollbar:function(e,t){var n=!P.current.style.width;if(e.clientHeight0&&(i-a.lastTime>500?(a.keys=[],a.repeating=!0,a.previousKeyMatched=!0):a.repeating&&o!==a.keys[0]&&(a.repeating=!1)),a.lastTime=i,a.keys.push(o);var s=r&&!a.repeating&&g(r,a);a.previousKeyMatched&&(s||y(t,r,!1,S,m,a))?e.preventDefault():a.previousKeyMatched=!1}T&&T(e)},tabIndex:s?0:-1},M,{children:N}))})),b=n(10703),w=n(15473),_=n(47630),Z=n(13967),S=n(93736),j=n(95159);function E(e){return(0,j.Z)("MuiMenu",e)}(0,n(30208).Z)("MuiMenu",["root","paper","list"]);var T=["onEntering"],C=["autoFocus","children","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"],A={vertical:"top",horizontal:"right"},M={vertical:"top",horizontal:"left"},P=(0,_.ZP)(w.ZP,{shouldForwardProp:function(e){return(0,_.FO)(e)||"classes"===e},name:"MuiMenu",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),k=(0,_.ZP)(b.Z,{name:"MuiMenu",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),O=(0,_.ZP)(x,{name:"MuiMenu",slot:"List",overridesResolver:function(e,t){return t.list}})({outline:0}),R=o.forwardRef((function(e,t){var n=(0,S.Z)({props:e,name:"MuiMenu"}),l=n.autoFocus,c=void 0===l||l,u=n.children,d=n.disableAutoFocusItem,f=void 0!==d&&d,h=n.MenuListProps,m=void 0===h?{}:h,v=n.onClose,g=n.open,y=n.PaperProps,x=void 0===y?{}:y,b=n.PopoverClasses,w=n.transitionDuration,_=void 0===w?"auto":w,j=n.TransitionProps,R=(j=void 0===j?{}:j).onEntering,N=n.variant,z=void 0===N?"selectedMenu":N,I=(0,a.Z)(n.TransitionProps,T),L=(0,a.Z)(n,C),D=(0,Z.Z)(),B="rtl"===D.direction,H=(0,r.Z)({},n,{autoFocus:c,disableAutoFocusItem:f,MenuListProps:m,onEntering:R,PaperProps:x,transitionDuration:_,TransitionProps:I,variant:z}),F=function(e){var t=e.classes;return(0,s.Z)({root:["root"],paper:["paper"],list:["list"]},E,t)}(H),U=c&&!f&&g,V=o.useRef(null),G=-1;return o.Children.map(u,(function(e,t){o.isValidElement(e)&&(e.props.disabled||("selectedMenu"===z&&e.props.selected||-1===G)&&(G=t))})),(0,p.jsx)(P,(0,r.Z)({classes:b,onClose:v,anchorOrigin:{vertical:"bottom",horizontal:B?"right":"left"},transformOrigin:B?A:M,PaperProps:(0,r.Z)({component:k},x,{classes:(0,r.Z)({},x.classes,{root:F.paper})}),className:F.root,open:g,ref:t,transitionDuration:_,TransitionProps:(0,r.Z)({onEntering:function(e,t){V.current&&V.current.adjustStyleForScrollbar(e,D),R&&R(e,t)}},I),ownerState:H},L,{children:(0,p.jsx)(O,(0,r.Z)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),v&&v(e,"tabKeyDown"))},actions:V,autoFocus:c&&(-1===G||f),autoFocusItem:U,variant:z},m,{className:(0,i.Z)(F.list,m.className),children:u}))}))}))},23786:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var r=n(4942),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(12065),u=n(47630),d=n(93736),f=n(66199),p=n(95080),h=n(40162),m=n(42071),v=n(90133),g=n(96014),y=n(29849),x=n(95159);function b(e){return(0,x.Z)("MuiMenuItem",e)}var w=(0,n(30208).Z)("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),_=n(80184),Z=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex"],S=(0,u.ZP)(p.Z,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiMenuItem",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,o.Z)({},n.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!a.disableGutters&&{paddingLeft:16,paddingRight:16},a.divider&&{borderBottom:"1px solid ".concat(n.palette.divider),backgroundClip:"padding-box"},(t={"&:hover":{textDecoration:"none",backgroundColor:n.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},(0,r.Z)(t,"&.".concat(w.selected),(0,r.Z)({backgroundColor:(0,c.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)},"&.".concat(w.focusVisible),{backgroundColor:(0,c.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.focusOpacity)})),(0,r.Z)(t,"&.".concat(w.selected,":hover"),{backgroundColor:(0,c.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(0,c.Fq)(n.palette.primary.main,n.palette.action.selectedOpacity)}}),(0,r.Z)(t,"&.".concat(w.focusVisible),{backgroundColor:n.palette.action.focus}),(0,r.Z)(t,"&.".concat(w.disabled),{opacity:n.palette.action.disabledOpacity}),(0,r.Z)(t,"& + .".concat(v.Z.root),{marginTop:n.spacing(1),marginBottom:n.spacing(1)}),(0,r.Z)(t,"& + .".concat(v.Z.inset),{marginLeft:52}),(0,r.Z)(t,"& .".concat(y.Z.root),{marginTop:0,marginBottom:0}),(0,r.Z)(t,"& .".concat(y.Z.inset),{paddingLeft:36}),(0,r.Z)(t,"& .".concat(g.Z.root),{minWidth:36}),t),!a.dense&&(0,r.Z)({},n.breakpoints.up("sm"),{minHeight:"auto"}),a.dense&&(0,o.Z)({minHeight:32,paddingTop:4,paddingBottom:4},n.typography.body2,(0,r.Z)({},"& .".concat(g.Z.root," svg"),{fontSize:"1.25rem"})))})),j=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiMenuItem"}),r=n.autoFocus,c=void 0!==r&&r,u=n.component,p=void 0===u?"li":u,v=n.dense,g=void 0!==v&&v,y=n.divider,x=void 0!==y&&y,w=n.disableGutters,j=void 0!==w&&w,E=n.focusVisibleClassName,T=n.role,C=void 0===T?"menuitem":T,A=n.tabIndex,M=(0,a.Z)(n,Z),P=i.useContext(f.Z),k={dense:g||P.dense||!1,disableGutters:j},O=i.useRef(null);(0,h.Z)((function(){c&&O.current&&O.current.focus()}),[c]);var R,N=(0,o.Z)({},n,{dense:k.dense,divider:x,disableGutters:j}),z=function(e){var t=e.disabled,n=e.dense,r=e.divider,a=e.disableGutters,i=e.selected,s=e.classes,c={root:["root",n&&"dense",t&&"disabled",!a&&"gutters",r&&"divider",i&&"selected"]},u=(0,l.Z)(c,b,s);return(0,o.Z)({},s,u)}(n),I=(0,m.Z)(O,t);return n.disabled||(R=void 0!==A?A:-1),(0,_.jsx)(f.Z.Provider,{value:k,children:(0,_.jsx)(S,(0,o.Z)({ref:I,role:C,tabIndex:R,component:p,focusVisibleClassName:(0,s.Z)(z.focusVisible,E)},M,{ownerState:N,classes:z}))})}))},20792:function(e,t,n){"use strict";n.d(t,{Z:function(){return B}});var r=n(29439),a=n(63366),o=n(87462),i=n(72791),s=n(20627),l=n(28182),c=n(47563),u=n(99723),d=n(58956),f=n(78949),p=n(90767),h=n(96174),m=n(15671),v=n(43144),g=n(93433),y=n(27979),x=n(57137);function b(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function w(e){return parseInt((0,y.Z)(e).getComputedStyle(e).paddingRight,10)||0}function _(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0,o=[t,n].concat((0,g.Z)(r)),i=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(e.children,(function(e){-1===o.indexOf(e)&&-1===i.indexOf(e.tagName)&&b(e,a)}))}function Z(e,t){var n=-1;return e.some((function(e,r){return!!t(e)&&(n=r,!0)})),n}function S(e,t){var n=[],r=e.container;if(!t.disableScrollLock){if(function(e){var t=(0,u.Z)(e);return t.body===e?(0,y.Z)(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(r)){var a=(0,x.Z)((0,u.Z)(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight="".concat(w(r)+a,"px");var o=(0,u.Z)(r).querySelectorAll(".mui-fixed");[].forEach.call(o,(function(e){n.push({value:e.style.paddingRight,property:"padding-right",el:e}),e.style.paddingRight="".concat(w(e)+a,"px")}))}var i=r.parentElement,s=(0,y.Z)(r),l="HTML"===(null==i?void 0:i.nodeName)&&"scroll"===s.getComputedStyle(i).overflowY?i:r;n.push({value:l.style.overflow,property:"overflow",el:l},{value:l.style.overflowX,property:"overflow-x",el:l},{value:l.style.overflowY,property:"overflow-y",el:l}),l.style.overflow="hidden"}return function(){n.forEach((function(e){var t=e.value,n=e.el,r=e.property;t?n.style.setProperty(r,t):n.style.removeProperty(r)}))}}var j=function(){function e(){(0,m.Z)(this,e),this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}return(0,v.Z)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&b(e.modalRef,!1);var r=function(e){var t=[];return[].forEach.call(e.children,(function(e){"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);_(t,e.mount,e.modalRef,r,!0);var a=Z(this.containers,(function(e){return e.container===t}));return-1!==a?(this.containers[a].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n)}},{key:"mount",value:function(e,t){var n=Z(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];r.restore||(r.restore=S(r,t))}},{key:"remove",value:function(e){var t=this.modals.indexOf(e);if(-1===t)return t;var n=Z(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(t,1),0===r.modals.length)r.restore&&r.restore(),e.modalRef&&b(e.modalRef,!0),_(r.container,e.mount,e.modalRef,r.hiddenSiblings,!1),this.containers.splice(n,1);else{var a=r.modals[r.modals.length-1];a.modalRef&&b(a.modalRef,!1)}return t}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}(),E=n(38091),T=n(30208),C=n(95159);function A(e){return(0,C.Z)("MuiModal",e)}(0,T.Z)("MuiModal",["root","hidden"]);var M=n(80184),P=["BackdropComponent","BackdropProps","children","classes","className","closeAfterTransition","component","components","componentsProps","container","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onKeyDown","open","theme","onTransitionEnter","onTransitionExited"];var k=new j,O=i.forwardRef((function(e,t){var n=e.BackdropComponent,m=e.BackdropProps,v=e.children,g=e.classes,y=e.className,x=e.closeAfterTransition,w=void 0!==x&&x,_=e.component,Z=void 0===_?"div":_,S=e.components,j=void 0===S?{}:S,T=e.componentsProps,C=void 0===T?{}:T,O=e.container,R=e.disableAutoFocus,N=void 0!==R&&R,z=e.disableEnforceFocus,I=void 0!==z&&z,L=e.disableEscapeKeyDown,D=void 0!==L&&L,B=e.disablePortal,H=void 0!==B&&B,F=e.disableRestoreFocus,U=void 0!==F&&F,V=e.disableScrollLock,G=void 0!==V&&V,W=e.hideBackdrop,q=void 0!==W&&W,K=e.keepMounted,$=void 0!==K&&K,Y=e.manager,Q=void 0===Y?k:Y,J=e.onBackdropClick,X=e.onClose,ee=e.onKeyDown,te=e.open,ne=e.theme,re=e.onTransitionEnter,ae=e.onTransitionExited,oe=(0,a.Z)(e,P),ie=i.useState(!0),se=(0,r.Z)(ie,2),le=se[0],ce=se[1],ue=i.useRef({}),de=i.useRef(null),fe=i.useRef(null),pe=(0,c.Z)(fe,t),he=function(e){return!!e.children&&e.children.props.hasOwnProperty("in")}(e),me=function(){return ue.current.modalRef=fe.current,ue.current.mountNode=de.current,ue.current},ve=function(){Q.mount(me(),{disableScrollLock:G}),fe.current.scrollTop=0},ge=(0,d.Z)((function(){var e=function(e){return"function"===typeof e?e():e}(O)||(0,u.Z)(de.current).body;Q.add(me(),e),fe.current&&ve()})),ye=i.useCallback((function(){return Q.isTopModal(me())}),[Q]),xe=(0,d.Z)((function(e){de.current=e,e&&(te&&ye()?ve():b(fe.current,!0))})),be=i.useCallback((function(){Q.remove(me())}),[Q]);i.useEffect((function(){return function(){be()}}),[be]),i.useEffect((function(){te?ge():he&&w||be()}),[te,be,he,w,ge]);var we=(0,o.Z)({},e,{classes:g,closeAfterTransition:w,disableAutoFocus:N,disableEnforceFocus:I,disableEscapeKeyDown:D,disablePortal:H,disableRestoreFocus:U,disableScrollLock:G,exited:le,hideBackdrop:q,keepMounted:$}),_e=function(e){var t=e.open,n=e.exited,r=e.classes,a={root:["root",!t&&n&&"hidden"]};return(0,p.Z)(a,A,r)}(we);if(!$&&!te&&(!he||le))return null;var Ze={};void 0===v.props.tabIndex&&(Ze.tabIndex="-1"),he&&(Ze.onEnter=(0,f.Z)((function(){ce(!1),re&&re()}),v.props.onEnter),Ze.onExited=(0,f.Z)((function(){ce(!0),ae&&ae(),w&&be()}),v.props.onExited));var Se=j.Root||Z,je=C.root||{};return(0,M.jsx)(h.Z,{ref:xe,container:O,disablePortal:H,children:(0,M.jsxs)(Se,(0,o.Z)({role:"presentation"},je,!(0,s.Z)(Se)&&{as:Z,ownerState:(0,o.Z)({},we,je.ownerState),theme:ne},oe,{ref:pe,onKeyDown:function(e){ee&&ee(e),"Escape"===e.key&&ye()&&(D||(e.stopPropagation(),X&&X(e,"escapeKeyDown")))},className:(0,l.Z)(_e.root,je.className,y),children:[!q&&n?(0,M.jsx)(n,(0,o.Z)({open:te,onClick:function(e){e.target===e.currentTarget&&(J&&J(e),X&&X(e,"backdropClick"))}},m)):null,(0,M.jsx)(E.Z,{disableEnforceFocus:I,disableAutoFocus:N,disableRestoreFocus:U,isEnabled:ye,open:te,children:i.cloneElement(v,Ze)})]}))})})),R=n(47630),N=n(93736),z=n(81489),I=["BackdropComponent","closeAfterTransition","children","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted"],L=(0,R.ZP)("div",{name:"MuiModal",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.open&&n.exited&&t.hidden]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({position:"fixed",zIndex:t.zIndex.modal,right:0,bottom:0,top:0,left:0},!n.open&&n.exited&&{visibility:"hidden"})})),D=(0,R.ZP)(z.Z,{name:"MuiModal",slot:"Backdrop",overridesResolver:function(e,t){return t.backdrop}})({zIndex:-1}),B=i.forwardRef((function(e,t){var n,l=(0,N.Z)({name:"MuiModal",props:e}),c=l.BackdropComponent,u=void 0===c?D:c,d=l.closeAfterTransition,f=void 0!==d&&d,p=l.children,h=l.components,m=void 0===h?{}:h,v=l.componentsProps,g=void 0===v?{}:v,y=l.disableAutoFocus,x=void 0!==y&&y,b=l.disableEnforceFocus,w=void 0!==b&&b,_=l.disableEscapeKeyDown,Z=void 0!==_&&_,S=l.disablePortal,j=void 0!==S&&S,E=l.disableRestoreFocus,T=void 0!==E&&E,C=l.disableScrollLock,A=void 0!==C&&C,P=l.hideBackdrop,k=void 0!==P&&P,R=l.keepMounted,z=void 0!==R&&R,B=(0,a.Z)(l,I),H=i.useState(!0),F=(0,r.Z)(H,2),U=F[0],V=F[1],G={closeAfterTransition:f,disableAutoFocus:x,disableEnforceFocus:w,disableEscapeKeyDown:Z,disablePortal:j,disableRestoreFocus:T,disableScrollLock:A,hideBackdrop:k,keepMounted:z},W=function(e){return e.classes}((0,o.Z)({},l,G,{exited:U}));return(0,M.jsx)(O,(0,o.Z)({components:(0,o.Z)({Root:L},m),componentsProps:{root:(0,o.Z)({},g.root,(!m.Root||!(0,s.Z)(m.Root))&&{ownerState:(0,o.Z)({},null==(n=g.root)?void 0:n.ownerState)})},BackdropComponent:u,onTransitionEnter:function(){return V(!1)},onTransitionExited:function(){return V(!0)},ref:t},B,{classes:W},G,{children:p}))}))},77196:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r,a=n(4942),o=n(63366),i=n(87462),s=n(72791),l=n(90767),c=n(47630),u=n(80184),d=["children","classes","className","label","notched"],f=(0,c.ZP)("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),p=(0,c.ZP)("legend")((function(e){var t=e.ownerState,n=e.theme;return(0,i.Z)({float:"unset",overflow:"hidden"},!t.withLabel&&{padding:0,lineHeight:"11px",transition:n.transitions.create("width",{duration:150,easing:n.transitions.easing.easeOut})},t.withLabel&&(0,i.Z)({display:"block",width:"auto",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:n.transitions.create("max-width",{duration:50,easing:n.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},t.notched&&{maxWidth:"100%",transition:n.transitions.create("max-width",{duration:100,easing:n.transitions.easing.easeOut,delay:50})}))}));var h=n(52930),m=n(76147),v=n(56059),g=n(4834),y=n(93736),x=["components","fullWidth","inputComponent","label","multiline","notched","type"],b=(0,c.ZP)(g.Ej,{shouldForwardProp:function(e){return(0,c.FO)(e)||"classes"===e},name:"MuiOutlinedInput",slot:"Root",overridesResolver:g.Gx})((function(e){var t,n=e.theme,r=e.ownerState,o="light"===n.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return(0,i.Z)((t={position:"relative",borderRadius:n.shape.borderRadius},(0,a.Z)(t,"&:hover .".concat(v.Z.notchedOutline),{borderColor:n.palette.text.primary}),(0,a.Z)(t,"@media (hover: none)",(0,a.Z)({},"&:hover .".concat(v.Z.notchedOutline),{borderColor:o})),(0,a.Z)(t,"&.".concat(v.Z.focused," .").concat(v.Z.notchedOutline),{borderColor:n.palette[r.color].main,borderWidth:2}),(0,a.Z)(t,"&.".concat(v.Z.error," .").concat(v.Z.notchedOutline),{borderColor:n.palette.error.main}),(0,a.Z)(t,"&.".concat(v.Z.disabled," .").concat(v.Z.notchedOutline),{borderColor:n.palette.action.disabled}),t),r.startAdornment&&{paddingLeft:14},r.endAdornment&&{paddingRight:14},r.multiline&&(0,i.Z)({padding:"16.5px 14px"},"small"===r.size&&{padding:"8.5px 14px"}))})),w=(0,c.ZP)((function(e){var t=e.className,n=e.label,a=e.notched,s=(0,o.Z)(e,d),l=null!=n&&""!==n,c=(0,i.Z)({},e,{notched:a,withLabel:l});return(0,u.jsx)(f,(0,i.Z)({"aria-hidden":!0,className:t,ownerState:c},s,{children:(0,u.jsx)(p,{ownerState:c,children:l?(0,u.jsx)("span",{children:n}):r||(r=(0,u.jsx)("span",{className:"notranslate",children:"\u200b"}))})}))}),{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:function(e,t){return t.notchedOutline}})((function(e){return{borderColor:"light"===e.theme.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}})),_=(0,c.ZP)(g.rA,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:g._o})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({padding:"16.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderRadius:"inherit"}},"small"===n.size&&{padding:"8.5px 14px"},n.multiline&&{padding:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0})})),Z=s.forwardRef((function(e,t){var n,r=(0,y.Z)({props:e,name:"MuiOutlinedInput"}),a=r.components,c=void 0===a?{}:a,d=r.fullWidth,f=void 0!==d&&d,p=r.inputComponent,Z=void 0===p?"input":p,S=r.label,j=r.multiline,E=void 0!==j&&j,T=r.notched,C=r.type,A=void 0===C?"text":C,M=(0,o.Z)(r,x),P=function(e){var t=e.classes,n=(0,l.Z)({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},v.e,t);return(0,i.Z)({},t,n)}(r),k=(0,h.Z)(),O=(0,m.Z)({props:r,muiFormControl:k,states:["required"]});return(0,u.jsx)(g.ZP,(0,i.Z)({components:(0,i.Z)({Root:b,Input:_},c),renderSuffix:function(e){return(0,u.jsx)(w,{className:P.notchedOutline,label:null!=S&&""!==S&&O.required?n||(n=(0,u.jsxs)(s.Fragment,{children:[S,"\xa0","*"]})):S,notched:"undefined"!==typeof T?T:Boolean(e.startAdornment||e.filled||e.focused)})},fullWidth:f,inputComponent:Z,multiline:E,ref:t,type:A},M,{classes:(0,i.Z)({},P,{notchedOutline:null})}))}));Z.muiName="Input";var S=Z},56059:function(e,t,n){"use strict";n.d(t,{e:function(){return s}});var r=n(87462),a=n(95159),o=n(30208),i=n(55891);function s(e){return(0,a.Z)("MuiOutlinedInput",e)}var l=(0,r.Z)({},i.Z,(0,o.Z)("MuiOutlinedInput",["root","notchedOutline","input"]));t.Z=l},10703:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(63366),a=n(87462),o=n(72791),i=n(28182),s=n(90767),l=n(12065),c=n(47630),u=n(93736),d=n(95159);function f(e){return(0,d.Z)("MuiPaper",e)}(0,n(30208).Z)("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);var p=n(80184),h=["className","component","elevation","square","variant"],m=function(e){return((e<1?5.11916*Math.pow(e,2):4.5*Math.log(e+1)+2)/100).toFixed(2)},v=(0,c.ZP)("div",{name:"MuiPaper",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t["elevation".concat(n.elevation)]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,a.Z)({backgroundColor:t.palette.background.paper,color:t.palette.text.primary,transition:t.transitions.create("box-shadow")},!n.square&&{borderRadius:t.shape.borderRadius},"outlined"===n.variant&&{border:"1px solid ".concat(t.palette.divider)},"elevation"===n.variant&&(0,a.Z)({boxShadow:t.shadows[n.elevation]},"dark"===t.palette.mode&&{backgroundImage:"linear-gradient(".concat((0,l.Fq)("#fff",m(n.elevation)),", ").concat((0,l.Fq)("#fff",m(n.elevation)),")")}))})),g=o.forwardRef((function(e,t){var n=(0,u.Z)({props:e,name:"MuiPaper"}),o=n.className,l=n.component,c=void 0===l?"div":l,d=n.elevation,m=void 0===d?1:d,g=n.square,y=void 0!==g&&g,x=n.variant,b=void 0===x?"elevation":x,w=(0,r.Z)(n,h),_=(0,a.Z)({},n,{component:c,elevation:m,square:y,variant:b}),Z=function(e){var t=e.square,n=e.elevation,r=e.variant,a=e.classes,o={root:["root",r,!t&&"rounded","elevation"===r&&"elevation".concat(n)]};return(0,s.Z)(o,f,a)}(_);return(0,p.jsx)(v,(0,a.Z)({as:c,ownerState:_,className:(0,i.Z)(Z.root,o),ref:t},w))}))},15473:function(e,t,n){"use strict";n.d(t,{ZP:function(){return C}});var r=n(87462),a=n(63366),o=n(72791),i=n(28182),s=n(90767),l=n(47630),c=n(93736),u=n(83199),d=n(98301),f=n(17602),p=n(42071),h=n(13208),m=n(20792),v=n(10703),g=n(95159);function y(e){return(0,g.Z)("MuiPopover",e)}(0,n(30208).Z)("MuiPopover",["root","paper"]);var x=n(80184),b=["onEntering"],w=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"];function _(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function Z(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function S(e){return[e.horizontal,e.vertical].map((function(e){return"number"===typeof e?"".concat(e,"px"):e})).join(" ")}function j(e){return"function"===typeof e?e():e}var E=(0,l.ZP)(m.Z,{name:"MuiPopover",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),T=(0,l.ZP)(v.Z,{name:"MuiPopover",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),C=o.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiPopover"}),l=n.action,m=n.anchorEl,v=n.anchorOrigin,g=void 0===v?{vertical:"top",horizontal:"left"}:v,C=n.anchorPosition,A=n.anchorReference,M=void 0===A?"anchorEl":A,P=n.children,k=n.className,O=n.container,R=n.elevation,N=void 0===R?8:R,z=n.marginThreshold,I=void 0===z?16:z,L=n.open,D=n.PaperProps,B=void 0===D?{}:D,H=n.transformOrigin,F=void 0===H?{vertical:"top",horizontal:"left"}:H,U=n.TransitionComponent,V=void 0===U?h.Z:U,G=n.transitionDuration,W=void 0===G?"auto":G,q=n.TransitionProps,K=(q=void 0===q?{}:q).onEntering,$=(0,a.Z)(n.TransitionProps,b),Y=(0,a.Z)(n,w),Q=o.useRef(),J=(0,p.Z)(Q,B.ref),X=(0,r.Z)({},n,{anchorOrigin:g,anchorReference:M,elevation:N,marginThreshold:I,PaperProps:B,transformOrigin:F,TransitionComponent:V,transitionDuration:W,TransitionProps:$}),ee=function(e){var t=e.classes;return(0,s.Z)({root:["root"],paper:["paper"]},y,t)}(X),te=o.useCallback((function(){if("anchorPosition"===M)return C;var e=j(m),t=(e&&1===e.nodeType?e:(0,d.Z)(Q.current).body).getBoundingClientRect();return{top:t.top+_(t,g.vertical),left:t.left+Z(t,g.horizontal)}}),[m,g.horizontal,g.vertical,C,M]),ne=o.useCallback((function(e){return{vertical:_(e,F.vertical),horizontal:Z(e,F.horizontal)}}),[F.horizontal,F.vertical]),re=o.useCallback((function(e){var t={width:e.offsetWidth,height:e.offsetHeight},n=ne(t);if("none"===M)return{top:null,left:null,transformOrigin:S(n)};var r=te(),a=r.top-n.vertical,o=r.left-n.horizontal,i=a+t.height,s=o+t.width,l=(0,f.Z)(j(m)),c=l.innerHeight-I,u=l.innerWidth-I;if(ac){var p=i-c;a-=p,n.vertical+=p}if(ou){var v=s-u;o-=v,n.horizontal+=v}return{top:"".concat(Math.round(a),"px"),left:"".concat(Math.round(o),"px"),transformOrigin:S(n)}}),[m,M,te,ne,I]),ae=o.useCallback((function(){var e=Q.current;if(e){var t=re(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin}}),[re]);o.useEffect((function(){L&&ae()})),o.useImperativeHandle(l,(function(){return L?{updatePosition:function(){ae()}}:null}),[L,ae]),o.useEffect((function(){if(L){var e=(0,u.Z)((function(){ae()})),t=(0,f.Z)(m);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}}),[m,L,ae]);var oe=W;"auto"!==W||V.muiSupportAuto||(oe=void 0);var ie=O||(m?(0,d.Z)(j(m)).body:void 0);return(0,x.jsx)(E,(0,r.Z)({BackdropProps:{invisible:!0},className:(0,i.Z)(ee.root,k),container:ie,open:L,ref:t,ownerState:X},Y,{children:(0,x.jsx)(V,(0,r.Z)({appear:!0,in:L,onEntering:function(e,t){K&&K(e,t),ae()},timeout:oe},$,{children:(0,x.jsx)(T,(0,r.Z)({elevation:N},B,{ref:J,className:(0,i.Z)(ee.paper,B.className),children:P}))}))}))}))},95892:function(e,t,n){"use strict";n.d(t,{Z:function(){return Oe}});var r=n(87462),a=n(29439),o=n(63366),i=n(47563),s=n(75721),l=n(99723);function c(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function u(e){return e instanceof c(e).Element||e instanceof Element}function d(e){return e instanceof c(e).HTMLElement||e instanceof HTMLElement}function f(e){return"undefined"!==typeof ShadowRoot&&(e instanceof c(e).ShadowRoot||e instanceof ShadowRoot)}var p=Math.max,h=Math.min,m=Math.round;function v(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),r=1,a=1;if(d(e)&&t){var o=e.offsetHeight,i=e.offsetWidth;i>0&&(r=m(n.width)/i||1),o>0&&(a=m(n.height)/o||1)}return{width:n.width/r,height:n.height/a,top:n.top/a,right:n.right/r,bottom:n.bottom/a,left:n.left/r,x:n.left/r,y:n.top/a}}function g(e){var t=c(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function y(e){return e?(e.nodeName||"").toLowerCase():null}function x(e){return((u(e)?e.ownerDocument:e.document)||window.document).documentElement}function b(e){return v(x(e)).left+g(e).scrollLeft}function w(e){return c(e).getComputedStyle(e)}function _(e){var t=w(e),n=t.overflow,r=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+r)}function Z(e,t,n){void 0===n&&(n=!1);var r=d(t),a=d(t)&&function(e){var t=e.getBoundingClientRect(),n=m(t.width)/e.offsetWidth||1,r=m(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),o=x(t),i=v(e,a),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&(("body"!==y(t)||_(o))&&(s=function(e){return e!==c(e)&&d(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:g(e);var t}(t)),d(t)?((l=v(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=b(o))),{x:i.left+s.scrollLeft-l.x,y:i.top+s.scrollTop-l.y,width:i.width,height:i.height}}function S(e){var t=v(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function j(e){return"html"===y(e)?e:e.assignedSlot||e.parentNode||(f(e)?e.host:null)||x(e)}function E(e){return["html","body","#document"].indexOf(y(e))>=0?e.ownerDocument.body:d(e)&&_(e)?e:E(j(e))}function T(e,t){var n;void 0===t&&(t=[]);var r=E(e),a=r===(null==(n=e.ownerDocument)?void 0:n.body),o=c(r),i=a?[o].concat(o.visualViewport||[],_(r)?r:[]):r,s=t.concat(i);return a?s:s.concat(T(j(i)))}function C(e){return["table","td","th"].indexOf(y(e))>=0}function A(e){return d(e)&&"fixed"!==w(e).position?e.offsetParent:null}function M(e){for(var t=c(e),n=A(e);n&&C(n)&&"static"===w(n).position;)n=A(n);return n&&("html"===y(n)||"body"===y(n)&&"static"===w(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&d(e)&&"fixed"===w(e).position)return null;var n=j(e);for(f(n)&&(n=n.host);d(n)&&["html","body"].indexOf(y(n))<0;){var r=w(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var P="top",k="bottom",O="right",R="left",N="auto",z=[P,k,O,R],I="start",L="end",D="viewport",B="popper",H=z.reduce((function(e,t){return e.concat([t+"-"+I,t+"-"+L])}),[]),F=[].concat(z,[N]).reduce((function(e,t){return e.concat([t,t+"-"+I,t+"-"+L])}),[]),U=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function V(e){var t=new Map,n=new Set,r=[];function a(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&a(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||a(e)})),r}function G(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var W={placement:"bottom",modifiers:[],strategy:"absolute"};function q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,a=e.placement,o=a?Y(a):null,i=a?Q(a):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(o){case P:t={x:s,y:n.y-r.height};break;case k:t={x:s,y:n.y+n.height};break;case O:t={x:n.x+n.width,y:l};break;case R:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=o?J(o):null;if(null!=c){var u="y"===c?"height":"width";switch(i){case I:t[c]=t[c]-(n[u]/2-r[u]/2);break;case L:t[c]=t[c]+(n[u]/2-r[u]/2)}}return t}var ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var t,n=e.popper,r=e.popperRect,a=e.placement,o=e.variation,i=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,f=e.isFixed,p=i.x,h=void 0===p?0:p,v=i.y,g=void 0===v?0:v,y="function"===typeof d?d({x:h,y:g}):{x:h,y:g};h=y.x,g=y.y;var b=i.hasOwnProperty("x"),_=i.hasOwnProperty("y"),Z=R,S=P,j=window;if(u){var E=M(n),T="clientHeight",C="clientWidth";if(E===c(n)&&"static"!==w(E=x(n)).position&&"absolute"===s&&(T="scrollHeight",C="scrollWidth"),E=E,a===P||(a===R||a===O)&&o===L)S=k,g-=(f&&E===j&&j.visualViewport?j.visualViewport.height:E[T])-r.height,g*=l?1:-1;if(a===R||(a===P||a===k)&&o===L)Z=O,h-=(f&&E===j&&j.visualViewport?j.visualViewport.width:E[C])-r.width,h*=l?1:-1}var A,N=Object.assign({position:s},u&&ee),z=!0===d?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:m(t*r)/r||0,y:m(n*r)/r||0}}({x:h,y:g}):{x:h,y:g};return h=z.x,g=z.y,l?Object.assign({},N,((A={})[S]=_?"0":"",A[Z]=b?"0":"",A.transform=(j.devicePixelRatio||1)<=1?"translate("+h+"px, "+g+"px)":"translate3d("+h+"px, "+g+"px, 0)",A)):Object.assign({},N,((t={})[S]=_?g+"px":"",t[Z]=b?h+"px":"",t.transform="",t))}var ne={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,a=n.offset,o=void 0===a?[0,0]:a,i=F.reduce((function(e,n){return e[n]=function(e,t,n){var r=Y(e),a=[R,P].indexOf(r)>=0?-1:1,o="function"===typeof n?n(Object.assign({},t,{placement:e})):n,i=o[0],s=o[1];return i=i||0,s=(s||0)*a,[R,O].indexOf(r)>=0?{x:s,y:i}:{x:i,y:s}}(n,t.rects,o),e}),{}),s=i[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=i}},re={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return re[e]}))}var oe={start:"end",end:"start"};function ie(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&f(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function le(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ce(e,t){return t===D?le(function(e){var t=c(e),n=x(e),r=t.visualViewport,a=n.clientWidth,o=n.clientHeight,i=0,s=0;return r&&(a=r.width,o=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(i=r.offsetLeft,s=r.offsetTop)),{width:a,height:o,x:i+b(e),y:s}}(e)):u(t)?function(e){var t=v(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):le(function(e){var t,n=x(e),r=g(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=p(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),i=p(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),s=-r.scrollLeft+b(e),l=-r.scrollTop;return"rtl"===w(a||n).direction&&(s+=p(n.clientWidth,a?a.clientWidth:0)-o),{width:o,height:i,x:s,y:l}}(x(e)))}function ue(e,t,n){var r="clippingParents"===t?function(e){var t=T(j(e)),n=["absolute","fixed"].indexOf(w(e).position)>=0&&d(e)?M(e):e;return u(n)?t.filter((function(e){return u(e)&&se(e,n)&&"body"!==y(e)})):[]}(e):[].concat(t),a=[].concat(r,[n]),o=a[0],i=a.reduce((function(t,n){var r=ce(e,n);return t.top=p(r.top,t.top),t.right=h(r.right,t.right),t.bottom=h(r.bottom,t.bottom),t.left=p(r.left,t.left),t}),ce(e,o));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function de(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function pe(e,t){void 0===t&&(t={});var n=t,r=n.placement,a=void 0===r?e.placement:r,o=n.boundary,i=void 0===o?"clippingParents":o,s=n.rootBoundary,l=void 0===s?D:s,c=n.elementContext,d=void 0===c?B:c,f=n.altBoundary,p=void 0!==f&&f,h=n.padding,m=void 0===h?0:h,g=de("number"!==typeof m?m:fe(m,z)),y=d===B?"reference":B,b=e.rects.popper,w=e.elements[p?y:d],_=ue(u(w)?w:w.contextElement||x(e.elements.popper),i,l),Z=v(e.elements.reference),S=X({reference:Z,element:b,strategy:"absolute",placement:a}),j=le(Object.assign({},b,S)),E=d===B?j:Z,T={top:_.top-E.top+g.top,bottom:E.bottom-_.bottom+g.bottom,left:_.left-E.left+g.left,right:E.right-_.right+g.right},C=e.modifiersData.offset;if(d===B&&C){var A=C[a];Object.keys(T).forEach((function(e){var t=[O,k].indexOf(e)>=0?1:-1,n=[P,k].indexOf(e)>=0?"y":"x";T[e]+=A[n]*t}))}return T}function he(e,t,n){return p(e,h(t,n))}var me={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,a=n.mainAxis,o=void 0===a||a,i=n.altAxis,s=void 0!==i&&i,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,m=void 0===f||f,v=n.tetherOffset,g=void 0===v?0:v,y=pe(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),x=Y(t.placement),b=Q(t.placement),w=!b,_=J(x),Z="x"===_?"y":"x",j=t.modifiersData.popperOffsets,E=t.rects.reference,T=t.rects.popper,C="function"===typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,A="number"===typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),N=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,z={x:0,y:0};if(j){if(o){var L,D="y"===_?P:R,B="y"===_?k:O,H="y"===_?"height":"width",F=j[_],U=F+y[D],V=F-y[B],G=m?-T[H]/2:0,W=b===I?E[H]:T[H],q=b===I?-T[H]:-E[H],K=t.elements.arrow,$=m&&K?S(K):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=X[D],te=X[B],ne=he(0,E[H],$[H]),re=w?E[H]/2-G-ne-ee-A.mainAxis:W-ne-ee-A.mainAxis,ae=w?-E[H]/2+G+ne+te+A.mainAxis:q+ne+te+A.mainAxis,oe=t.elements.arrow&&M(t.elements.arrow),ie=oe?"y"===_?oe.clientTop||0:oe.clientLeft||0:0,se=null!=(L=null==N?void 0:N[_])?L:0,le=F+ae-se,ce=he(m?h(U,F+re-se-ie):U,F,m?p(V,le):V);j[_]=ce,z[_]=ce-F}if(s){var ue,de="x"===_?P:R,fe="x"===_?k:O,me=j[Z],ve="y"===Z?"height":"width",ge=me+y[de],ye=me-y[fe],xe=-1!==[P,R].indexOf(x),be=null!=(ue=null==N?void 0:N[Z])?ue:0,we=xe?ge:me-E[ve]-T[ve]-be+A.altAxis,_e=xe?me+E[ve]+T[ve]-be-A.altAxis:ye,Ze=m&&xe?function(e,t,n){var r=he(e,t,n);return r>n?n:r}(we,me,_e):he(m?we:ge,me,m?_e:ye);j[Z]=Ze,z[Z]=Ze-me}t.modifiersData[r]=z}},requiresIfExists:["offset"]};var ve={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,a=e.options,o=n.elements.arrow,i=n.modifiersData.popperOffsets,s=Y(n.placement),l=J(s),c=[R,O].indexOf(s)>=0?"height":"width";if(o&&i){var u=function(e,t){return de("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fe(e,z))}(a.padding,n),d=S(o),f="y"===l?P:R,p="y"===l?k:O,h=n.rects.reference[c]+n.rects.reference[l]-i[l]-n.rects.popper[c],m=i[l]-n.rects.reference[l],v=M(o),g=v?"y"===l?v.clientHeight||0:v.clientWidth||0:0,y=h/2-m/2,x=u[f],b=g-d[c]-u[p],w=g/2-d[c]/2+y,_=he(x,w,b),Z=l;n.modifiersData[r]=((t={})[Z]=_,t.centerOffset=_-w,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!==typeof r||(r=t.elements.popper.querySelector(r)))&&se(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ge(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[P,O,k,R].some((function(t){return e[t]>=0}))}var xe=K({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,a=r.scroll,o=void 0===a||a,i=r.resize,s=void 0===i||i,l=c(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach((function(e){e.addEventListener("scroll",n.update,$)})),s&&l.addEventListener("resize",n.update,$),function(){o&&u.forEach((function(e){e.removeEventListener("scroll",n.update,$)})),s&&l.removeEventListener("resize",n.update,$)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,a=void 0===r||r,o=n.adaptive,i=void 0===o||o,s=n.roundOffsets,l=void 0===s||s,c={placement:Y(t.placement),variation:Q(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},a=t.elements[e];d(a)&&y(a)&&(Object.assign(a.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});d(r)&&y(r)&&(Object.assign(r.style,o),Object.keys(a).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},ne,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var a=n.mainAxis,o=void 0===a||a,i=n.altAxis,s=void 0===i||i,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,h=void 0===p||p,m=n.allowedAutoPlacements,v=t.options.placement,g=Y(v),y=l||(g===v||!h?[ae(v)]:function(e){if(Y(e)===N)return[];var t=ae(e);return[ie(e),t,ie(t)]}(v)),x=[v].concat(y).reduce((function(e,n){return e.concat(Y(n)===N?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,a=n.boundary,o=n.rootBoundary,i=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?F:l,u=Q(r),d=u?s?H:H.filter((function(e){return Q(e)===u})):z,f=d.filter((function(e){return c.indexOf(e)>=0}));0===f.length&&(f=d);var p=f.reduce((function(t,n){return t[n]=pe(e,{placement:n,boundary:a,rootBoundary:o,padding:i})[Y(n)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),b=t.rects.reference,w=t.rects.popper,_=new Map,Z=!0,S=x[0],j=0;j=0,M=A?"width":"height",L=pe(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),D=A?C?O:R:C?k:P;b[M]>w[M]&&(D=ae(D));var B=ae(D),U=[];if(o&&U.push(L[T]<=0),s&&U.push(L[D]<=0,L[B]<=0),U.every((function(e){return e}))){S=E,Z=!1;break}_.set(E,U)}if(Z)for(var V=function(e){var t=x.find((function(t){var n=_.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},G=h?3:1;G>0;G--){if("break"===V(G))break}t.placement!==S&&(t.modifiersData[r]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},me,ve,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,i=pe(t,{elementContext:"reference"}),s=pe(t,{altBoundary:!0}),l=ge(i,r),c=ge(s,a,o),u=ye(l),d=ye(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}}]}),be=n(72791),we=n(96174),_e=n(80184),Ze=["anchorEl","children","direction","disablePortal","modifiers","open","ownerState","placement","popperOptions","popperRef","TransitionProps"],Se=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"];function je(e){return"function"===typeof e?e():e}var Ee={},Te=be.forwardRef((function(e,t){var n=e.anchorEl,l=e.children,c=e.direction,u=e.disablePortal,d=e.modifiers,f=e.open,p=e.placement,h=e.popperOptions,m=e.popperRef,v=e.TransitionProps,g=(0,o.Z)(e,Ze),y=be.useRef(null),x=(0,i.Z)(y,t),b=be.useRef(null),w=(0,i.Z)(b,m),_=be.useRef(w);(0,s.Z)((function(){_.current=w}),[w]),be.useImperativeHandle(m,(function(){return b.current}),[]);var Z=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(p,c),S=be.useState(Z),j=(0,a.Z)(S,2),E=j[0],T=j[1];be.useEffect((function(){b.current&&b.current.forceUpdate()})),(0,s.Z)((function(){if(n&&f){je(n);var e=[{name:"preventOverflow",options:{altBoundary:u}},{name:"flip",options:{altBoundary:u}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:function(e){var t=e.state;T(t.placement)}}];null!=d&&(e=e.concat(d)),h&&null!=h.modifiers&&(e=e.concat(h.modifiers));var t=xe(je(n),y.current,(0,r.Z)({placement:Z},h,{modifiers:e}));return _.current(t),function(){t.destroy(),_.current(null)}}}),[n,u,d,f,h,Z]);var C={placement:E};return null!==v&&(C.TransitionProps=v),(0,_e.jsx)("div",(0,r.Z)({ref:x,role:"tooltip"},g,{children:"function"===typeof l?l(C):l}))})),Ce=be.forwardRef((function(e,t){var n=e.anchorEl,i=e.children,s=e.container,c=e.direction,u=void 0===c?"ltr":c,d=e.disablePortal,f=void 0!==d&&d,p=e.keepMounted,h=void 0!==p&&p,m=e.modifiers,v=e.open,g=e.placement,y=void 0===g?"bottom":g,x=e.popperOptions,b=void 0===x?Ee:x,w=e.popperRef,_=e.style,Z=e.transition,S=void 0!==Z&&Z,j=(0,o.Z)(e,Se),E=be.useState(!0),T=(0,a.Z)(E,2),C=T[0],A=T[1];if(!h&&!v&&(!S||C))return null;var M=s||(n?(0,l.Z)(je(n)).body:void 0);return(0,_e.jsx)(we.Z,{disablePortal:f,container:M,children:(0,_e.jsx)(Te,(0,r.Z)({anchorEl:n,direction:u,disablePortal:f,modifiers:m,ref:t,open:S?!C:v,placement:y,popperOptions:b,popperRef:w},j,{style:(0,r.Z)({position:"fixed",top:0,left:0,display:v||!h||S&&!C?null:"none"},_),TransitionProps:S?{in:v,onEnter:function(){A(!1)},onExited:function(){A(!0)}}:null,children:i}))})})),Ae=n(69120),Me=n(47630),Pe=n(93736),ke=(0,Me.ZP)(Ce,{name:"MuiPopper",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),Oe=be.forwardRef((function(e,t){var n=(0,Ae.Z)(),a=(0,Pe.Z)({props:e,name:"MuiPopper"});return(0,_e.jsx)(ke,(0,r.Z)({direction:null==n?void 0:n.direction},a,{ref:t}))}))},58406:function(e,t,n){"use strict";n.d(t,{Z:function(){return te}});var r=n(87462),a=n(63366),o=n(72791),i=n(28182),s=n(82466),l=n(29439),c=n(4942),u=n(46189),d=(n(57441),n(90767)),f=n(98301),p=n(14036),h=n(71715),m=n(95159),v=n(30208);function g(e){return(0,m.Z)("MuiNativeSelect",e)}var y=(0,v.Z)("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput"]),x=n(47630),b=n(80184),w=["className","disabled","IconComponent","inputRef","variant"],_=function(e){var t,n=e.ownerState,a=e.theme;return(0,r.Z)((t={MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{backgroundColor:"light"===a.palette.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)",borderRadius:0},"&::-ms-expand":{display:"none"}},(0,c.Z)(t,"&.".concat(y.disabled),{cursor:"default"}),(0,c.Z)(t,"&[multiple]",{height:"auto"}),(0,c.Z)(t,"&:not([multiple]) option, &:not([multiple]) optgroup",{backgroundColor:a.palette.background.paper}),(0,c.Z)(t,"&&&",{paddingRight:24,minWidth:16}),t),"filled"===n.variant&&{"&&&":{paddingRight:32}},"outlined"===n.variant&&{borderRadius:a.shape.borderRadius,"&:focus":{borderRadius:a.shape.borderRadius},"&&&":{paddingRight:32}})},Z=(0,x.ZP)("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:x.FO,overridesResolver:function(e,t){var n=e.ownerState;return[t.select,t[n.variant],(0,c.Z)({},"&.".concat(y.multiple),t.multiple)]}})(_),S=function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)((0,c.Z)({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:n.palette.action.active},"&.".concat(y.disabled),{color:n.palette.action.disabled}),t.open&&{transform:"rotate(180deg)"},"filled"===t.variant&&{right:7},"outlined"===t.variant&&{right:7})},j=(0,x.ZP)("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,p.Z)(n.variant))],n.open&&t.iconOpen]}})(S),E=o.forwardRef((function(e,t){var n=e.className,s=e.disabled,l=e.IconComponent,c=e.inputRef,u=e.variant,f=void 0===u?"standard":u,h=(0,a.Z)(e,w),m=(0,r.Z)({},e,{disabled:s,variant:f}),v=function(e){var t=e.classes,n=e.variant,r=e.disabled,a=e.multiple,o=e.open,i={select:["select",n,r&&"disabled",a&&"multiple"],icon:["icon","icon".concat((0,p.Z)(n)),o&&"iconOpen",r&&"disabled"]};return(0,d.Z)(i,g,t)}(m);return(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(Z,(0,r.Z)({ownerState:m,className:(0,i.Z)(v.select,n),disabled:s,ref:c||t},h)),e.multiple?null:(0,b.jsx)(j,{as:l,ownerState:m,className:v.icon})]})})),T=n(35470),C=n(42071),A=n(98278);function M(e){return(0,m.Z)("MuiSelect",e)}var P,k=(0,v.Z)("MuiSelect",["select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput"]),O=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],R=(0,x.ZP)("div",{name:"MuiSelect",slot:"Select",overridesResolver:function(e,t){var n=e.ownerState;return[(0,c.Z)({},"&.".concat(k.select),t.select),(0,c.Z)({},"&.".concat(k.select),t[n.variant]),(0,c.Z)({},"&.".concat(k.multiple),t.multiple)]}})(_,(0,c.Z)({},"&.".concat(k.select),{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"})),N=(0,x.ZP)("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,p.Z)(n.variant))],n.open&&t.iconOpen]}})(S),z=(0,x.ZP)("input",{shouldForwardProp:function(e){return(0,x.Dz)(e)&&"classes"!==e},name:"MuiSelect",slot:"NativeInput",overridesResolver:function(e,t){return t.nativeInput}})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function I(e,t){return"object"===typeof t&&null!==t?e===t:String(e)===String(t)}function L(e){return null==e||"string"===typeof e&&!e.trim()}var D,B,H=o.forwardRef((function(e,t){var n=e["aria-describedby"],s=e["aria-label"],c=e.autoFocus,m=e.autoWidth,v=e.children,g=e.className,y=e.defaultOpen,x=e.defaultValue,w=e.disabled,_=e.displayEmpty,Z=e.IconComponent,S=e.inputRef,j=e.labelId,E=e.MenuProps,k=void 0===E?{}:E,D=e.multiple,B=e.name,H=e.onBlur,F=e.onChange,U=e.onClose,V=e.onFocus,G=e.onOpen,W=e.open,q=e.readOnly,K=e.renderValue,$=e.SelectDisplayProps,Y=void 0===$?{}:$,Q=e.tabIndex,J=e.value,X=e.variant,ee=void 0===X?"standard":X,te=(0,a.Z)(e,O),ne=(0,A.Z)({controlled:J,default:x,name:"Select"}),re=(0,l.Z)(ne,2),ae=re[0],oe=re[1],ie=(0,A.Z)({controlled:W,default:y,name:"Select"}),se=(0,l.Z)(ie,2),le=se[0],ce=se[1],ue=o.useRef(null),de=o.useRef(null),fe=o.useState(null),pe=(0,l.Z)(fe,2),he=pe[0],me=pe[1],ve=o.useRef(null!=W).current,ge=o.useState(),ye=(0,l.Z)(ge,2),xe=ye[0],be=ye[1],we=(0,C.Z)(t,S),_e=o.useCallback((function(e){de.current=e,e&&me(e)}),[]);o.useImperativeHandle(we,(function(){return{focus:function(){de.current.focus()},node:ue.current,value:ae}}),[ae]),o.useEffect((function(){y&&le&&he&&!ve&&(be(m?null:he.clientWidth),de.current.focus())}),[he,m]),o.useEffect((function(){c&&de.current.focus()}),[c]),o.useEffect((function(){if(j){var e=(0,f.Z)(de.current).getElementById(j);if(e){var t=function(){getSelection().isCollapsed&&de.current.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[j]);var Ze,Se,je=function(e,t){e?G&&G(t):U&&U(t),ve||(be(m?null:he.clientWidth),ce(e))},Ee=o.Children.toArray(v),Te=function(e){return function(t){var n;if(t.currentTarget.hasAttribute("tabindex")){if(D){n=Array.isArray(ae)?ae.slice():[];var r=ae.indexOf(e.props.value);-1===r?n.push(e.props.value):n.splice(r,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),ae!==n&&(oe(n),F)){var a=t.nativeEvent||t,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:n,name:B}}),F(o,e)}D||je(!1,t)}}},Ce=null!==he&≤delete te["aria-invalid"];var Ae=[],Me=!1;((0,T.vd)({value:ae})||_)&&(K?Ze=K(ae):Me=!0);var Pe=Ee.map((function(e){if(!o.isValidElement(e))return null;var t;if(D){if(!Array.isArray(ae))throw new Error((0,u.Z)(2));(t=ae.some((function(t){return I(t,e.props.value)})))&&Me&&Ae.push(e.props.children)}else(t=I(ae,e.props.value))&&Me&&(Se=e.props.children);return t&&!0,o.cloneElement(e,{"aria-selected":t?"true":"false",onClick:Te(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));Me&&(Ze=D?0===Ae.length?null:Ae.reduce((function(e,t,n){return e.push(t),n-1:!n.documentElement.contains(e.target)||v.current.contains(e.target))||!r&&t||i(e))})),w=function(e){return function(n){y.current=!0;var r=t.props[e];r&&r(n)}},_={ref:x};return!1!==c&&(_[c]=w(c)),s.useEffect((function(){if(!1!==c){var e=h(c),t=(0,f.Z)(v.current),n=function(){m.current=!0};return t.addEventListener(e,b),t.addEventListener("touchmove",n),function(){t.removeEventListener(e,b),t.removeEventListener("touchmove",n)}}}),[b,c]),!1!==o&&(_[o]=w(o)),s.useEffect((function(){if(!1!==o){var e=h(o),t=(0,f.Z)(v.current);return t.addEventListener(e,b),function(){t.removeEventListener(e,b)}}}),[b,o]),(0,p.jsx)(s.Fragment,{children:s.cloneElement(t,_)})},v=n(47630),g=n(13967),y=n(93736),x=n(89683),b=n(14036),w=n(13208),_=n(12065),Z=n(10703),S=n(95159),j=n(30208);function E(e){return(0,S.Z)("MuiSnackbarContent",e)}(0,j.Z)("MuiSnackbarContent",["root","message","action"]);var T=["action","className","message","role"],C=(0,v.ZP)(Z.Z,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n="light"===t.palette.mode?.8:.98,r=(0,_._4)(t.palette.background.default,n);return(0,i.Z)({},t.typography.body2,(0,a.Z)({color:t.palette.getContrastText(r),backgroundColor:r,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:t.shape.borderRadius,flexGrow:1},t.breakpoints.up("sm"),{flexGrow:"initial",minWidth:288}))})),A=(0,v.ZP)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:function(e,t){return t.message}})({padding:"8px 0"}),M=(0,v.ZP)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:function(e,t){return t.action}})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),P=s.forwardRef((function(e,t){var n=(0,y.Z)({props:e,name:"MuiSnackbarContent"}),r=n.action,a=n.className,s=n.message,u=n.role,d=void 0===u?"alert":u,f=(0,o.Z)(n,T),h=n,m=function(e){var t=e.classes;return(0,c.Z)({root:["root"],action:["action"],message:["message"]},E,t)}(h);return(0,p.jsxs)(C,(0,i.Z)({role:d,square:!0,elevation:6,className:(0,l.Z)(m.root,a),ownerState:h,ref:t},f,{children:[(0,p.jsx)(A,{className:m.message,ownerState:h,children:s}),r?(0,p.jsx)(M,{className:m.action,ownerState:h,children:r}):null]}))}));function k(e){return(0,S.Z)("MuiSnackbar",e)}(0,j.Z)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var O=["onEnter","onExited"],R=["action","anchorOrigin","autoHideDuration","children","className","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","message","onBlur","onClose","onFocus","onMouseEnter","onMouseLeave","open","resumeHideDuration","TransitionComponent","transitionDuration","TransitionProps"],N=(0,v.ZP)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["anchorOrigin".concat((0,b.Z)(n.anchorOrigin.vertical)).concat((0,b.Z)(n.anchorOrigin.horizontal))]]}})((function(e){var t=e.theme,n=e.ownerState,r=(0,i.Z)({},!n.isRtl&&{left:"50%",right:"auto",transform:"translateX(-50%)"},n.isRtl&&{right:"50%",left:"auto",transform:"translateX(50%)"});return(0,i.Z)({zIndex:t.zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center"},"top"===n.anchorOrigin.vertical?{top:8}:{bottom:8},"left"===n.anchorOrigin.horizontal&&{justifyContent:"flex-start"},"right"===n.anchorOrigin.horizontal&&{justifyContent:"flex-end"},(0,a.Z)({},t.breakpoints.up("sm"),(0,i.Z)({},"top"===n.anchorOrigin.vertical?{top:24}:{bottom:24},"center"===n.anchorOrigin.horizontal&&r,"left"===n.anchorOrigin.horizontal&&(0,i.Z)({},!n.isRtl&&{left:24,right:"auto"},n.isRtl&&{right:24,left:"auto"}),"right"===n.anchorOrigin.horizontal&&(0,i.Z)({},!n.isRtl&&{right:24,left:"auto"},n.isRtl&&{left:24,right:"auto"}))))})),z=s.forwardRef((function(e,t){var n=(0,y.Z)({props:e,name:"MuiSnackbar"}),a=(0,g.Z)(),u={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},d=n.action,f=n.anchorOrigin,h=(f=void 0===f?{vertical:"bottom",horizontal:"left"}:f).vertical,v=f.horizontal,_=n.autoHideDuration,Z=void 0===_?null:_,S=n.children,j=n.className,E=n.ClickAwayListenerProps,T=n.ContentProps,C=n.disableWindowBlurListener,A=void 0!==C&&C,M=n.message,z=n.onBlur,I=n.onClose,L=n.onFocus,D=n.onMouseEnter,B=n.onMouseLeave,H=n.open,F=n.resumeHideDuration,U=n.TransitionComponent,V=void 0===U?w.Z:U,G=n.transitionDuration,W=void 0===G?u:G,q=n.TransitionProps,K=(q=void 0===q?{}:q).onEnter,$=q.onExited,Y=(0,o.Z)(n.TransitionProps,O),Q=(0,o.Z)(n,R),J="rtl"===a.direction,X=(0,i.Z)({},n,{anchorOrigin:{vertical:h,horizontal:v},isRtl:J}),ee=function(e){var t=e.classes,n=e.anchorOrigin,r={root:["root","anchorOrigin".concat((0,b.Z)(n.vertical)).concat((0,b.Z)(n.horizontal))]};return(0,c.Z)(r,k,t)}(X),te=s.useRef(),ne=s.useState(!0),re=(0,r.Z)(ne,2),ae=re[0],oe=re[1],ie=(0,x.Z)((function(){I&&I.apply(void 0,arguments)})),se=(0,x.Z)((function(e){I&&null!=e&&(clearTimeout(te.current),te.current=setTimeout((function(){ie(null,"timeout")}),e))}));s.useEffect((function(){return H&&se(Z),function(){clearTimeout(te.current)}}),[H,Z,se]);var le=function(){clearTimeout(te.current)},ce=s.useCallback((function(){null!=Z&&se(null!=F?F:.5*Z)}),[Z,F,se]);return s.useEffect((function(){if(!A&&H)return window.addEventListener("focus",ce),window.addEventListener("blur",le),function(){window.removeEventListener("focus",ce),window.removeEventListener("blur",le)}}),[A,ce,H]),s.useEffect((function(){if(H)return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)};function e(e){e.defaultPrevented||"Escape"!==e.key&&"Esc"!==e.key||I&&I(e,"escapeKeyDown")}}),[ae,H,I]),!H&&ae?null:(0,p.jsx)(m,(0,i.Z)({onClickAway:function(e){I&&I(e,"clickaway")}},E,{children:(0,p.jsx)(N,(0,i.Z)({className:(0,l.Z)(ee.root,j),onBlur:function(e){z&&z(e),ce()},onFocus:function(e){L&&L(e),le()},onMouseEnter:function(e){D&&D(e),le()},onMouseLeave:function(e){B&&B(e),ce()},ownerState:X,ref:t,role:"presentation"},Q,{children:(0,p.jsx)(V,(0,i.Z)({appear:!0,in:H,timeout:W,direction:"top"===h?"down":"up",onEnter:function(e,t){oe(!1),K&&K(e,t)},onExited:function(e){oe(!0),$&&$(e)}},Y,{children:S||(0,p.jsx)(P,(0,i.Z)({message:M,action:d},T))}))}))}))})),I=z},27391:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(87462),a=n(63366),o=n(72791),i=n(28182),s=n(90767),l=n(96248),c=n(47630),u=n(93736),d=n(4110),f=n(86596),p=n(77196),h=n(30829),m=n(68096),v=n(4942),g=n(76147),y=n(52930),x=n(14036),b=n(95159),w=n(30208);function _(e){return(0,b.Z)("MuiFormHelperText",e)}var Z,S=(0,w.Z)("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),j=n(80184),E=["children","className","component","disabled","error","filled","focused","margin","required","variant"],T=(0,c.ZP)("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.size&&t["size".concat((0,x.Z)(n.size))],n.contained&&t.contained,n.filled&&t.filled]}})((function(e){var t,n=e.theme,a=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},n.typography.caption,(t={textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0},(0,v.Z)(t,"&.".concat(S.disabled),{color:n.palette.text.disabled}),(0,v.Z)(t,"&.".concat(S.error),{color:n.palette.error.main}),t),"small"===a.size&&{marginTop:4},a.contained&&{marginLeft:14,marginRight:14})})),C=o.forwardRef((function(e,t){var n=(0,u.Z)({props:e,name:"MuiFormHelperText"}),o=n.children,l=n.className,c=n.component,d=void 0===c?"p":c,f=(0,a.Z)(n,E),p=(0,y.Z)(),h=(0,g.Z)({props:n,muiFormControl:p,states:["variant","size","disabled","error","filled","focused","required"]}),m=(0,r.Z)({},n,{component:d,contained:"filled"===h.variant||"outlined"===h.variant,variant:h.variant,size:h.size,disabled:h.disabled,error:h.error,filled:h.filled,focused:h.focused,required:h.required}),v=function(e){var t=e.classes,n=e.contained,r=e.size,a=e.disabled,o=e.error,i=e.filled,l=e.focused,c=e.required,u={root:["root",a&&"disabled",o&&"error",r&&"size".concat((0,x.Z)(r)),n&&"contained",l&&"focused",i&&"filled",c&&"required"]};return(0,s.Z)(u,_,t)}(m);return(0,j.jsx)(T,(0,r.Z)({as:d,ownerState:m,className:(0,i.Z)(v.root,l),ref:t},f,{children:" "===o?Z||(Z=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):o}))})),A=n(58406);function M(e){return(0,b.Z)("MuiTextField",e)}(0,w.Z)("MuiTextField",["root"]);var P=["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"],k={standard:d.Z,filled:f.Z,outlined:p.Z},O=(0,c.ZP)(m.Z,{name:"MuiTextField",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),R=o.forwardRef((function(e,t){var n=(0,u.Z)({props:e,name:"MuiTextField"}),o=n.autoComplete,c=n.autoFocus,d=void 0!==c&&c,f=n.children,p=n.className,m=n.color,v=void 0===m?"primary":m,g=n.defaultValue,y=n.disabled,x=void 0!==y&&y,b=n.error,w=void 0!==b&&b,_=n.FormHelperTextProps,Z=n.fullWidth,S=void 0!==Z&&Z,E=n.helperText,T=n.id,R=n.InputLabelProps,N=n.inputProps,z=n.InputProps,I=n.inputRef,L=n.label,D=n.maxRows,B=n.minRows,H=n.multiline,F=void 0!==H&&H,U=n.name,V=n.onBlur,G=n.onChange,W=n.onFocus,q=n.placeholder,K=n.required,$=void 0!==K&&K,Y=n.rows,Q=n.select,J=void 0!==Q&&Q,X=n.SelectProps,ee=n.type,te=n.value,ne=n.variant,re=void 0===ne?"outlined":ne,ae=(0,a.Z)(n,P),oe=(0,r.Z)({},n,{autoFocus:d,color:v,disabled:x,error:w,fullWidth:S,multiline:F,required:$,select:J,variant:re}),ie=function(e){var t=e.classes;return(0,s.Z)({root:["root"]},M,t)}(oe);var se={};"outlined"===re&&(R&&"undefined"!==typeof R.shrink&&(se.notched=R.shrink),se.label=L),J&&(X&&X.native||(se.id=void 0),se["aria-describedby"]=void 0);var le=(0,l.Z)(T),ce=E&&le?"".concat(le,"-helper-text"):void 0,ue=L&&le?"".concat(le,"-label"):void 0,de=k[re],fe=(0,j.jsx)(de,(0,r.Z)({"aria-describedby":ce,autoComplete:o,autoFocus:d,defaultValue:g,fullWidth:S,multiline:F,name:U,rows:Y,maxRows:D,minRows:B,type:ee,value:te,id:le,inputRef:I,onBlur:V,onChange:G,onFocus:W,placeholder:q,inputProps:N},se,z));return(0,j.jsxs)(O,(0,r.Z)({className:(0,i.Z)(ie.root,p),disabled:x,error:w,fullWidth:S,ref:t,required:$,color:v,variant:re,ownerState:oe},ae,{children:[null!=L&&""!==L&&(0,j.jsx)(h.Z,(0,r.Z)({htmlFor:le,id:ue},R,{children:L})),J?(0,j.jsx)(A.Z,(0,r.Z)({"aria-describedby":ce,id:le,labelId:ue,value:te,input:fe},X,{children:f})):fe,E&&(0,j.jsx)(C,(0,r.Z)({id:ce},_,{children:E}))]}))}))},20068:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(29439),a=n(4942),o=n(63366),i=n(87462),s=n(72791),l=n(28182),c=n(90767),u=n(90183),d=n(12065),f=n(47630),p=n(13967),h=n(93736),m=n(14036),v=n(13208),g=n(95892),y=n(89683),x=n(42071),b=n(67384),w=n(23031),_=n(98278),Z=n(95159);function S(e){return(0,Z.Z)("MuiTooltip",e)}var j=(0,n(30208).Z)("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]),E=n(80184),T=["arrow","children","classes","components","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractive","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","title","TransitionComponent","TransitionProps"];var C=(0,f.ZP)(g.Z,{name:"MuiTooltip",slot:"Popper",overridesResolver:function(e,t){var n=e.ownerState;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})((function(e){var t,n=e.theme,r=e.ownerState,o=e.open;return(0,i.Z)({zIndex:n.zIndex.tooltip,pointerEvents:"none"},!r.disableInteractive&&{pointerEvents:"auto"},!o&&{pointerEvents:"none"},r.arrow&&(t={},(0,a.Z)(t,'&[data-popper-placement*="bottom"] .'.concat(j.arrow),{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}}),(0,a.Z)(t,'&[data-popper-placement*="top"] .'.concat(j.arrow),{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}}),(0,a.Z)(t,'&[data-popper-placement*="right"] .'.concat(j.arrow),(0,i.Z)({},r.isRtl?{right:0,marginRight:"-0.71em"}:{left:0,marginLeft:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}})),(0,a.Z)(t,'&[data-popper-placement*="left"] .'.concat(j.arrow),(0,i.Z)({},r.isRtl?{left:0,marginLeft:"-0.71em"}:{right:0,marginRight:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}})),t))})),A=(0,f.ZP)("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:function(e,t){var n=e.ownerState;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t["tooltipPlacement".concat((0,m.Z)(n.placement.split("-")[0]))]]}})((function(e){var t,n,r=e.theme,o=e.ownerState;return(0,i.Z)({backgroundColor:(0,d.Fq)(r.palette.grey[700],.92),borderRadius:r.shape.borderRadius,color:r.palette.common.white,fontFamily:r.typography.fontFamily,padding:"4px 8px",fontSize:r.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:r.typography.fontWeightMedium},o.arrow&&{position:"relative",margin:0},o.touch&&{padding:"8px 16px",fontSize:r.typography.pxToRem(14),lineHeight:"".concat((n=16/14,Math.round(1e5*n)/1e5),"em"),fontWeight:r.typography.fontWeightRegular},(t={},(0,a.Z)(t,".".concat(j.popper,'[data-popper-placement*="left"] &'),(0,i.Z)({transformOrigin:"right center"},o.isRtl?(0,i.Z)({marginLeft:"14px"},o.touch&&{marginLeft:"24px"}):(0,i.Z)({marginRight:"14px"},o.touch&&{marginRight:"24px"}))),(0,a.Z)(t,".".concat(j.popper,'[data-popper-placement*="right"] &'),(0,i.Z)({transformOrigin:"left center"},o.isRtl?(0,i.Z)({marginRight:"14px"},o.touch&&{marginRight:"24px"}):(0,i.Z)({marginLeft:"14px"},o.touch&&{marginLeft:"24px"}))),(0,a.Z)(t,".".concat(j.popper,'[data-popper-placement*="top"] &'),(0,i.Z)({transformOrigin:"center bottom",marginBottom:"14px"},o.touch&&{marginBottom:"24px"})),(0,a.Z)(t,".".concat(j.popper,'[data-popper-placement*="bottom"] &'),(0,i.Z)({transformOrigin:"center top",marginTop:"14px"},o.touch&&{marginTop:"24px"})),t))})),M=(0,f.ZP)("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:function(e,t){return t.arrow}})((function(e){var t=e.theme;return{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:(0,d.Fq)(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}})),P=!1,k=null;function O(e,t){return function(n){t&&t(n),e(n)}}var R=s.forwardRef((function(e,t){var n,a,d,f,Z,j,R=(0,h.Z)({props:e,name:"MuiTooltip"}),N=R.arrow,z=void 0!==N&&N,I=R.children,L=R.components,D=void 0===L?{}:L,B=R.componentsProps,H=void 0===B?{}:B,F=R.describeChild,U=void 0!==F&&F,V=R.disableFocusListener,G=void 0!==V&&V,W=R.disableHoverListener,q=void 0!==W&&W,K=R.disableInteractive,$=void 0!==K&&K,Y=R.disableTouchListener,Q=void 0!==Y&&Y,J=R.enterDelay,X=void 0===J?100:J,ee=R.enterNextDelay,te=void 0===ee?0:ee,ne=R.enterTouchDelay,re=void 0===ne?700:ne,ae=R.followCursor,oe=void 0!==ae&&ae,ie=R.id,se=R.leaveDelay,le=void 0===se?0:se,ce=R.leaveTouchDelay,ue=void 0===ce?1500:ce,de=R.onClose,fe=R.onOpen,pe=R.open,he=R.placement,me=void 0===he?"bottom":he,ve=R.PopperComponent,ge=R.PopperProps,ye=void 0===ge?{}:ge,xe=R.title,be=R.TransitionComponent,we=void 0===be?v.Z:be,_e=R.TransitionProps,Ze=(0,o.Z)(R,T),Se=(0,p.Z)(),je="rtl"===Se.direction,Ee=s.useState(),Te=(0,r.Z)(Ee,2),Ce=Te[0],Ae=Te[1],Me=s.useState(null),Pe=(0,r.Z)(Me,2),ke=Pe[0],Oe=Pe[1],Re=s.useRef(!1),Ne=$||oe,ze=s.useRef(),Ie=s.useRef(),Le=s.useRef(),De=s.useRef(),Be=(0,_.Z)({controlled:pe,default:!1,name:"Tooltip",state:"open"}),He=(0,r.Z)(Be,2),Fe=He[0],Ue=He[1],Ve=Fe,Ge=(0,b.Z)(ie),We=s.useRef(),qe=s.useCallback((function(){void 0!==We.current&&(document.body.style.WebkitUserSelect=We.current,We.current=void 0),clearTimeout(De.current)}),[]);s.useEffect((function(){return function(){clearTimeout(ze.current),clearTimeout(Ie.current),clearTimeout(Le.current),qe()}}),[qe]);var Ke=function(e){clearTimeout(k),P=!0,Ue(!0),fe&&!Ve&&fe(e)},$e=(0,y.Z)((function(e){clearTimeout(k),k=setTimeout((function(){P=!1}),800+le),Ue(!1),de&&Ve&&de(e),clearTimeout(ze.current),ze.current=setTimeout((function(){Re.current=!1}),Se.transitions.duration.shortest)})),Ye=function(e){Re.current&&"touchstart"!==e.type||(Ce&&Ce.removeAttribute("title"),clearTimeout(Ie.current),clearTimeout(Le.current),X||P&&te?Ie.current=setTimeout((function(){Ke(e)}),P?te:X):Ke(e))},Qe=function(e){clearTimeout(Ie.current),clearTimeout(Le.current),Le.current=setTimeout((function(){$e(e)}),le)},Je=(0,w.Z)(),Xe=Je.isFocusVisibleRef,et=Je.onBlur,tt=Je.onFocus,nt=Je.ref,rt=s.useState(!1),at=(0,r.Z)(rt,2)[1],ot=function(e){et(e),!1===Xe.current&&(at(!1),Qe(e))},it=function(e){Ce||Ae(e.currentTarget),tt(e),!0===Xe.current&&(at(!0),Ye(e))},st=function(e){Re.current=!0;var t=I.props;t.onTouchStart&&t.onTouchStart(e)},lt=Ye,ct=Qe;s.useEffect((function(){if(Ve)return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)};function e(e){"Escape"!==e.key&&"Esc"!==e.key||$e(e)}}),[$e,Ve]);var ut=(0,x.Z)(Ae,t),dt=(0,x.Z)(nt,ut),ft=(0,x.Z)(I.ref,dt);""===xe&&(Ve=!1);var pt=s.useRef({x:0,y:0}),ht=s.useRef(),mt={},vt="string"===typeof xe;U?(mt.title=Ve||!vt||q?null:xe,mt["aria-describedby"]=Ve?Ge:null):(mt["aria-label"]=vt?xe:null,mt["aria-labelledby"]=Ve&&!vt?Ge:null);var gt=(0,i.Z)({},mt,Ze,I.props,{className:(0,l.Z)(Ze.className,I.props.className),onTouchStart:st,ref:ft},oe?{onMouseMove:function(e){var t=I.props;t.onMouseMove&&t.onMouseMove(e),pt.current={x:e.clientX,y:e.clientY},ht.current&&ht.current.update()}}:{});var yt={};Q||(gt.onTouchStart=function(e){st(e),clearTimeout(Le.current),clearTimeout(ze.current),qe(),We.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",De.current=setTimeout((function(){document.body.style.WebkitUserSelect=We.current,Ye(e)}),re)},gt.onTouchEnd=function(e){I.props.onTouchEnd&&I.props.onTouchEnd(e),qe(),clearTimeout(Le.current),Le.current=setTimeout((function(){$e(e)}),ue)}),q||(gt.onMouseOver=O(lt,gt.onMouseOver),gt.onMouseLeave=O(ct,gt.onMouseLeave),Ne||(yt.onMouseOver=lt,yt.onMouseLeave=ct)),G||(gt.onFocus=O(it,gt.onFocus),gt.onBlur=O(ot,gt.onBlur),Ne||(yt.onFocus=it,yt.onBlur=ot));var xt=s.useMemo((function(){var e,t=[{name:"arrow",enabled:Boolean(ke),options:{element:ke,padding:4}}];return null!=(e=ye.popperOptions)&&e.modifiers&&(t=t.concat(ye.popperOptions.modifiers)),(0,i.Z)({},ye.popperOptions,{modifiers:t})}),[ke,ye]),bt=(0,i.Z)({},R,{isRtl:je,arrow:z,disableInteractive:Ne,placement:me,PopperComponentProp:ve,touch:Re.current}),wt=function(e){var t=e.classes,n=e.disableInteractive,r=e.arrow,a=e.touch,o=e.placement,i={popper:["popper",!n&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",a&&"touch","tooltipPlacement".concat((0,m.Z)(o.split("-")[0]))],arrow:["arrow"]};return(0,c.Z)(i,S,t)}(bt),_t=null!=(n=D.Popper)?n:C,Zt=null!=(a=null!=(d=D.Transition)?d:we)?a:v.Z,St=null!=(f=D.Tooltip)?f:A,jt=null!=(Z=D.Arrow)?Z:M,Et=(0,u.Z)(_t,(0,i.Z)({},ye,H.popper),bt),Tt=(0,u.Z)(Zt,(0,i.Z)({},_e,H.transition),bt),Ct=(0,u.Z)(St,(0,i.Z)({},H.tooltip),bt),At=(0,u.Z)(jt,(0,i.Z)({},H.arrow),bt);return(0,E.jsxs)(s.Fragment,{children:[s.cloneElement(I,gt),(0,E.jsx)(_t,(0,i.Z)({as:null!=ve?ve:g.Z,placement:me,anchorEl:oe?{getBoundingClientRect:function(){return{top:pt.current.y,left:pt.current.x,right:pt.current.x,bottom:pt.current.y,width:0,height:0}}}:Ce,popperRef:ht,open:!!Ce&&Ve,id:Ge,transition:!0},yt,Et,{className:(0,l.Z)(wt.popper,null==ye?void 0:ye.className,null==(j=H.popper)?void 0:j.className),popperOptions:xt,children:function(e){var t,n,r=e.TransitionProps;return(0,E.jsx)(Zt,(0,i.Z)({timeout:Se.transitions.duration.shorter},r,Tt,{children:(0,E.jsxs)(St,(0,i.Z)({},Ct,{className:(0,l.Z)(wt.tooltip,null==(t=H.tooltip)?void 0:t.className),children:[xe,z?(0,E.jsx)(jt,(0,i.Z)({},At,{className:(0,l.Z)(wt.arrow,null==(n=H.arrow)?void 0:n.className),ref:Oe})):null]}))}))}}))]})}))},20890:function(e,t,n){"use strict";n.d(t,{Z:function(){return x}});var r=n(63366),a=n(87462),o=n(72791),i=n(28182),s=n(78519),l=n(90767),c=n(47630),u=n(93736),d=n(14036),f=n(95159);function p(e){return(0,f.Z)("MuiTypography",e)}(0,n(30208).Z)("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);var h=n(80184),m=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],v=(0,c.ZP)("span",{name:"MuiTypography",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.variant&&t[n.variant],"inherit"!==n.align&&t["align".concat((0,d.Z)(n.align))],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})((function(e){var t=e.theme,n=e.ownerState;return(0,a.Z)({margin:0},n.variant&&t.typography[n.variant],"inherit"!==n.align&&{textAlign:n.align},n.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},n.gutterBottom&&{marginBottom:"0.35em"},n.paragraph&&{marginBottom:16})})),g={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},y={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},x=o.forwardRef((function(e,t){var n=(0,u.Z)({props:e,name:"MuiTypography"}),o=function(e){return y[e]||e}(n.color),c=(0,s.Z)((0,a.Z)({},n,{color:o})),f=c.align,x=void 0===f?"inherit":f,b=c.className,w=c.component,_=c.gutterBottom,Z=void 0!==_&&_,S=c.noWrap,j=void 0!==S&&S,E=c.paragraph,T=void 0!==E&&E,C=c.variant,A=void 0===C?"body1":C,M=c.variantMapping,P=void 0===M?g:M,k=(0,r.Z)(c,m),O=(0,a.Z)({},c,{align:x,color:o,className:b,component:w,gutterBottom:Z,noWrap:j,paragraph:T,variant:A,variantMapping:P}),R=w||(T?"p":P[A]||g[A])||"span",N=function(e){var t=e.align,n=e.gutterBottom,r=e.noWrap,a=e.paragraph,o=e.variant,i=e.classes,s={root:["root",o,"inherit"!==e.align&&"align".concat((0,d.Z)(t)),n&&"gutterBottom",r&&"noWrap",a&&"paragraph"]};return(0,l.Z)(s,p,i)}(O);return(0,h.jsx)(v,(0,a.Z)({as:R,ref:t,ownerState:O,className:(0,i.Z)(N.root,b)},k))}))},82460:function(e,t){"use strict";t.Z={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"}},97278:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(29439),a=n(63366),o=n(87462),i=n(72791),s=n(28182),l=n(90767),c=n(14036),u=n(47630),d=n(98278),f=n(52930),p=n(95080),h=n(95159);function m(e){return(0,h.Z)("PrivateSwitchBase",e)}(0,n(30208).Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);var v=n(80184),g=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],y=(0,u.ZP)(p.Z)((function(e){var t=e.ownerState;return(0,o.Z)({padding:9,borderRadius:"50%"},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12})})),x=(0,u.ZP)("input")({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),b=i.forwardRef((function(e,t){var n=e.autoFocus,i=e.checked,u=e.checkedIcon,p=e.className,h=e.defaultChecked,b=e.disabled,w=e.disableFocusRipple,_=void 0!==w&&w,Z=e.edge,S=void 0!==Z&&Z,j=e.icon,E=e.id,T=e.inputProps,C=e.inputRef,A=e.name,M=e.onBlur,P=e.onChange,k=e.onFocus,O=e.readOnly,R=e.required,N=e.tabIndex,z=e.type,I=e.value,L=(0,a.Z)(e,g),D=(0,d.Z)({controlled:i,default:Boolean(h),name:"SwitchBase",state:"checked"}),B=(0,r.Z)(D,2),H=B[0],F=B[1],U=(0,f.Z)(),V=b;U&&"undefined"===typeof V&&(V=U.disabled);var G="checkbox"===z||"radio"===z,W=(0,o.Z)({},e,{checked:H,disabled:V,disableFocusRipple:_,edge:S}),q=function(e){var t=e.classes,n=e.checked,r=e.disabled,a=e.edge,o={root:["root",n&&"checked",r&&"disabled",a&&"edge".concat((0,c.Z)(a))],input:["input"]};return(0,l.Z)(o,m,t)}(W);return(0,v.jsxs)(y,(0,o.Z)({component:"span",className:(0,s.Z)(q.root,p),centerRipple:!0,focusRipple:!_,disabled:V,tabIndex:null,role:void 0,onFocus:function(e){k&&k(e),U&&U.onFocus&&U.onFocus(e)},onBlur:function(e){M&&M(e),U&&U.onBlur&&U.onBlur(e)},ownerState:W,ref:t},L,{children:[(0,v.jsx)(x,(0,o.Z)({autoFocus:n,checked:i,defaultChecked:h,className:q.input,disabled:V,id:G&&E,name:A,onChange:function(e){if(!e.nativeEvent.defaultPrevented){var t=e.target.checked;F(t),P&&P(e,t)}},readOnly:O,ref:C,required:R,ownerState:W,tabIndex:N,type:z},"checkbox"===z&&void 0===I?{}:{value:I},T)),H?u:j]}))}))},89059:function(e,t,n){"use strict";n(72791);var r=n(76189),a=n(80184);t.Z=(0,r.Z)((0,a.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown")},83625:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(87462),a=n(63366),o=n(82466),i=n(85080),s=n(4942);function l(e,t,n){var a;return(0,r.Z)({toolbar:(a={minHeight:56},(0,s.Z)(a,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,s.Z)(a,e.up("sm"),{minHeight:64}),a)},n)}var c=n(46189),u=n(12065),d={black:"#000",white:"#fff"},f={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},p={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},h=n(82460),m={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},v={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},g={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},y={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},x=["mode","contrastThreshold","tonalOffset"],b={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:d.white,default:d.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},w={text:{primary:d.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:d.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function _(e,t,n,r){var a=r.light||r,o=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,u.$n)(e.main,a):"dark"===t&&(e.dark=(0,u._j)(e.main,o)))}function Z(e){var t=e.mode,n=void 0===t?"light":t,i=e.contrastThreshold,s=void 0===i?3:i,l=e.tonalOffset,Z=void 0===l?.2:l,S=(0,a.Z)(e,x),j=e.primary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:v[200],light:v[50],dark:v[400]}:{main:v[700],light:v[400],dark:v[800]}}(n),E=e.secondary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:p[200],light:p[50],dark:p[400]}:{main:p[500],light:p[300],dark:p[700]}}(n),T=e.error||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:h.Z[500],light:h.Z[300],dark:h.Z[700]}:{main:h.Z[700],light:h.Z[400],dark:h.Z[800]}}(n),C=e.info||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:g[400],light:g[300],dark:g[700]}:{main:g[700],light:g[500],dark:g[900]}}(n),A=e.success||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:y[400],light:y[300],dark:y[700]}:{main:y[800],light:y[500],dark:y[900]}}(n),M=e.warning||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:m[400],light:m[300],dark:m[700]}:{main:"#ed6c02",light:m[500],dark:m[900]}}(n);function P(e){return(0,u.mi)(e,w.text.primary)>=s?w.text.primary:b.text.primary}var k=function(e){var t=e.color,n=e.name,a=e.mainShade,o=void 0===a?500:a,i=e.lightShade,s=void 0===i?300:i,l=e.darkShade,u=void 0===l?700:l;if(!(t=(0,r.Z)({},t)).main&&t[o]&&(t.main=t[o]),!t.hasOwnProperty("main"))throw new Error((0,c.Z)(11,n?" (".concat(n,")"):"",o));if("string"!==typeof t.main)throw new Error((0,c.Z)(12,n?" (".concat(n,")"):"",JSON.stringify(t.main)));return _(t,"light",s,Z),_(t,"dark",u,Z),t.contrastText||(t.contrastText=P(t.main)),t},O={dark:w,light:b};return(0,o.Z)((0,r.Z)({common:d,mode:n,primary:k({color:j,name:"primary"}),secondary:k({color:E,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:k({color:T,name:"error"}),warning:k({color:M,name:"warning"}),info:k({color:C,name:"info"}),success:k({color:A,name:"success"}),grey:f,contrastThreshold:s,getContrastText:P,augmentColor:k,tonalOffset:Z},O[n]),S)}var S=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];var j={textTransform:"uppercase"},E='"Roboto", "Helvetica", "Arial", sans-serif';function T(e,t){var n="function"===typeof t?t(e):t,i=n.fontFamily,s=void 0===i?E:i,l=n.fontSize,c=void 0===l?14:l,u=n.fontWeightLight,d=void 0===u?300:u,f=n.fontWeightRegular,p=void 0===f?400:f,h=n.fontWeightMedium,m=void 0===h?500:h,v=n.fontWeightBold,g=void 0===v?700:v,y=n.htmlFontSize,x=void 0===y?16:y,b=n.allVariants,w=n.pxToRem,_=(0,a.Z)(n,S);var Z=c/14,T=w||function(e){return"".concat(e/x*Z,"rem")},C=function(e,t,n,a,o){return(0,r.Z)({fontFamily:s,fontWeight:e,fontSize:T(t),lineHeight:n},s===E?{letterSpacing:"".concat((i=a/t,Math.round(1e5*i)/1e5),"em")}:{},o,b);var i},A={h1:C(d,96,1.167,-1.5),h2:C(d,60,1.2,-.5),h3:C(p,48,1.167,0),h4:C(p,34,1.235,.25),h5:C(p,24,1.334,0),h6:C(m,20,1.6,.15),subtitle1:C(p,16,1.75,.15),subtitle2:C(m,14,1.57,.1),body1:C(p,16,1.5,.15),body2:C(p,14,1.43,.15),button:C(m,14,1.75,.4,j),caption:C(p,12,1.66,.4),overline:C(p,12,2.66,1,j)};return(0,o.Z)((0,r.Z)({htmlFontSize:x,pxToRem:T,fontFamily:s,fontSize:c,fontWeightLight:d,fontWeightRegular:p,fontWeightMedium:m,fontWeightBold:g},A),_,{clone:!1})}function C(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var A=["none",C(0,2,1,-1,0,1,1,0,0,1,3,0),C(0,3,1,-2,0,2,2,0,0,1,5,0),C(0,3,3,-2,0,3,4,0,0,1,8,0),C(0,2,4,-1,0,4,5,0,0,1,10,0),C(0,3,5,-1,0,5,8,0,0,1,14,0),C(0,3,5,-1,0,6,10,0,0,1,18,0),C(0,4,5,-2,0,7,10,1,0,2,16,1),C(0,5,5,-3,0,8,10,1,0,3,14,2),C(0,5,6,-3,0,9,12,1,0,3,16,2),C(0,6,6,-3,0,10,14,1,0,4,18,3),C(0,6,7,-4,0,11,15,1,0,4,20,3),C(0,7,8,-4,0,12,17,2,0,5,22,4),C(0,7,8,-4,0,13,19,2,0,5,24,4),C(0,7,9,-4,0,14,21,2,0,5,26,4),C(0,8,9,-5,0,15,22,2,0,6,28,5),C(0,8,10,-5,0,16,24,2,0,6,30,5),C(0,8,11,-5,0,17,26,2,0,6,32,5),C(0,9,11,-5,0,18,28,2,0,7,34,6),C(0,9,12,-6,0,19,29,2,0,7,36,6),C(0,10,13,-6,0,20,31,3,0,8,38,7),C(0,10,13,-6,0,21,33,3,0,8,40,7),C(0,10,14,-6,0,22,35,3,0,8,42,7),C(0,11,14,-7,0,23,36,3,0,9,44,8),C(0,11,15,-7,0,24,38,3,0,9,46,8)],M=n(81314),P={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},k=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.mixins,n=void 0===t?{}:t,s=e.palette,c=void 0===s?{}:s,u=e.transitions,d=void 0===u?{}:u,f=e.typography,p=void 0===f?{}:f,h=(0,a.Z)(e,k),m=Z(c),v=(0,i.Z)(e),g=(0,o.Z)(v,{mixins:l(v.breakpoints,v.spacing,n),palette:m,shadows:A.slice(),typography:T(m,p),transitions:(0,M.ZP)(d),zIndex:(0,r.Z)({},P)});g=(0,o.Z)(g,h);for(var y=arguments.length,x=new Array(y>1?y-1:0),b=1;b0&&void 0!==arguments[0]?arguments[0]:["all"],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=a.duration,s=void 0===i?n.standard:i,c=a.easing,u=void 0===c?t.easeInOut:c,d=a.delay,f=void 0===d?0:d;(0,r.Z)(a,o);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof s?s:l(s)," ").concat(u," ").concat("string"===typeof f?f:l(f))})).join(",")}},e,{easing:t,duration:n})}},36482:function(e,t,n){"use strict";var r=(0,n(83625).Z)();t.Z=r},47630:function(e,t,n){"use strict";n.d(t,{ZP:function(){return T},FO:function(){return S},Dz:function(){return j}});var r=n(93433),a=n(29439),o=n(87462),i=n(63366),s=n(80594),l=n(85080),c=n(27312),u=["variant"];function d(e){return 0===e.length}function f(e){var t=e.variant,n=(0,i.Z)(e,u),r=t||"";return Object.keys(n).sort().forEach((function(t){r+="color"===t?d(r)?e[t]:(0,c.Z)(e[t]):"".concat(d(r)?t:(0,c.Z)(t)).concat((0,c.Z)(e[t].toString()))})),r}var p=n(60104),h=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],m=["theme"],v=["theme"];function g(e){return 0===Object.keys(e).length}var y=function(e,t){return t.components&&t.components[e]&&t.components[e].styleOverrides?t.components[e].styleOverrides:null},x=function(e,t){var n=[];t&&t.components&&t.components[e]&&t.components[e].variants&&(n=t.components[e].variants);var r={};return n.forEach((function(e){var t=f(e.props);r[t]=e.style})),r},b=function(e,t,n,r){var a,o,i=e.ownerState,s=void 0===i?{}:i,l=[],c=null==n||null==(a=n.components)||null==(o=a[r])?void 0:o.variants;return c&&c.forEach((function(n){var r=!0;Object.keys(n.props).forEach((function(t){s[t]!==n.props[t]&&e[t]!==n.props[t]&&(r=!1)})),r&&l.push(t[f(n.props)])})),l};function w(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}var _=(0,l.Z)();var Z=n(36482),S=function(e){return w(e)&&"classes"!==e},j=w,E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.defaultTheme,n=void 0===t?_:t,l=e.rootShouldForwardProp,c=void 0===l?w:l,u=e.slotShouldForwardProp,d=void 0===u?w:u,f=e.styleFunctionSx,Z=void 0===f?p.Z:f;return function(e){var t,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=l.name,f=l.slot,p=l.skipVariantsResolver,_=l.skipSx,S=l.overridesResolver,j=(0,i.Z)(l,h),E=void 0!==p?p:f&&"Root"!==f||!1,T=_||!1;var C=w;"Root"===f?C=c:f&&(C=d);var A=(0,s.ZP)(e,(0,o.Z)({shouldForwardProp:C,label:t},j)),M=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),l=1;l0){var p=new Array(f).fill("");(d=[].concat((0,r.Z)(e),(0,r.Z)(p))).raw=[].concat((0,r.Z)(e.raw),(0,r.Z)(p))}else"function"===typeof e&&e.__emotion_real!==e&&(d=function(t){var r=t.theme,a=(0,i.Z)(t,v);return e((0,o.Z)({theme:g(r)?n:r},a))});var h=A.apply(void 0,[d].concat((0,r.Z)(c)));return h};return A.withConfig&&(M.withConfig=A.withConfig),M}}({defaultTheme:Z.Z,rootShouldForwardProp:S}),T=E},13967:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});n(72791);var r=n(30418),a=n(36482);function o(){return(0,r.Z)(a.Z)}},93736:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(33073),a=n(30418);var o=n(36482);function i(e){return function(e){var t=e.props,n=e.name,o=e.defaultTheme,i=(0,a.Z)(o);return(0,r.Z)({theme:i,name:n,props:t})}({props:e.props,name:e.name,defaultTheme:o.Z})}},4999:function(e,t,n){"use strict";n.d(t,{C:function(){return a},n:function(){return r}});var r=function(e){return e.scrollTop};function a(e,t){var n,r,a=e.timeout,o=e.easing,i=e.style,s=void 0===i?{}:i;return{duration:null!=(n=s.transitionDuration)?n:"number"===typeof a?a:a[t.mode]||0,easing:null!=(r=s.transitionTimingFunction)?r:"object"===typeof o?o[t.mode]:o,delay:s.transitionDelay}}},14036:function(e,t,n){"use strict";var r=n(27312);t.Z=r.Z},31260:function(e,t,n){"use strict";var r=n(78949);t.Z=r.Z},76189:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(87462),a=n(72791),o=n(63366),i=n(28182),s=n(90767),l=n(14036),c=n(93736),u=n(47630),d=n(95159);function f(e){return(0,d.Z)("MuiSvgIcon",e)}(0,n(30208).Z)("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var p=n(80184),h=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],m=(0,u.ZP)("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"inherit"!==n.color&&t["color".concat((0,l.Z)(n.color))],t["fontSize".concat((0,l.Z)(n.fontSize))]]}})((function(e){var t,n,r,a,o,i,s,l,c,u,d,f,p,h,m,v,g,y=e.theme,x=e.ownerState;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,transition:null==(t=y.transitions)||null==(n=t.create)?void 0:n.call(t,"fill",{duration:null==(r=y.transitions)||null==(a=r.duration)?void 0:a.shorter}),fontSize:{inherit:"inherit",small:(null==(o=y.typography)||null==(i=o.pxToRem)?void 0:i.call(o,20))||"1.25rem",medium:(null==(s=y.typography)||null==(l=s.pxToRem)?void 0:l.call(s,24))||"1.5rem",large:(null==(c=y.typography)||null==(u=c.pxToRem)?void 0:u.call(c,35))||"2.1875"}[x.fontSize],color:null!=(d=null==(f=y.palette)||null==(p=f[x.color])?void 0:p.main)?d:{action:null==(h=y.palette)||null==(m=h.action)?void 0:m.active,disabled:null==(v=y.palette)||null==(g=v.action)?void 0:g.disabled,inherit:void 0}[x.color]}})),v=a.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiSvgIcon"}),a=n.children,u=n.className,d=n.color,v=void 0===d?"inherit":d,g=n.component,y=void 0===g?"svg":g,x=n.fontSize,b=void 0===x?"medium":x,w=n.htmlColor,_=n.inheritViewBox,Z=void 0!==_&&_,S=n.titleAccess,j=n.viewBox,E=void 0===j?"0 0 24 24":j,T=(0,o.Z)(n,h),C=(0,r.Z)({},n,{color:v,component:y,fontSize:b,instanceFontSize:e.fontSize,inheritViewBox:Z,viewBox:E}),A={};Z||(A.viewBox=E);var M=function(e){var t=e.color,n=e.fontSize,r=e.classes,a={root:["root","inherit"!==t&&"color".concat((0,l.Z)(t)),"fontSize".concat((0,l.Z)(n))]};return(0,s.Z)(a,f,r)}(C);return(0,p.jsxs)(m,(0,r.Z)({as:y,className:(0,i.Z)(M.root,u),ownerState:C,focusable:"false",color:w,"aria-hidden":!S||void 0,role:S?"img":void 0,ref:t},A,T,{children:[a,S?(0,p.jsx)("title",{children:S}):null]}))}));v.muiName="SvgIcon";var g=v;function y(e,t){var n=function(n,a){return(0,p.jsx)(g,(0,r.Z)({"data-testid":"".concat(t,"Icon"),ref:a},n,{children:e}))};return n.muiName=g.muiName,a.memo(a.forwardRef(n))}},83199:function(e,t,n){"use strict";var r=n(93981);t.Z=r.Z},28610:function(e,t,n){"use strict";n.r(t),n.d(t,{capitalize:function(){return a.Z},createChainedFunction:function(){return o.Z},createSvgIcon:function(){return i.Z},debounce:function(){return s.Z},deprecatedPropType:function(){return l},isMuiElement:function(){return c.Z},ownerDocument:function(){return u.Z},ownerWindow:function(){return d.Z},requirePropFactory:function(){return f},setRef:function(){return p},unstable_ClassNameGenerator:function(){return w},unstable_useEnhancedEffect:function(){return h.Z},unstable_useId:function(){return m.Z},unsupportedProp:function(){return v},useControlled:function(){return g.Z},useEventCallback:function(){return y.Z},useForkRef:function(){return x.Z},useIsFocusVisible:function(){return b.Z}});var r=n(57829),a=n(14036),o=n(31260),i=n(76189),s=n(83199);var l=function(e,t){return function(){return null}},c=n(19103),u=n(98301),d=n(17602);n(87462);var f=function(e,t){return function(){return null}},p=n(62971).Z,h=n(40162),m=n(67384);var v=function(e,t,n,r,a){return null},g=n(98278),y=n(89683),x=n(42071),b=n(23031),w={configure:function(e){console.warn(["MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.","","You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead","","The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401","","The updated documentation: https://mui.com/guides/classname-generator/"].join("\n")),r.Z.configure(e)}}},19103:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(72791);var a=function(e,t){return r.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}},98301:function(e,t,n){"use strict";var r=n(99723);t.Z=r.Z},17602:function(e,t,n){"use strict";var r=n(27979);t.Z=r.Z},98278:function(e,t,n){"use strict";var r=n(58959);t.Z=r.Z},40162:function(e,t,n){"use strict";var r=n(75721);t.Z=r.Z},89683:function(e,t,n){"use strict";var r=n(58956);t.Z=r.Z},42071:function(e,t,n){"use strict";var r=n(47563);t.Z=r.Z},67384:function(e,t,n){"use strict";var r=n(96248);t.Z=r.Z},23031:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r,a=n(72791),o=!0,i=!1,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function l(e){e.metaKey||e.altKey||e.ctrlKey||(o=!0)}function c(){o=!1}function u(){"hidden"===this.visibilityState&&i&&(o=!0)}function d(e){var t=e.target;try{return t.matches(":focus-visible")}catch(n){}return o||function(e){var t=e.type,n=e.tagName;return!("INPUT"!==n||!s[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}var f=function(){var e=a.useCallback((function(e){var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",l,!0),t.addEventListener("mousedown",c,!0),t.addEventListener("pointerdown",c,!0),t.addEventListener("touchstart",c,!0),t.addEventListener("visibilitychange",u,!0))}),[]),t=a.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!d(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(i=!0,window.clearTimeout(r),r=window.setTimeout((function(){i=!1}),100),t.current=!1,!0)},ref:e}}},20919:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for;t.Z=n?Symbol.for("mui.nested"):"__THEME_NESTED__"},68023:function(e,t,n){"use strict";var r=n(72791).createContext(null);t.Z=r},29598:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(72791),a=n(68023);function o(){return r.useContext(a.Z)}},80594:function(e,t,n){"use strict";n.d(t,{ZP:function(){return w}});var r=n(72791),a=n.t(r,2),o=n(87462),i=n(93782),s=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,l=(0,i.Z)((function(e){return s.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),c=n(61688),u=n(95438),d=n(51346),f=l,p=function(e){return"theme"!==e},h=function(e){return"string"===typeof e&&e.charCodeAt(0)>96?f:p},m=function(e,t,n){var r;if(t){var a=t.shouldForwardProp;r=e.__emotion_forwardProp&&a?function(t){return e.__emotion_forwardProp(t)&&a(t)}:a}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},v=a.useInsertionEffect?a.useInsertionEffect:function(e){e()};var g=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;(0,u.hC)(t,n,r);!function(e){v(e)}((function(){return(0,u.My)(t,n,r)}));return null},y=function e(t,n){var a,i,s=t.__emotion_real===t,l=s&&t.__emotion_base||t;void 0!==n&&(a=n.label,i=n.target);var f=m(t,n,s),p=f||h(l),v=!p("as");return function(){var y=arguments,x=s&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&x.push("label:"+a+";"),null==y[0]||void 0===y[0].raw)x.push.apply(x,y);else{0,x.push(y[0][0]);for(var b=y.length,w=1;w<+~=|^:(),"'`\s])/g,b="undefined"!==typeof CSS&&CSS.escape,w=function(e){return b?b(e):e.replace(x,"\\$1")},_=function(){function e(e,t,n){this.type="style",this.isProcessed=!1;var r=n.sheet,a=n.Renderer;this.key=e,this.options=n,this.style=t,r?this.renderer=r.renderer:a&&(this.renderer=new a)}return e.prototype.prop=function(e,t,n){if(void 0===t)return this.style[e];var r=!!n&&n.force;if(!r&&this.style[e]===t)return this;var a=t;n&&!1===n.process||(a=this.options.jss.plugins.onChangeValue(t,e,this));var o=null==a||!1===a,i=e in this.style;if(o&&!i&&!r)return this;var s=o&&i;if(s?delete this.style[e]:this.style[e]=a,this.renderable&&this.renderer)return s?this.renderer.removeProperty(this.renderable,e):this.renderer.setProperty(this.renderable,e,a),this;var l=this.options.sheet;return l&&l.attached,this},e}(),Z=function(e){function t(t,n,r){var a;a=e.call(this,t,n,r)||this;var o=r.selector,i=r.scoped,s=r.sheet,l=r.generateId;return o?a.selectorText=o:!1!==i&&(a.id=l((0,u.Z)((0,u.Z)(a)),s),a.selectorText="."+w(a.id)),a}(0,c.Z)(t,e);var n=t.prototype;return n.applyTo=function(e){var t=this.renderer;if(t){var n=this.toJSON();for(var r in n)t.setProperty(e,r,n[r])}return this},n.toJSON=function(){var e={};for(var t in this.style){var n=this.style[t];"object"!==typeof n?e[t]=n:Array.isArray(n)&&(e[t]=m(n))}return e},n.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?(0,a.Z)({},e,{allowEmpty:!0}):e;return y(this.selectorText,this.style,n)},(0,l.Z)(t,[{key:"selector",set:function(e){if(e!==this.selectorText){this.selectorText=e;var t=this.renderer,n=this.renderable;if(n&&t)t.setSelector(n,e)||t.replaceRule(n,this)}},get:function(){return this.selectorText}}]),t}(_),S={onCreateRule:function(e,t,n){return"@"===e[0]||n.parent&&"keyframes"===n.parent.type?null:new Z(e,t,n)}},j={indent:1,children:!0},E=/@([\w-]+)/,T=function(){function e(e,t,n){this.type="conditional",this.isProcessed=!1,this.key=e;var r=e.match(E);for(var o in this.at=r?r[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new Q((0,a.Z)({},n,{parent:this})),t)this.rules.add(o,t[o]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.indexOf=function(e){return this.rules.indexOf(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r?(this.options.jss.plugins.onProcessRule(r),r):null},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.toString=function(e){void 0===e&&(e=j);var t=v(e).linebreak;if(null==e.indent&&(e.indent=j.indent),null==e.children&&(e.children=j.children),!1===e.children)return this.query+" {}";var n=this.rules.toString(e);return n?this.query+" {"+t+n+t+"}":""},e}(),C=/@media|@supports\s+/,A={onCreateRule:function(e,t,n){return C.test(e)?new T(e,t,n):null}},M={indent:1,children:!0},P=/@keyframes\s+([\w-]+)/,k=function(){function e(e,t,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var r=e.match(P);r&&r[1]?this.name=r[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var o=n.scoped,i=n.sheet,s=n.generateId;for(var l in this.id=!1===o?this.name:w(s(this,i)),this.rules=new Q((0,a.Z)({},n,{parent:this})),t)this.rules.add(l,t[l],(0,a.Z)({},n,{parent:this}));this.rules.process()}return e.prototype.toString=function(e){void 0===e&&(e=M);var t=v(e).linebreak;if(null==e.indent&&(e.indent=M.indent),null==e.children&&(e.children=M.children),!1===e.children)return this.at+" "+this.id+" {}";var n=this.rules.toString(e);return n&&(n=""+t+n+t),this.at+" "+this.id+" {"+n+"}"},e}(),O=/@keyframes\s+/,R=/\$([\w-]+)/g,N=function(e,t){return"string"===typeof e?e.replace(R,(function(e,n){return n in t?t[n]:e})):e},z=function(e,t,n){var r=e[t],a=N(r,n);a!==r&&(e[t]=a)},I={onCreateRule:function(e,t,n){return"string"===typeof e&&O.test(e)?new k(e,t,n):null},onProcessStyle:function(e,t,n){return"style"===t.type&&n?("animation-name"in e&&z(e,"animation-name",n.keyframes),"animation"in e&&z(e,"animation",n.keyframes),e):e},onChangeValue:function(e,t,n){var r=n.options.sheet;if(!r)return e;switch(t){case"animation":case"animation-name":return N(e,r.keyframes);default:return e}}},L=function(e){function t(){return e.apply(this,arguments)||this}return(0,c.Z)(t,e),t.prototype.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?(0,a.Z)({},e,{allowEmpty:!0}):e;return y(this.key,this.style,n)},t}(_),D={onCreateRule:function(e,t,n){return n.parent&&"keyframes"===n.parent.type?new L(e,t,n):null}},B=function(){function e(e,t,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=e,this.style=t,this.options=n}return e.prototype.toString=function(e){var t=v(e).linebreak;if(Array.isArray(this.style)){for(var n="",r=0;r=this.index)t.push(e);else for(var r=0;rn)return void t.splice(r,0,e)},t.reset=function(){this.registry=[]},t.remove=function(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)},t.toString=function(e){for(var t=void 0===e?{}:e,n=t.attached,a=(0,r.Z)(t,["attached"]),o=v(a).linebreak,i="",s=0;s0){var n=function(e,t){for(var n=0;nt.index&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e);if(n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element};if(n=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.attached&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e),n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element.nextSibling}}var r=e.insertionPoint;if(r&&"string"===typeof r){var a=function(e){for(var t=de(),n=0;nn?n:t},ve=function(){function e(e){this.getPropertyValue=se,this.setProperty=le,this.removeProperty=ce,this.setSelector=ue,this.hasInsertedRules=!1,this.cssRules=[],e&&te.add(e),this.sheet=e;var t=this.sheet?this.sheet.options:{},n=t.media,r=t.meta,a=t.element;this.element=a||function(){var e=document.createElement("style");return e.textContent="\n",e}(),this.element.setAttribute("data-jss",""),n&&this.element.setAttribute("media",n),r&&this.element.setAttribute("data-meta",r);var o=pe();o&&this.element.setAttribute("nonce",o)}var t=e.prototype;return t.attach=function(){if(!this.element.parentNode&&this.sheet){!function(e,t){var n=t.insertionPoint,r=fe(t);if(!1!==r&&r.parent)r.parent.insertBefore(e,r.node);else if(n&&"number"===typeof n.nodeType){var a=n,o=a.parentNode;o&&o.insertBefore(e,a.nextSibling)}else de().appendChild(e)}(this.element,this.sheet.options);var e=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&e&&(this.hasInsertedRules=!1,this.deploy())}},t.detach=function(){if(this.sheet){var e=this.element.parentNode;e&&e.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent="\n")}},t.deploy=function(){var e=this.sheet;e&&(e.options.link?this.insertRules(e.rules):this.element.textContent="\n"+e.toString()+"\n")},t.insertRules=function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;e.Component;if(!n)return t;var r=(0,a.Z)({},t);return Object.keys(n).forEach((function(e){n[e]&&(r[e]="".concat(t[e]," ").concat(n[e]))})),r}var Ze={set:function(e,t,n,r){var a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(n,r)},get:function(e,t,n){var r=e.get(t);return r?r.get(n):void 0},delete:function(e,t,n){e.get(t).delete(n)}},Se=Ze,je=n(29598),Ee=n(20919),Te=["checked","disabled","error","focused","focusVisible","required","expanded","selected"];var Ce=Date.now(),Ae="fnValues"+Ce,Me="fnStyle"+ ++Ce,Pe=function(){return{onCreateRule:function(e,t,n){if("function"!==typeof t)return null;var r=p(e,{},n);return r[Me]=t,r},onProcessStyle:function(e,t){if(Ae in t||Me in t)return e;var n={};for(var r in e){var a=e[r];"function"===typeof a&&(delete e[r],n[r]=a)}return t[Ae]=n,e},onUpdate:function(e,t,n,r){var a=t,o=a[Me];o&&(a.style=o(e)||{});var i=a[Ae];if(i)for(var s in i)a.prop(s,i[s](e),r)}}},ke="@global",Oe="@global ",Re=function(){function e(e,t,n){for(var r in this.type="global",this.at=ke,this.isProcessed=!1,this.key=e,this.options=n,this.rules=new Q((0,a.Z)({},n,{parent:this})),t)this.rules.add(r,t[r]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.indexOf=function(e){return this.rules.indexOf(e)},t.toString=function(e){return this.rules.toString(e)},e}(),Ne=function(){function e(e,t,n){this.type="global",this.at=ke,this.isProcessed=!1,this.key=e,this.options=n;var r=e.substr(Oe.length);this.rule=n.jss.createRule(r,t,(0,a.Z)({},n,{parent:this}))}return e.prototype.toString=function(e){return this.rule?this.rule.toString(e):""},e}(),ze=/\s*,\s*/g;function Ie(e,t){for(var n=e.split(ze),r="",a=0;a-1){var a=Lt[e];if(!Array.isArray(a))return ft+_t(a)in t&&pt+a;if(!r)return!1;for(var o=0;ot?1:-1:e.length-t.length};return{onProcessStyle:function(t,n){if("style"!==n.type)return t;for(var r={},a=Object.keys(t).sort(e),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.disableGlobal,n=void 0!==t&&t,r=e.productionPrefix,a=void 0===r?"jss":r,o=e.seed,i=void 0===o?"":o,s=""===i?"":"".concat(i,"-"),l=0,c=function(){return l+=1};return function(e,t){var r=t.options.name;if(r&&0===r.indexOf("Mui")&&!t.options.link&&!n){if(-1!==Te.indexOf(e.key))return"Mui-".concat(e.key);var o="".concat(s).concat(r,"-").concat(e.key);return t.options.theme[Ee.Z]&&""===i?"".concat(o,"-").concat(c()):o}return"".concat(s).concat(a).concat(c())}}(),on={disableGeneration:!1,generateClassName:an,jss:rn,sheetsCache:null,sheetsManager:new Map,sheetsRegistry:null},sn=o.createContext(on);var ln=-1e9;function cn(){return ln+=1}var un=n(82466),dn=n(27312),fn=["variant"];function pn(e){return 0===e.length}function hn(e){var t="function"===typeof e;return{create:function(n,o){var i;try{i=t?e(n):e}catch(u){throw u}if(!o||!n.components||!n.components[o]||!n.components[o].styleOverrides&&!n.components[o].variants)return i;var s=n.components[o].styleOverrides||{},l=n.components[o].variants||[],c=(0,a.Z)({},i);return Object.keys(s).forEach((function(e){c[e]=(0,un.Z)(c[e]||{},s[e])})),l.forEach((function(e){var t=function(e){var t=e.variant,n=(0,r.Z)(e,fn),a=t||"";return Object.keys(n).sort().forEach((function(t){a+="color"===t?pn(a)?e[t]:(0,dn.Z)(e[t]):"".concat(pn(a)?t:(0,dn.Z)(t)).concat((0,dn.Z)(e[t].toString()))})),a}(e.props);c[t]=(0,un.Z)(c[t]||{},e.style)})),c},options:{}}}var mn={},vn=["name","classNamePrefix","Component","defaultTheme"];function gn(e,t,n){var r=e.state;if(e.stylesOptions.disableGeneration)return t||{};r.cacheClasses||(r.cacheClasses={value:null,lastProp:null,lastJSS:{}});var a=!1;return r.classes!==r.cacheClasses.lastJSS&&(r.cacheClasses.lastJSS=r.classes,a=!0),t!==r.cacheClasses.lastProp&&(r.cacheClasses.lastProp=t,a=!0),a&&(r.cacheClasses.value=_e({baseClasses:r.cacheClasses.lastJSS,newClasses:t,Component:n})),r.cacheClasses.value}function yn(e,t){var n=e.state,r=e.theme,o=e.stylesOptions,i=e.stylesCreator,s=e.name;if(!o.disableGeneration){var l=Se.get(o.sheetsManager,i,r);l||(l={refs:0,staticSheet:null,dynamicStyles:null},Se.set(o.sheetsManager,i,r,l));var c=(0,a.Z)({},i.options,o,{theme:r,flip:"boolean"===typeof o.flip?o.flip:"rtl"===r.direction});c.generateId=c.serverGenerateClassName||c.generateClassName;var u=o.sheetsRegistry;if(0===l.refs){var d;o.sheetsCache&&(d=Se.get(o.sheetsCache,i,r));var f=i.create(r,s);d||((d=o.jss.createStyleSheet(f,(0,a.Z)({link:!1},c))).attach(),o.sheetsCache&&Se.set(o.sheetsCache,i,r,d)),u&&u.add(d),l.staticSheet=d,l.dynamicStyles=we(f)}if(l.dynamicStyles){var p=o.jss.createStyleSheet(l.dynamicStyles,(0,a.Z)({link:!0},c));p.update(t),p.attach(),n.dynamicSheet=p,n.classes=_e({baseClasses:l.staticSheet.classes,newClasses:p.classes}),u&&u.add(p)}else n.classes=l.staticSheet.classes;l.refs+=1}}function xn(e,t){var n=e.state;n.dynamicSheet&&n.dynamicSheet.update(t)}function bn(e){var t=e.state,n=e.theme,r=e.stylesOptions,a=e.stylesCreator;if(!r.disableGeneration){var o=Se.get(r.sheetsManager,a,n);o.refs-=1;var i=r.sheetsRegistry;0===o.refs&&(Se.delete(r.sheetsManager,a,n),r.jss.removeStyleSheet(o.staticSheet),i&&i.remove(o.staticSheet)),t.dynamicSheet&&(r.jss.removeStyleSheet(t.dynamicSheet),i&&i.remove(t.dynamicSheet))}}function wn(e,t){var n,r=o.useRef([]),a=o.useMemo((function(){return{}}),t);r.current!==a&&(r.current=a,n=e()),o.useEffect((function(){return function(){n&&n()}}),[a])}function _n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.name,i=t.classNamePrefix,s=t.Component,l=t.defaultTheme,c=void 0===l?mn:l,u=(0,r.Z)(t,vn),d=hn(e),f=n||i||"makeStyles";d.options={index:cn(),name:n,meta:f,classNamePrefix:f};var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,je.Z)()||c,r=(0,a.Z)({},o.useContext(sn),u),i=o.useRef(),l=o.useRef();wn((function(){var a={name:n,state:{},stylesCreator:d,stylesOptions:r,theme:t};return yn(a,e),l.current=!1,i.current=a,function(){bn(a)}}),[t,d]),o.useEffect((function(){l.current&&xn(i.current,e),l.current=!0}));var f=gn(i.current,e.classes,s);return f};return p}},25787:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(87462),a=n(63366),o=n(72791),i=n(62110),s=n.n(i),l=n(72455);function c(e){var t=e.theme,n=e.name,a=e.props;if(!t||!t.components||!t.components[n]||!t.components[n].defaultProps)return a;var o,i=(0,r.Z)({},a),s=t.components[n].defaultProps;for(o in s)void 0===i[o]&&(i[o]=s[o]);return i}var u=n(29598),d=n(80184),f=["defaultTheme","withTheme","name"],p=["classes"],h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var i=t.defaultTheme,h=t.withTheme,m=void 0!==h&&h,v=t.name,g=(0,a.Z)(t,f);var y=v,x=(0,l.Z)(e,(0,r.Z)({defaultTheme:i,Component:n,name:v||n.displayName,classNamePrefix:y},g)),b=o.forwardRef((function(e,t){var o,s=(0,a.Z)(e,p),l=x((0,r.Z)({},n.defaultProps,e)),f=s;return("string"===typeof v||m)&&(o=(0,u.Z)()||i,v&&(f=c({theme:o,name:v,props:s})),m&&!f.theme&&(f.theme=o)),(0,d.jsx)(n,(0,r.Z)({ref:t,classes:l},f))}));return s()(b,n),b}}},51184:function(e,t,n){"use strict";n.d(t,{L7:function(){return s},P$:function(){return l},VO:function(){return r},W8:function(){return i},k9:function(){return o}});var r={xs:0,sm:600,md:900,lg:1200,xl:1536},a={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(r[e],"px)")}};function o(e,t,n){var o=e.theme||{};if(Array.isArray(t)){var i=o.breakpoints||a;return t.reduce((function(e,r,a){return e[i.up(i.keys[a])]=n(t[a]),e}),{})}if("object"===typeof t){var s=o.breakpoints||a;return Object.keys(t).reduce((function(e,a){if(-1!==Object.keys(s.values||r).indexOf(a)){e[s.up(a)]=n(t[a],a)}else{var o=a;e[o]=t[o]}return e}),{})}return n(t)}function i(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null==t||null==(e=t.keys)?void 0:e.reduce((function(e,n){return e[t.up(n)]={},e}),{});return n||{}}function s(e,t){return e.reduce((function(e,t){var n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}function l(e){var t,n=e.values,r=e.breakpoints,a=e.base||function(e,t){if("object"!==typeof e)return{};var n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((function(t,r){r1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function o(e){if(e.type)return e;if("#"===e.charAt(0))return o(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error((0,r.Z)(9,e));var a,i=e.substring(t+1,e.length-1);if("color"===n){if(a=(i=i.split(" ")).shift(),4===i.length&&"/"===i[3].charAt(0)&&(i[3]=i[3].substr(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(a))throw new Error((0,r.Z)(10,a))}else i=i.split(",");return{type:n,values:i=i.map((function(e){return parseFloat(e)})),colorSpace:a}}function i(e){var t=e.type,n=e.colorSpace,r=e.values;return-1!==t.indexOf("rgb")?r=r.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(r[1]="".concat(r[1],"%"),r[2]="".concat(r[2],"%")),r=-1!==t.indexOf("color")?"".concat(n," ").concat(r.join(" ")):"".concat(r.join(", ")),"".concat(t,"(").concat(r,")")}function s(e){var t="hsl"===(e=o(e)).type?o(function(e){var t=(e=o(e)).values,n=t[0],r=t[1]/100,a=t[2]/100,s=r*Math.min(a,1-a),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return a-s*Math.max(Math.min(t-3,9-t,1),-1)},c="rgb",u=[Math.round(255*l(0)),Math.round(255*l(8)),Math.round(255*l(4))];return"hsla"===e.type&&(c+="a",u.push(t[3])),i({type:c,values:u})}(e)).values:e.values;return t=t.map((function(t){return"color"!==e.type&&(t/=255),t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function l(e,t){var n=s(e),r=s(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function c(e,t){return e=o(e),t=a(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]="/".concat(t):e.values[3]=t,i(e)}function u(e,t){if(e=o(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return i(e)}function d(e,t){if(e=o(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(var r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return i(e)}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return s(e)>.5?u(e,t):d(e,t)}},85080:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(87462),a=n(63366),o=n(82466),i=n(4942),s=["values","unit","step"];function l(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:900,lg:1200,xl:1536}:t,o=e.unit,l=void 0===o?"px":o,c=e.step,u=void 0===c?5:c,d=(0,a.Z)(e,s),f=function(e){var t=Object.keys(e).map((function(t){return{key:t,val:e[t]}}))||[];return t.sort((function(e,t){return e.val-t.val})),t.reduce((function(e,t){return(0,r.Z)({},e,(0,i.Z)({},t.key,t.val))}),{})}(n),p=Object.keys(f);function h(e){var t="number"===typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(l,")")}function m(e){var t="number"===typeof n[e]?n[e]:e;return"@media (max-width:".concat(t-u/100).concat(l,")")}function v(e,t){var r=p.indexOf(t);return"@media (min-width:".concat("number"===typeof n[e]?n[e]:e).concat(l,") and ")+"(max-width:".concat((-1!==r&&"number"===typeof n[p[r]]?n[p[r]]:t)-u/100).concat(l,")")}return(0,r.Z)({keys:p,values:f,up:h,down:m,between:v,only:function(e){return p.indexOf(e)+10&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=(0,u.hB)({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,i=e.palette,s=void 0===i?{}:i,u=e.spacing,p=e.shape,h=void 0===p?{}:p,m=(0,a.Z)(e,f),v=l(n),g=d(u),y=(0,o.Z)({breakpoints:v,direction:"ltr",components:{},palette:(0,r.Z)({mode:"light"},s),spacing:g,shape:(0,r.Z)({},c,h)},m),x=arguments.length,b=new Array(x>1?x-1:0),w=1;w2){if(!c[e])return[e];e=c[e]}var t=e.split(""),n=(0,r.Z)(t,2),a=n[0],o=n[1],i=s[a],u=l[o]||"";return Array.isArray(u)?u.map((function(e){return i+e})):[i+u]})),d=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],f=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[].concat(d,f);function h(e,t,n,r){var a=(0,o.D)(e,t)||n;return"number"===typeof a?function(e){return"string"===typeof e?e:a*e}:Array.isArray(a)?function(e){return"string"===typeof e?e:a[e]}:"function"===typeof a?a:function(){}}function m(e){return h(e,"spacing",8)}function v(e,t){if("string"===typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}function g(e,t,n,r){if(-1===t.indexOf(n))return null;var o=function(e,t){return function(n){return e.reduce((function(e,r){return e[r]=v(t,n),e}),{})}}(u(n),r),i=e[n];return(0,a.k9)(e,i,o)}function y(e,t){var n=m(e.theme);return Object.keys(e).map((function(r){return g(e,t,r,n)})).reduce(i.Z,{})}function x(e){return y(e,d)}function b(e){return y(e,f)}function w(e){return y(e,p)}x.propTypes={},x.filterProps=d,b.propTypes={},b.filterProps=f,w.propTypes={},w.filterProps=p;var _=w},18529:function(e,t,n){"use strict";n.d(t,{D:function(){return i}});var r=n(4942),a=n(27312),o=n(51184);function i(e,t){return t&&"string"===typeof t?t.split(".").reduce((function(e,t){return e&&e[t]?e[t]:null}),e):null}function s(e,t,n){var r,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;return r="function"===typeof e?e(n):Array.isArray(e)?e[n]||a:i(e,n)||a,t&&(r=t(r)),r}t.Z=function(e){var t=e.prop,n=e.cssProperty,l=void 0===n?e.prop:n,c=e.themeKey,u=e.transform,d=function(e){if(null==e[t])return null;var n=e[t],d=i(e.theme,c)||{};return(0,o.k9)(e,n,(function(e){var n=s(d,u,e);return e===n&&"string"===typeof e&&(n=s(d,u,"".concat(t).concat("default"===e?"":(0,a.Z)(e)),e)),!1===l?n:(0,r.Z)({},l,n)}))};return d.propTypes={},d.filterProps=[t],d}},78519:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(93433),a=n(87462),o=n(63366),i=n(82466),s=n(46001),l=["sx"];function c(e){var t,n=e.sx,c=function(e){var t={systemProps:{},otherProps:{}};return Object.keys(e).forEach((function(n){s.Gc[n]?t.systemProps[n]=e[n]:t.otherProps[n]=e[n]})),t}((0,o.Z)(e,l)),u=c.systemProps,d=c.otherProps;return t=Array.isArray(n)?[u].concat((0,r.Z)(n)):"function"===typeof n?function(){var e=n.apply(void 0,arguments);return(0,i.P)(e)?(0,a.Z)({},u,e):u}:(0,a.Z)({},u,n),(0,a.Z)({},d,{sx:t})}},60104:function(e,t,n){"use strict";var r=n(4942),a=n(98247),o=n(46001),i=n(51184);function s(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:o.G$,t=Object.keys(e).reduce((function(t,n){return e[n].filterProps.forEach((function(r){t[r]=e[n]})),t}),{});function n(e,n,a){var o,i=(o={},(0,r.Z)(o,e,n),(0,r.Z)(o,"theme",a),o),s=t[e];return s?s(i):(0,r.Z)({},e,n)}function c(e){var o=e||{},u=o.sx,d=o.theme,f=void 0===d?{}:d;if(!u)return null;function p(e){var o=e;if("function"===typeof e)o=e(f);else if("object"!==typeof e)return e;if(!o)return null;var u=(0,i.W8)(f.breakpoints),d=Object.keys(u),p=u;return Object.keys(o).forEach((function(e){var u=l(o[e],f);if(null!==u&&void 0!==u)if("object"===typeof u)if(t[e])p=(0,a.Z)(p,n(e,u,f));else{var d=(0,i.k9)({theme:f},u,(function(t){return(0,r.Z)({},e,t)}));s(d,u)?p[e]=c({sx:u,theme:f}):p=(0,a.Z)(p,d)}else p=(0,a.Z)(p,n(e,u,f))})),(0,i.L7)(d,p)}return Array.isArray(u)?u.map(p):p(u)}return c}();c.filterProps=["sx"],t.Z=c},30418:function(e,t,n){"use strict";var r=n(85080),a=n(69120),o=(0,r.Z)();t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o;return(0,a.Z)(e)}},33073:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(35735);function a(e){var t=e.theme,n=e.name,a=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,r.Z)(t.components[n].defaultProps,a):a}},69120:function(e,t,n){"use strict";var r=n(29598);function a(e){return 0===Object.keys(e).length}t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=(0,r.Z)();return!t||a(t)?e:t}},27312:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(46189);function a(e){if("string"!==typeof e)throw new Error((0,r.Z)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},78949:function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=this,a=arguments.length,o=new Array(a),i=0;i2&&void 0!==arguments[2]?arguments[2]:{clone:!0},i=n.clone?(0,r.Z)({},e):e;return a(e)&&a(t)&&Object.keys(t).forEach((function(r){"__proto__"!==r&&(a(t[r])&&r in e&&a(e[r])?i[r]=o(e[r],t[r],n):i[r]=t[r])})),i}},46189:function(e,t,n){"use strict";function r(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n-1?a(n):n}},19722:function(e,t,n){"use strict";var r=n(33350),a=n(52506),o=a("%Function.prototype.apply%"),i=a("%Function.prototype.call%"),s=a("%Reflect.apply%",!0)||r.call(i,o),l=a("%Object.getOwnPropertyDescriptor%",!0),c=a("%Object.defineProperty%",!0),u=a("%Math.max%");if(c)try{c({},"a",{value:1})}catch(f){c=null}e.exports=function(e){var t=s(r,i,arguments);if(l&&c){var n=l(t,"length");n.configurable&&c(t,"length",{value:1+u(0,e.length-(arguments.length-1))})}return t};var d=function(){return s(r,o,arguments)};c?c(e.exports,"apply",{value:d}):e.exports.apply=d},28182:function(e,t,n){"use strict";function r(e){var t,n,a="";if("string"===typeof e||"number"===typeof e)a+=e;else if("object"===typeof e)if(Array.isArray(e))for(t=0;t0;)if(!n(e[a],t[a],r))return!1;return!0}function d(e,t,n,r){var a=e.size===t.size;if(a&&e.size){var o={};e.forEach((function(e,i){if(a){var s=!1,l=0;t.forEach((function(t,a){s||o[l]||(s=n(i,a,r)&&n(e,t,r))&&(o[l]=!0),l++})),a=s}}))}return a}var f="_owner",p=Function.prototype.bind.call(Function.prototype.call,Object.prototype.hasOwnProperty);function h(e,t,r,a){var o=n(e),s=o.length;if(n(t).length!==s)return!1;if(s)for(var l=void 0;s-- >0;){if((l=o[s])===f){var c=i(e),u=i(t);if((c||u)&&c!==u)return!1}if(!p(t,l)||!r(e[l],t[l],a))return!1}return!0}function m(e,t){return e.source===t.source&&e.global===t.global&&e.ignoreCase===t.ignoreCase&&e.multiline===t.multiline&&e.unicode===t.unicode&&e.sticky===t.sticky&&e.lastIndex===t.lastIndex}function v(e,t,n,r){var a=e.size===t.size;if(a&&e.size){var o={};e.forEach((function(e){if(a){var i=!1,s=0;t.forEach((function(t){i||o[s]||(i=n(e,t,r))&&(o[s]=!0),s++})),a=i}}))}return a}var g="function"===typeof Map,y="function"===typeof Set;function x(e){var t="function"===typeof e?e(n):n;function n(e,n,i){if(e===n)return!0;if(e&&n&&"object"===typeof e&&"object"===typeof n){if(a(e)&&a(n))return h(e,n,t,i);var s=Array.isArray(e),l=Array.isArray(n);return s||l?s===l&&u(e,n,t,i):(s=e instanceof Date,l=n instanceof Date,s||l?s===l&&r(e.getTime(),n.getTime()):(s=e instanceof RegExp,l=n instanceof RegExp,s||l?s===l&&m(e,n):o(e)||o(n)?e===n:g&&(s=e instanceof Map,l=n instanceof Map,s||l)?s===l&&d(e,n,t,i):y&&(s=e instanceof Set,l=n instanceof Set,s||l)?s===l&&v(e,n,t,i):h(e,n,t,i)))}return e!==e&&n!==n}return n}var b=x(),w=x((function(){return r})),_=x(c()),Z=x(c(r));e.circularDeepEqual=_,e.circularShallowEqual=Z,e.createCustomEqual=x,e.deepEqual=b,e.sameValueZeroEqual=r,e.shallowEqual=w,Object.defineProperty(e,"__esModule",{value:!0})}(t)},11053:function(e){e.exports=i,i.default=i,i.stable=u,i.stableStringify=u;var t="[...]",n="[Circular]",r=[],a=[];function o(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function i(e,t,n,i){var s;"undefined"===typeof i&&(i=o()),l(e,"",0,[],void 0,0,i);try{s=0===a.length?JSON.stringify(e,t,n):JSON.stringify(e,f(t),n)}catch(u){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==r.length;){var c=r.pop();4===c.length?Object.defineProperty(c[0],c[1],c[3]):c[0][c[1]]=c[2]}}return s}function s(e,t,n,o){var i=Object.getOwnPropertyDescriptor(o,n);void 0!==i.get?i.configurable?(Object.defineProperty(o,n,{value:e}),r.push([o,n,t,i])):a.push([t,n,e]):(o[n]=e,r.push([o,n,t]))}function l(e,r,a,o,i,c,u){var d;if(c+=1,"object"===typeof e&&null!==e){for(d=0;du.depthLimit)return void s(t,e,r,i);if("undefined"!==typeof u.edgesLimit&&a+1>u.edgesLimit)return void s(t,e,r,i);if(o.push(e),Array.isArray(e))for(d=0;dt?1:0}function u(e,t,n,i){"undefined"===typeof i&&(i=o());var s,l=d(e,"",0,[],void 0,0,i)||e;try{s=0===a.length?JSON.stringify(l,t,n):JSON.stringify(l,f(t),n)}catch(u){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==r.length;){var c=r.pop();4===c.length?Object.defineProperty(c[0],c[1],c[3]):c[0][c[1]]=c[2]}}return s}function d(e,a,o,i,l,u,f){var p;if(u+=1,"object"===typeof e&&null!==e){for(p=0;pf.depthLimit)return void s(t,e,a,l);if("undefined"!==typeof f.edgesLimit&&o+1>f.edgesLimit)return void s(t,e,a,l);if(i.push(e),Array.isArray(e))for(p=0;p0)for(var r=0;r1&&"boolean"!==typeof t)throw new i('"allowMissing" argument must be a boolean');var n=E(e),r=n.length>0?n[0]:"",o=T("%"+r+"%",t),s=o.name,c=o.value,u=!1,d=o.alias;d&&(r=d[0],w(n,b([0,1],d)));for(var f=1,p=!0;f=n.length){var y=l(c,h);c=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:c[h]}else p=x(c,h),c=c[h];p&&!u&&(m[s]=c)}}return c}},80697:function(e,t,n){"use strict";var r="undefined"!==typeof Symbol&&Symbol,a=n(63297);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&a())))}},63297:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(42!==a.value||!0!==a.enumerable)return!1}return!0}},58316:function(e,t,n){"use strict";var r=n(33350);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},12610:function(e,t,n){"use strict";n.d(t,{lX:function(){return Z},q_:function(){return A},ob:function(){return m},PP:function(){return P},Ep:function(){return h},Hp:function(){return v}});var r=n(87462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"===typeof t||"object"===typeof n){var r=s(t),a=s(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},c=n(56111);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function m(e,t,n,a){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function v(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,f(),b.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(b.entries[b.index]=a,d({action:r,location:a}))}))},go:x,goBack:function(){x(-1)},goForward:function(){x(1)},canGo:function(e){var t=b.index+e;return t>=0&&t0?e-1:e;if("string"===typeof a.current[t]){if(0===t)return e;t-=1}return t}))):"ArrowDown"===e.key||e.ctrlKey&&"n"===e.key?(e.preventDefault(),f.setActiveIndex((function(e){var t=e1?d.set(r,s.slice(1)):(d.delete(r),o(e)):a(e,e.key)||d.delete(r)})),f&&clearTimeout(f),f=setTimeout(d.clear.bind(d),l))};return e.addEventListener(c,p),function(){e.removeEventListener(c,p)}}},34018:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VisualState=void 0,function(e){e.animatingIn="animating-in",e.showing="showing",e.animatingOut="animating-out",e.hidden="hidden"}(t.VisualState||(t.VisualState={}))},44870:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(n.push.apply(n,t[r].children),e(t[r].children,n));return n}(e)}),[]),f=!n,p=function(e,t){var n=l.useMemo((function(){return{filtered:e,search:t}}),[e,t]),r=(0,u.useThrottledValue)(n),a=r.filtered,o=r.search;return l.useMemo((function(){return""===o.trim()?a:(0,s.matchSorter)(a,o,{keys:["name","keywords","subtitle"]})}),[a,o])}(l.useMemo((function(){return f?o:d(o)}),[d,o,f]),n),h=l.useMemo((function(){for(var e={},n=0;n-1)return this.subscribers.splice(t,1)}},e.prototype.notify=function(){this.subscribers.forEach((function(e){return e.collect()}))},e}(),p=function(){function e(e,t){this.collector=e,this.onChange=t}return e.prototype.collect=function(){try{var e=this.collector();(0,s.deepEqual)(e,this.collected)||(this.collected=e,this.onChange&&this.onChange(this.collected))}catch(t){console.warn(t)}},e}()},98240:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&void 0!==arguments[0]?arguments[0]:{};s(this,e),this.cookieOptions=Object.assign({path:"/"},t),l=void 0===t.prefix?l:t.prefix}return r(e,[{key:"getItem",value:function(e){var t=i.default.parse(document.cookie);return t&&t.hasOwnProperty(l+e)?t[l+e]:null}},{key:"setItem",value:function(e,t){return document.cookie=i.default.serialize(l+e,t,this.cookieOptions),t}},{key:"removeItem",value:function(e){var t=Object.assign({},this.cookieOptions,{maxAge:-1});return document.cookie=i.default.serialize(l+e,"",t),null}},{key:"clear",value:function(){var e=i.default.parse(document.cookie);for(var t in e)0===t.indexOf(l)&&this.removeItem(t.substr(l.length));return null}}]),e}();t.default=c},89493:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:"localStorage",t=String(e).replace(/storage$/i,"").toLowerCase();if("local"===t)return o("localStorage");if("session"===t)return o("sessionStorage");if("cookie"===t)return(0,r.hasCookies)();if("memory"===t)return!0;throw new Error("Storage method `"+e+"` is not available.\n Please use one of the following: localStorage, sessionStorage, cookieStorage, memoryStorage.")};var r=n(92260),a="__test";function o(e){try{var t=window[e];return t.setItem(a,"1"),t.removeItem(a),!0}catch(n){return!1}}},29676:function(e,t,n){var r=n(85403),a=n(62747),o=n(16037),i=n(94154),s=n(77728);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1}},87109:function(e,t,n){var r=n(27112);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},34086:function(e,t,n){var r=n(29676),a=n(38384),o=n(95797);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||a),string:new r}}},9255:function(e,t,n){var r=n(32799);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},29186:function(e,t,n){var r=n(32799);e.exports=function(e){return r(this,e).get(e)}},13423:function(e,t,n){var r=n(32799);e.exports=function(e){return r(this,e).has(e)}},73739:function(e,t,n){var r=n(32799);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},14634:function(e,t,n){var r=n(49151);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},49620:function(e,t,n){var r=n(68136)(Object,"create");e.exports=r},43581:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},97009:function(e,t,n){var r=n(31032),a="object"==typeof self&&self&&self.Object===Object&&self,o=r||a||Function("return this")();e.exports=o},10170:function(e,t,n){var r=n(14634),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(o,"$1"):n||e)})),t}));e.exports=i},69793:function(e,t,n){var r=n(70152);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},27907:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},29231:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},26181:function(e,t,n){var r=n(98667);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},17805:function(e,t,n){var r=n(97852),a=n(86417);e.exports=function(e,t){return null!=e&&a(e,t,r)}},34963:function(e,t,n){var r=n(4906),a=n(43141),o=Object.prototype,i=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},93629:function(e){var t=Array.isArray;e.exports=t},74786:function(e,t,n){var r=n(39066),a=n(8092);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},24635:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},8092:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},43141:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},70152:function(e,t,n){var r=n(39066),a=n(43141);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},763:function(e,t,n){var r;e=n.nmd(e),function(){var a,o="Expected a function",i="__lodash_hash_undefined__",s="__lodash_placeholder__",l=16,c=32,u=64,d=128,f=256,p=1/0,h=9007199254740991,m=NaN,v=4294967295,g=[["ary",d],["bind",1],["bindKey",2],["curry",8],["curryRight",l],["flip",512],["partial",c],["partialRight",u],["rearg",f]],y="[object Arguments]",x="[object Array]",b="[object Boolean]",w="[object Date]",_="[object Error]",Z="[object Function]",S="[object GeneratorFunction]",j="[object Map]",E="[object Number]",T="[object Object]",C="[object Promise]",A="[object RegExp]",M="[object Set]",P="[object String]",k="[object Symbol]",O="[object WeakMap]",R="[object ArrayBuffer]",N="[object DataView]",z="[object Float32Array]",I="[object Float64Array]",L="[object Int8Array]",D="[object Int16Array]",B="[object Int32Array]",H="[object Uint8Array]",F="[object Uint8ClampedArray]",U="[object Uint16Array]",V="[object Uint32Array]",G=/\b__p \+= '';/g,W=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,$=/[&<>"']/g,Y=RegExp(K.source),Q=RegExp($.source),J=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,ee=/<%=([\s\S]+?)%>/g,te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/[\\^$.*+?()[\]{}|]/g,oe=RegExp(ae.source),ie=/^\s+/,se=/\s/,le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ce=/\{\n\/\* \[wrapped with (.+)\] \*/,ue=/,? & /,de=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,fe=/[()=,{}\[\]\/\s]/,pe=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,me=/\w*$/,ve=/^[-+]0x[0-9a-f]+$/i,ge=/^0b[01]+$/i,ye=/^\[object .+?Constructor\]$/,xe=/^0o[0-7]+$/i,be=/^(?:0|[1-9]\d*)$/,we=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_e=/($^)/,Ze=/['\n\r\u2028\u2029\\]/g,Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",je="\\u2700-\\u27bf",Ee="a-z\\xdf-\\xf6\\xf8-\\xff",Te="A-Z\\xc0-\\xd6\\xd8-\\xde",Ce="\\ufe0e\\ufe0f",Ae="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Me="['\u2019]",Pe="[\\ud800-\\udfff]",ke="["+Ae+"]",Oe="["+Se+"]",Re="\\d+",Ne="[\\u2700-\\u27bf]",ze="["+Ee+"]",Ie="[^\\ud800-\\udfff"+Ae+Re+je+Ee+Te+"]",Le="\\ud83c[\\udffb-\\udfff]",De="[^\\ud800-\\udfff]",Be="(?:\\ud83c[\\udde6-\\uddff]){2}",He="[\\ud800-\\udbff][\\udc00-\\udfff]",Fe="["+Te+"]",Ue="(?:"+ze+"|"+Ie+")",Ve="(?:"+Fe+"|"+Ie+")",Ge="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",We="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",qe="(?:"+Oe+"|"+Le+")"+"?",Ke="[\\ufe0e\\ufe0f]?",$e=Ke+qe+("(?:\\u200d(?:"+[De,Be,He].join("|")+")"+Ke+qe+")*"),Ye="(?:"+[Ne,Be,He].join("|")+")"+$e,Qe="(?:"+[De+Oe+"?",Oe,Be,He,Pe].join("|")+")",Je=RegExp(Me,"g"),Xe=RegExp(Oe,"g"),et=RegExp(Le+"(?="+Le+")|"+Qe+$e,"g"),tt=RegExp([Fe+"?"+ze+"+"+Ge+"(?="+[ke,Fe,"$"].join("|")+")",Ve+"+"+We+"(?="+[ke,Fe+Ue,"$"].join("|")+")",Fe+"?"+Ue+"+"+Ge,Fe+"+"+We,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Re,Ye].join("|"),"g"),nt=RegExp("[\\u200d\\ud800-\\udfff"+Se+Ce+"]"),rt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,at=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ot=-1,it={};it[z]=it[I]=it[L]=it[D]=it[B]=it[H]=it[F]=it[U]=it[V]=!0,it[y]=it[x]=it[R]=it[b]=it[N]=it[w]=it[_]=it[Z]=it[j]=it[E]=it[T]=it[A]=it[M]=it[P]=it[O]=!1;var st={};st[y]=st[x]=st[R]=st[N]=st[b]=st[w]=st[z]=st[I]=st[L]=st[D]=st[B]=st[j]=st[E]=st[T]=st[A]=st[M]=st[P]=st[k]=st[H]=st[F]=st[U]=st[V]=!0,st[_]=st[Z]=st[O]=!1;var lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ct=parseFloat,ut=parseInt,dt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ft="object"==typeof self&&self&&self.Object===Object&&self,pt=dt||ft||Function("return this")(),ht=t&&!t.nodeType&&t,mt=ht&&e&&!e.nodeType&&e,vt=mt&&mt.exports===ht,gt=vt&&dt.process,yt=function(){try{var e=mt&&mt.require&&mt.require("util").types;return e||gt&>.binding&>.binding("util")}catch(t){}}(),xt=yt&&yt.isArrayBuffer,bt=yt&&yt.isDate,wt=yt&&yt.isMap,_t=yt&&yt.isRegExp,Zt=yt&&yt.isSet,St=yt&&yt.isTypedArray;function jt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Et(e,t,n,r){for(var a=-1,o=null==e?0:e.length;++a-1}function kt(e,t,n){for(var r=-1,a=null==e?0:e.length;++r-1;);return n}function tn(e,t){for(var n=e.length;n--&&Ht(t,e[n],0)>-1;);return n}function nn(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var rn=Wt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),an=Wt({"&":"&","<":"<",">":">",'"':""","'":"'"});function on(e){return"\\"+lt[e]}function sn(e){return nt.test(e)}function ln(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function cn(e,t){return function(n){return e(t(n))}}function un(e,t){for(var n=-1,r=e.length,a=0,o=[];++n",""":'"',"'":"'"});var gn=function e(t){var n=(t=null==t?pt:gn.defaults(pt.Object(),t,gn.pick(pt,at))).Array,r=t.Date,se=t.Error,Se=t.Function,je=t.Math,Ee=t.Object,Te=t.RegExp,Ce=t.String,Ae=t.TypeError,Me=n.prototype,Pe=Se.prototype,ke=Ee.prototype,Oe=t["__core-js_shared__"],Re=Pe.toString,Ne=ke.hasOwnProperty,ze=0,Ie=function(){var e=/[^.]+$/.exec(Oe&&Oe.keys&&Oe.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Le=ke.toString,De=Re.call(Ee),Be=pt._,He=Te("^"+Re.call(Ne).replace(ae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fe=vt?t.Buffer:a,Ue=t.Symbol,Ve=t.Uint8Array,Ge=Fe?Fe.allocUnsafe:a,We=cn(Ee.getPrototypeOf,Ee),qe=Ee.create,Ke=ke.propertyIsEnumerable,$e=Me.splice,Ye=Ue?Ue.isConcatSpreadable:a,Qe=Ue?Ue.iterator:a,et=Ue?Ue.toStringTag:a,nt=function(){try{var e=po(Ee,"defineProperty");return e({},"",{}),e}catch(t){}}(),lt=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,dt=r&&r.now!==pt.Date.now&&r.now,ft=t.setTimeout!==pt.setTimeout&&t.setTimeout,ht=je.ceil,mt=je.floor,gt=Ee.getOwnPropertySymbols,yt=Fe?Fe.isBuffer:a,Lt=t.isFinite,Wt=Me.join,yn=cn(Ee.keys,Ee),xn=je.max,bn=je.min,wn=r.now,_n=t.parseInt,Zn=je.random,Sn=Me.reverse,jn=po(t,"DataView"),En=po(t,"Map"),Tn=po(t,"Promise"),Cn=po(t,"Set"),An=po(t,"WeakMap"),Mn=po(Ee,"create"),Pn=An&&new An,kn={},On=Bo(jn),Rn=Bo(En),Nn=Bo(Tn),zn=Bo(Cn),In=Bo(An),Ln=Ue?Ue.prototype:a,Dn=Ln?Ln.valueOf:a,Bn=Ln?Ln.toString:a;function Hn(e){if(rs(e)&&!Wi(e)&&!(e instanceof Gn)){if(e instanceof Vn)return e;if(Ne.call(e,"__wrapped__"))return Ho(e)}return new Vn(e)}var Fn=function(){function e(){}return function(t){if(!ns(t))return{};if(qe)return qe(t);e.prototype=t;var n=new e;return e.prototype=a,n}}();function Un(){}function Vn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function Gn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=v,this.__views__=[]}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function cr(e,t,n,r,o,i){var s,l=1&t,c=2&t,u=4&t;if(n&&(s=o?n(e,r,o,i):n(e)),s!==a)return s;if(!ns(e))return e;var d=Wi(e);if(d){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ne.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!l)return Ma(e,s)}else{var f=vo(e),p=f==Z||f==S;if(Yi(e))return Sa(e,l);if(f==T||f==y||p&&!o){if(s=c||p?{}:yo(e),!l)return c?function(e,t){return Pa(e,mo(e),t)}(e,function(e,t){return e&&Pa(t,Rs(t),e)}(s,e)):function(e,t){return Pa(e,ho(e),t)}(e,or(s,e))}else{if(!st[f])return o?e:{};s=function(e,t,n){var r=e.constructor;switch(t){case R:return ja(e);case b:case w:return new r(+e);case N:return function(e,t){var n=t?ja(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case z:case I:case L:case D:case B:case H:case F:case U:case V:return Ea(e,n);case j:return new r;case E:case P:return new r(e);case A:return function(e){var t=new e.constructor(e.source,me.exec(e));return t.lastIndex=e.lastIndex,t}(e);case M:return new r;case k:return a=e,Dn?Ee(Dn.call(a)):{}}var a}(e,f,l)}}i||(i=new Yn);var h=i.get(e);if(h)return h;i.set(e,s),ls(e)?e.forEach((function(r){s.add(cr(r,t,n,r,e,i))})):as(e)&&e.forEach((function(r,a){s.set(a,cr(r,t,n,a,e,i))}));var m=d?a:(u?c?oo:ao:c?Rs:Os)(e);return Tt(m||e,(function(r,a){m&&(r=e[a=r]),nr(s,a,cr(r,t,n,a,e,i))})),s}function ur(e,t,n){var r=n.length;if(null==e)return!r;for(e=Ee(e);r--;){var o=n[r],i=t[o],s=e[o];if(s===a&&!(o in e)||!i(s))return!1}return!0}function dr(e,t,n){if("function"!=typeof e)throw new Ae(o);return Oo((function(){e.apply(a,n)}),t)}function fr(e,t,n,r){var a=-1,o=Pt,i=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Ot(t,Qt(n))),r?(o=kt,i=!1):t.length>=200&&(o=Xt,i=!1,t=new $n(t));e:for(;++a-1},qn.prototype.set=function(e,t){var n=this.__data__,r=rr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Kn.prototype.clear=function(){this.size=0,this.__data__={hash:new Wn,map:new(En||qn),string:new Wn}},Kn.prototype.delete=function(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t},Kn.prototype.get=function(e){return uo(this,e).get(e)},Kn.prototype.has=function(e){return uo(this,e).has(e)},Kn.prototype.set=function(e,t){var n=uo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},$n.prototype.add=$n.prototype.push=function(e){return this.__data__.set(e,i),this},$n.prototype.has=function(e){return this.__data__.has(e)},Yn.prototype.clear=function(){this.__data__=new qn,this.size=0},Yn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Yn.prototype.get=function(e){return this.__data__.get(e)},Yn.prototype.has=function(e){return this.__data__.has(e)},Yn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!En||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Kn(r)}return n.set(e,t),this.size=n.size,this};var pr=Ra(wr),hr=Ra(_r,!0);function mr(e,t){var n=!0;return pr(e,(function(e,r,a){return n=!!t(e,r,a)})),n}function vr(e,t,n){for(var r=-1,o=e.length;++r0&&n(s)?t>1?yr(s,t-1,n,r,a):Rt(a,s):r||(a[a.length]=s)}return a}var xr=Na(),br=Na(!0);function wr(e,t){return e&&xr(e,t,Os)}function _r(e,t){return e&&br(e,t,Os)}function Zr(e,t){return Mt(t,(function(t){return Xi(e[t])}))}function Sr(e,t){for(var n=0,r=(t=ba(t,e)).length;null!=e&&nt}function Cr(e,t){return null!=e&&Ne.call(e,t)}function Ar(e,t){return null!=e&&t in Ee(e)}function Mr(e,t,r){for(var o=r?kt:Pt,i=e[0].length,s=e.length,l=s,c=n(s),u=1/0,d=[];l--;){var f=e[l];l&&t&&(f=Ot(f,Qt(t))),u=bn(f.length,u),c[l]=!r&&(t||i>=120&&f.length>=120)?new $n(l&&f):a}f=e[0];var p=-1,h=c[0];e:for(;++p=s?l:l*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}))}function Wr(e,t,n){for(var r=-1,a=t.length,o={};++r-1;)s!==e&&$e.call(s,l,1),$e.call(e,l,1);return e}function Kr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var a=t[n];if(n==r||a!==o){var o=a;bo(a)?$e.call(e,a,1):fa(e,a)}}return e}function $r(e,t){return e+mt(Zn()*(t-e+1))}function Yr(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=mt(t/2))&&(e+=e)}while(t);return n}function Qr(e,t){return Ro(Co(e,t,ol),e+"")}function Jr(e){return Jn(Fs(e))}function Xr(e,t){var n=Fs(e);return Io(n,lr(t,0,n.length))}function ea(e,t,n,r){if(!ns(e))return e;for(var o=-1,i=(t=ba(t,e)).length,s=i-1,l=e;null!=l&&++oo?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var i=n(o);++a>>1,i=e[o];null!==i&&!us(i)&&(n?i<=t:i=200){var c=t?null:Ya(e);if(c)return dn(c);i=!1,a=Xt,l=new $n}else l=t?[]:s;e:for(;++r=r?e:aa(e,t,n)}var Za=lt||function(e){return pt.clearTimeout(e)};function Sa(e,t){if(t)return e.slice();var n=e.length,r=Ge?Ge(n):new e.constructor(n);return e.copy(r),r}function ja(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function Ea(e,t){var n=t?ja(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ta(e,t){if(e!==t){var n=e!==a,r=null===e,o=e===e,i=us(e),s=t!==a,l=null===t,c=t===t,u=us(t);if(!l&&!u&&!i&&e>t||i&&s&&c&&!l&&!u||r&&s&&c||!n&&c||!o)return 1;if(!r&&!i&&!u&&e1?n[o-1]:a,s=o>2?n[2]:a;for(i=e.length>3&&"function"==typeof i?(o--,i):a,s&&wo(n[0],n[1],s)&&(i=o<3?a:i,o=1),t=Ee(t);++r-1?o[i?t[s]:s]:a}}function Ba(e){return ro((function(t){var n=t.length,r=n,i=Vn.prototype.thru;for(e&&t.reverse();r--;){var s=t[r];if("function"!=typeof s)throw new Ae(o);if(i&&!l&&"wrapper"==so(s))var l=new Vn([],!0)}for(r=l?r:n;++r1&&x.reverse(),p&&ul))return!1;var u=i.get(e),d=i.get(t);if(u&&d)return u==t&&d==e;var f=-1,p=!0,h=2&n?new $n:a;for(i.set(e,t),i.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(le,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Tt(g,(function(n){var r="_."+n[0];t&n[1]&&!Pt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(ce);return t?t[1].split(ue):[]}(r),n)))}function zo(e){var t=0,n=0;return function(){var r=wn(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function Io(e,t){var n=-1,r=e.length,o=r-1;for(t=t===a?r:t;++n1?e[t-1]:a;return n="function"==typeof n?(e.pop(),n):a,si(e,n)}));function hi(e){var t=Hn(e);return t.__chain__=!0,t}function mi(e,t){return t(e)}var vi=ro((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return sr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Gn&&bo(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:mi,args:[o],thisArg:a}),new Vn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(a),e}))):this.thru(o)}));var gi=ka((function(e,t,n){Ne.call(e,n)?++e[n]:ir(e,n,1)}));var yi=Da(Go),xi=Da(Wo);function bi(e,t){return(Wi(e)?Tt:pr)(e,co(t,3))}function wi(e,t){return(Wi(e)?Ct:hr)(e,co(t,3))}var _i=ka((function(e,t,n){Ne.call(e,n)?e[n].push(t):ir(e,n,[t])}));var Zi=Qr((function(e,t,r){var a=-1,o="function"==typeof t,i=Ki(e)?n(e.length):[];return pr(e,(function(e){i[++a]=o?jt(t,e,r):Pr(e,t,r)})),i})),Si=ka((function(e,t,n){ir(e,n,t)}));function ji(e,t){return(Wi(e)?Ot:Br)(e,co(t,3))}var Ei=ka((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Ti=Qr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&wo(e,t[0],t[1])?t=[]:n>2&&wo(t[0],t[1],t[2])&&(t=[t[0]]),Gr(e,yr(t,1),[])})),Ci=dt||function(){return pt.Date.now()};function Ai(e,t,n){return t=n?a:t,t=e&&null==t?e.length:t,Ja(e,d,a,a,a,a,t)}function Mi(e,t){var n;if("function"!=typeof t)throw new Ae(o);return e=vs(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var Pi=Qr((function(e,t,n){var r=1;if(n.length){var a=un(n,lo(Pi));r|=c}return Ja(e,r,t,n,a)})),ki=Qr((function(e,t,n){var r=3;if(n.length){var a=un(n,lo(ki));r|=c}return Ja(t,r,e,n,a)}));function Oi(e,t,n){var r,i,s,l,c,u,d=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new Ae(o);function m(t){var n=r,o=i;return r=i=a,d=t,l=e.apply(o,n)}function v(e){return d=e,c=Oo(y,t),f?m(e):l}function g(e){var n=e-u;return u===a||n>=t||n<0||p&&e-d>=s}function y(){var e=Ci();if(g(e))return x(e);c=Oo(y,function(e){var n=t-(e-u);return p?bn(n,s-(e-d)):n}(e))}function x(e){return c=a,h&&r?m(e):(r=i=a,l)}function b(){var e=Ci(),n=g(e);if(r=arguments,i=this,u=e,n){if(c===a)return v(u);if(p)return Za(c),c=Oo(y,t),m(u)}return c===a&&(c=Oo(y,t)),l}return t=ys(t)||0,ns(n)&&(f=!!n.leading,s=(p="maxWait"in n)?xn(ys(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),b.cancel=function(){c!==a&&Za(c),d=0,r=u=i=c=a},b.flush=function(){return c===a?l:x(Ci())},b}var Ri=Qr((function(e,t){return dr(e,1,t)})),Ni=Qr((function(e,t,n){return dr(e,ys(t)||0,n)}));function zi(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ae(o);var n=function n(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(zi.Cache||Kn),n}function Ii(e){if("function"!=typeof e)throw new Ae(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}zi.Cache=Kn;var Li=wa((function(e,t){var n=(t=1==t.length&&Wi(t[0])?Ot(t[0],Qt(co())):Ot(yr(t,1),Qt(co()))).length;return Qr((function(r){for(var a=-1,o=bn(r.length,n);++a=t})),Gi=kr(function(){return arguments}())?kr:function(e){return rs(e)&&Ne.call(e,"callee")&&!Ke.call(e,"callee")},Wi=n.isArray,qi=xt?Qt(xt):function(e){return rs(e)&&Er(e)==R};function Ki(e){return null!=e&&ts(e.length)&&!Xi(e)}function $i(e){return rs(e)&&Ki(e)}var Yi=yt||yl,Qi=bt?Qt(bt):function(e){return rs(e)&&Er(e)==w};function Ji(e){if(!rs(e))return!1;var t=Er(e);return t==_||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!is(e)}function Xi(e){if(!ns(e))return!1;var t=Er(e);return t==Z||t==S||"[object AsyncFunction]"==t||"[object Proxy]"==t}function es(e){return"number"==typeof e&&e==vs(e)}function ts(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function ns(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function rs(e){return null!=e&&"object"==typeof e}var as=wt?Qt(wt):function(e){return rs(e)&&vo(e)==j};function os(e){return"number"==typeof e||rs(e)&&Er(e)==E}function is(e){if(!rs(e)||Er(e)!=T)return!1;var t=We(e);if(null===t)return!0;var n=Ne.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Re.call(n)==De}var ss=_t?Qt(_t):function(e){return rs(e)&&Er(e)==A};var ls=Zt?Qt(Zt):function(e){return rs(e)&&vo(e)==M};function cs(e){return"string"==typeof e||!Wi(e)&&rs(e)&&Er(e)==P}function us(e){return"symbol"==typeof e||rs(e)&&Er(e)==k}var ds=St?Qt(St):function(e){return rs(e)&&ts(e.length)&&!!it[Er(e)]};var fs=qa(Dr),ps=qa((function(e,t){return e<=t}));function hs(e){if(!e)return[];if(Ki(e))return cs(e)?hn(e):Ma(e);if(Qe&&e[Qe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Qe]());var t=vo(e);return(t==j?ln:t==M?dn:Fs)(e)}function ms(e){return e?(e=ys(e))===p||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}function vs(e){var t=ms(e),n=t%1;return t===t?n?t-n:t:0}function gs(e){return e?lr(vs(e),0,v):0}function ys(e){if("number"==typeof e)return e;if(us(e))return m;if(ns(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=ns(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Yt(e);var n=ge.test(e);return n||xe.test(e)?ut(e.slice(2),n?2:8):ve.test(e)?m:+e}function xs(e){return Pa(e,Rs(e))}function bs(e){return null==e?"":ua(e)}var ws=Oa((function(e,t){if(jo(t)||Ki(t))Pa(t,Os(t),e);else for(var n in t)Ne.call(t,n)&&nr(e,n,t[n])})),_s=Oa((function(e,t){Pa(t,Rs(t),e)})),Zs=Oa((function(e,t,n,r){Pa(t,Rs(t),e,r)})),Ss=Oa((function(e,t,n,r){Pa(t,Os(t),e,r)})),js=ro(sr);var Es=Qr((function(e,t){e=Ee(e);var n=-1,r=t.length,o=r>2?t[2]:a;for(o&&wo(t[0],t[1],o)&&(r=1);++n1),t})),Pa(e,oo(e),n),r&&(n=cr(n,7,to));for(var a=t.length;a--;)fa(n,t[a]);return n}));var Ls=ro((function(e,t){return null==e?{}:function(e,t){return Wr(e,t,(function(t,n){return As(e,n)}))}(e,t)}));function Ds(e,t){if(null==e)return{};var n=Ot(oo(e),(function(e){return[e]}));return t=co(t),Wr(e,n,(function(e,n){return t(e,n[0])}))}var Bs=Qa(Os),Hs=Qa(Rs);function Fs(e){return null==e?[]:Jt(e,Os(e))}var Us=Ia((function(e,t,n){return t=t.toLowerCase(),e+(n?Vs(t):t)}));function Vs(e){return Js(bs(e).toLowerCase())}function Gs(e){return(e=bs(e))&&e.replace(we,rn).replace(Xe,"")}var Ws=Ia((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),qs=Ia((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Ks=za("toLowerCase");var $s=Ia((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ys=Ia((function(e,t,n){return e+(n?" ":"")+Js(t)}));var Qs=Ia((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Js=za("toUpperCase");function Xs(e,t,n){return e=bs(e),(t=n?a:t)===a?function(e){return rt.test(e)}(e)?function(e){return e.match(tt)||[]}(e):function(e){return e.match(de)||[]}(e):e.match(t)||[]}var el=Qr((function(e,t){try{return jt(e,a,t)}catch(n){return Ji(n)?n:new se(n)}})),tl=ro((function(e,t){return Tt(t,(function(t){t=Do(t),ir(e,t,Pi(e[t],e))})),e}));function nl(e){return function(){return e}}var rl=Ba(),al=Ba(!0);function ol(e){return e}function il(e){return zr("function"==typeof e?e:cr(e,1))}var sl=Qr((function(e,t){return function(n){return Pr(n,e,t)}})),ll=Qr((function(e,t){return function(n){return Pr(e,n,t)}}));function cl(e,t,n){var r=Os(t),a=Zr(t,r);null!=n||ns(t)&&(a.length||!r.length)||(n=t,t=e,e=this,a=Zr(t,Os(t)));var o=!(ns(n)&&"chain"in n)||!!n.chain,i=Xi(e);return Tt(a,(function(n){var r=t[n];e[n]=r,i&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),a=n.__actions__=Ma(this.__actions__);return a.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Rt([this.value()],arguments))})})),e}function ul(){}var dl=Va(Ot),fl=Va(At),pl=Va(It);function hl(e){return _o(e)?Gt(Do(e)):function(e){return function(t){return Sr(t,e)}}(e)}var ml=Wa(),vl=Wa(!0);function gl(){return[]}function yl(){return!1}var xl=Ua((function(e,t){return e+t}),0),bl=$a("ceil"),wl=Ua((function(e,t){return e/t}),1),_l=$a("floor");var Zl=Ua((function(e,t){return e*t}),1),Sl=$a("round"),jl=Ua((function(e,t){return e-t}),0);return Hn.after=function(e,t){if("function"!=typeof t)throw new Ae(o);return e=vs(e),function(){if(--e<1)return t.apply(this,arguments)}},Hn.ary=Ai,Hn.assign=ws,Hn.assignIn=_s,Hn.assignInWith=Zs,Hn.assignWith=Ss,Hn.at=js,Hn.before=Mi,Hn.bind=Pi,Hn.bindAll=tl,Hn.bindKey=ki,Hn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Wi(e)?e:[e]},Hn.chain=hi,Hn.chunk=function(e,t,r){t=(r?wo(e,t,r):t===a)?1:xn(vs(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var i=0,s=0,l=n(ht(o/t));io?0:o+n),(r=r===a||r>o?o:vs(r))<0&&(r+=o),r=n>r?0:gs(r);n>>0)?(e=bs(e))&&("string"==typeof t||null!=t&&!ss(t))&&!(t=ua(t))&&sn(e)?_a(hn(e),0,n):e.split(t,n):[]},Hn.spread=function(e,t){if("function"!=typeof e)throw new Ae(o);return t=null==t?0:xn(vs(t),0),Qr((function(n){var r=n[t],a=_a(n,0,t);return r&&Rt(a,r),jt(e,this,a)}))},Hn.tail=function(e){var t=null==e?0:e.length;return t?aa(e,1,t):[]},Hn.take=function(e,t,n){return e&&e.length?aa(e,0,(t=n||t===a?1:vs(t))<0?0:t):[]},Hn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?aa(e,(t=r-(t=n||t===a?1:vs(t)))<0?0:t,r):[]},Hn.takeRightWhile=function(e,t){return e&&e.length?ha(e,co(t,3),!1,!0):[]},Hn.takeWhile=function(e,t){return e&&e.length?ha(e,co(t,3)):[]},Hn.tap=function(e,t){return t(e),e},Hn.throttle=function(e,t,n){var r=!0,a=!0;if("function"!=typeof e)throw new Ae(o);return ns(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),Oi(e,t,{leading:r,maxWait:t,trailing:a})},Hn.thru=mi,Hn.toArray=hs,Hn.toPairs=Bs,Hn.toPairsIn=Hs,Hn.toPath=function(e){return Wi(e)?Ot(e,Do):us(e)?[e]:Ma(Lo(bs(e)))},Hn.toPlainObject=xs,Hn.transform=function(e,t,n){var r=Wi(e),a=r||Yi(e)||ds(e);if(t=co(t,4),null==n){var o=e&&e.constructor;n=a?r?new o:[]:ns(e)&&Xi(o)?Fn(We(e)):{}}return(a?Tt:wr)(e,(function(e,r,a){return t(n,e,r,a)})),n},Hn.unary=function(e){return Ai(e,1)},Hn.union=ri,Hn.unionBy=ai,Hn.unionWith=oi,Hn.uniq=function(e){return e&&e.length?da(e):[]},Hn.uniqBy=function(e,t){return e&&e.length?da(e,co(t,2)):[]},Hn.uniqWith=function(e,t){return t="function"==typeof t?t:a,e&&e.length?da(e,a,t):[]},Hn.unset=function(e,t){return null==e||fa(e,t)},Hn.unzip=ii,Hn.unzipWith=si,Hn.update=function(e,t,n){return null==e?e:pa(e,t,xa(n))},Hn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:a,null==e?e:pa(e,t,xa(n),r)},Hn.values=Fs,Hn.valuesIn=function(e){return null==e?[]:Jt(e,Rs(e))},Hn.without=li,Hn.words=Xs,Hn.wrap=function(e,t){return Di(xa(t),e)},Hn.xor=ci,Hn.xorBy=ui,Hn.xorWith=di,Hn.zip=fi,Hn.zipObject=function(e,t){return ga(e||[],t||[],nr)},Hn.zipObjectDeep=function(e,t){return ga(e||[],t||[],ea)},Hn.zipWith=pi,Hn.entries=Bs,Hn.entriesIn=Hs,Hn.extend=_s,Hn.extendWith=Zs,cl(Hn,Hn),Hn.add=xl,Hn.attempt=el,Hn.camelCase=Us,Hn.capitalize=Vs,Hn.ceil=bl,Hn.clamp=function(e,t,n){return n===a&&(n=t,t=a),n!==a&&(n=(n=ys(n))===n?n:0),t!==a&&(t=(t=ys(t))===t?t:0),lr(ys(e),t,n)},Hn.clone=function(e){return cr(e,4)},Hn.cloneDeep=function(e){return cr(e,5)},Hn.cloneDeepWith=function(e,t){return cr(e,5,t="function"==typeof t?t:a)},Hn.cloneWith=function(e,t){return cr(e,4,t="function"==typeof t?t:a)},Hn.conformsTo=function(e,t){return null==t||ur(e,t,Os(t))},Hn.deburr=Gs,Hn.defaultTo=function(e,t){return null==e||e!==e?t:e},Hn.divide=wl,Hn.endsWith=function(e,t,n){e=bs(e),t=ua(t);var r=e.length,o=n=n===a?r:lr(vs(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},Hn.eq=Fi,Hn.escape=function(e){return(e=bs(e))&&Q.test(e)?e.replace($,an):e},Hn.escapeRegExp=function(e){return(e=bs(e))&&oe.test(e)?e.replace(ae,"\\$&"):e},Hn.every=function(e,t,n){var r=Wi(e)?At:mr;return n&&wo(e,t,n)&&(t=a),r(e,co(t,3))},Hn.find=yi,Hn.findIndex=Go,Hn.findKey=function(e,t){return Dt(e,co(t,3),wr)},Hn.findLast=xi,Hn.findLastIndex=Wo,Hn.findLastKey=function(e,t){return Dt(e,co(t,3),_r)},Hn.floor=_l,Hn.forEach=bi,Hn.forEachRight=wi,Hn.forIn=function(e,t){return null==e?e:xr(e,co(t,3),Rs)},Hn.forInRight=function(e,t){return null==e?e:br(e,co(t,3),Rs)},Hn.forOwn=function(e,t){return e&&wr(e,co(t,3))},Hn.forOwnRight=function(e,t){return e&&_r(e,co(t,3))},Hn.get=Cs,Hn.gt=Ui,Hn.gte=Vi,Hn.has=function(e,t){return null!=e&&go(e,t,Cr)},Hn.hasIn=As,Hn.head=Ko,Hn.identity=ol,Hn.includes=function(e,t,n,r){e=Ki(e)?e:Fs(e),n=n&&!r?vs(n):0;var a=e.length;return n<0&&(n=xn(a+n,0)),cs(e)?n<=a&&e.indexOf(t,n)>-1:!!a&&Ht(e,t,n)>-1},Hn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:vs(n);return a<0&&(a=xn(r+a,0)),Ht(e,t,a)},Hn.inRange=function(e,t,n){return t=ms(t),n===a?(n=t,t=0):n=ms(n),function(e,t,n){return e>=bn(t,n)&&e=-9007199254740991&&e<=h},Hn.isSet=ls,Hn.isString=cs,Hn.isSymbol=us,Hn.isTypedArray=ds,Hn.isUndefined=function(e){return e===a},Hn.isWeakMap=function(e){return rs(e)&&vo(e)==O},Hn.isWeakSet=function(e){return rs(e)&&"[object WeakSet]"==Er(e)},Hn.join=function(e,t){return null==e?"":Wt.call(e,t)},Hn.kebabCase=Ws,Hn.last=Jo,Hn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return n!==a&&(o=(o=vs(n))<0?xn(r+o,0):bn(o,r-1)),t===t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):Bt(e,Ut,o,!0)},Hn.lowerCase=qs,Hn.lowerFirst=Ks,Hn.lt=fs,Hn.lte=ps,Hn.max=function(e){return e&&e.length?vr(e,ol,Tr):a},Hn.maxBy=function(e,t){return e&&e.length?vr(e,co(t,2),Tr):a},Hn.mean=function(e){return Vt(e,ol)},Hn.meanBy=function(e,t){return Vt(e,co(t,2))},Hn.min=function(e){return e&&e.length?vr(e,ol,Dr):a},Hn.minBy=function(e,t){return e&&e.length?vr(e,co(t,2),Dr):a},Hn.stubArray=gl,Hn.stubFalse=yl,Hn.stubObject=function(){return{}},Hn.stubString=function(){return""},Hn.stubTrue=function(){return!0},Hn.multiply=Zl,Hn.nth=function(e,t){return e&&e.length?Vr(e,vs(t)):a},Hn.noConflict=function(){return pt._===this&&(pt._=Be),this},Hn.noop=ul,Hn.now=Ci,Hn.pad=function(e,t,n){e=bs(e);var r=(t=vs(t))?pn(e):0;if(!t||r>=t)return e;var a=(t-r)/2;return Ga(mt(a),n)+e+Ga(ht(a),n)},Hn.padEnd=function(e,t,n){e=bs(e);var r=(t=vs(t))?pn(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=Zn();return bn(e+o*(t-e+ct("1e-"+((o+"").length-1))),t)}return $r(e,t)},Hn.reduce=function(e,t,n){var r=Wi(e)?Nt:qt,a=arguments.length<3;return r(e,co(t,4),n,a,pr)},Hn.reduceRight=function(e,t,n){var r=Wi(e)?zt:qt,a=arguments.length<3;return r(e,co(t,4),n,a,hr)},Hn.repeat=function(e,t,n){return t=(n?wo(e,t,n):t===a)?1:vs(t),Yr(bs(e),t)},Hn.replace=function(){var e=arguments,t=bs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Hn.result=function(e,t,n){var r=-1,o=(t=ba(t,e)).length;for(o||(o=1,e=a);++rh)return[];var n=v,r=bn(e,v);t=co(t),e-=v;for(var a=$t(r,t);++n=i)return e;var l=n-pn(r);if(l<1)return r;var c=s?_a(s,0,l).join(""):e.slice(0,l);if(o===a)return c+r;if(s&&(l+=c.length-l),ss(o)){if(e.slice(l).search(o)){var u,d=c;for(o.global||(o=Te(o.source,bs(me.exec(o))+"g")),o.lastIndex=0;u=o.exec(d);)var f=u.index;c=c.slice(0,f===a?l:f)}}else if(e.indexOf(ua(o),l)!=l){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+r},Hn.unescape=function(e){return(e=bs(e))&&Y.test(e)?e.replace(K,vn):e},Hn.uniqueId=function(e){var t=++ze;return bs(e)+t},Hn.upperCase=Qs,Hn.upperFirst=Js,Hn.each=bi,Hn.eachRight=wi,Hn.first=Ko,cl(Hn,function(){var e={};return wr(Hn,(function(t,n){Ne.call(Hn.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),Hn.VERSION="4.17.21",Tt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Hn[e].placeholder=Hn})),Tt(["drop","take"],(function(e,t){Gn.prototype[e]=function(n){n=n===a?1:xn(vs(n),0);var r=this.__filtered__&&!t?new Gn(this):this.clone();return r.__filtered__?r.__takeCount__=bn(n,r.__takeCount__):r.__views__.push({size:bn(n,v),type:e+(r.__dir__<0?"Right":"")}),r},Gn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Tt(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Gn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:co(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Tt(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Gn.prototype[e]=function(){return this[n](1).value()[0]}})),Tt(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Gn.prototype[e]=function(){return this.__filtered__?new Gn(this):this[n](1)}})),Gn.prototype.compact=function(){return this.filter(ol)},Gn.prototype.find=function(e){return this.filter(e).head()},Gn.prototype.findLast=function(e){return this.reverse().find(e)},Gn.prototype.invokeMap=Qr((function(e,t){return"function"==typeof e?new Gn(this):this.map((function(n){return Pr(n,e,t)}))})),Gn.prototype.reject=function(e){return this.filter(Ii(co(e)))},Gn.prototype.slice=function(e,t){e=vs(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Gn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==a&&(n=(t=vs(t))<0?n.dropRight(-t):n.take(t-e)),n)},Gn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Gn.prototype.toArray=function(){return this.take(v)},wr(Gn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=Hn[r?"take"+("last"==t?"Right":""):t],i=r||/^find/.test(t);o&&(Hn.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof Gn,c=s[0],u=l||Wi(t),d=function(e){var t=o.apply(Hn,Rt([e],s));return r&&f?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var f=this.__chain__,p=!!this.__actions__.length,h=i&&!f,m=l&&!p;if(!i&&u){t=m?t:new Gn(this);var v=e.apply(t,s);return v.__actions__.push({func:mi,args:[d],thisArg:a}),new Vn(v,f)}return h&&m?e.apply(this,s):(v=this.thru(d),h?r?v.value()[0]:v.value():v)})})),Tt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Me[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Hn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var a=this.value();return t.apply(Wi(a)?a:[],e)}return this[n]((function(n){return t.apply(Wi(n)?n:[],e)}))}})),wr(Gn.prototype,(function(e,t){var n=Hn[t];if(n){var r=n.name+"";Ne.call(kn,r)||(kn[r]=[]),kn[r].push({name:t,func:n})}})),kn[Ha(a,2).name]=[{name:"wrapper",func:a}],Gn.prototype.clone=function(){var e=new Gn(this.__wrapped__);return e.__actions__=Ma(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ma(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ma(this.__views__),e},Gn.prototype.reverse=function(){if(this.__filtered__){var e=new Gn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Gn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Wi(e),r=t<0,a=n?e.length:0,o=function(e,t,n){var r=-1,a=n.length;for(;++r=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},Hn.prototype.plant=function(e){for(var t,n=this;n instanceof Un;){var r=Ho(n);r.__index__=0,r.__values__=a,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},Hn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Gn){var t=e;return this.__actions__.length&&(t=new Gn(this)),(t=t.reverse()).__actions__.push({func:mi,args:[ni],thisArg:a}),new Vn(t,this.__chain__)}return this.thru(ni)},Hn.prototype.toJSON=Hn.prototype.valueOf=Hn.prototype.value=function(){return ma(this.__wrapped__,this.__actions__)},Hn.prototype.first=Hn.prototype.head,Qe&&(Hn.prototype[Qe]=function(){return this}),Hn}();pt._=gn,(r=function(){return gn}.call(t,n,t,e))===a||(e.exports=r)}.call(this)},49151:function(e,t,n){var r=n(78059);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function n(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},63518:function(e,t,n){var r=n(2446);e.exports=function(e){return null==e?"":r(e)}},62409:function(e,t,n){"use strict";n.r(t),n.d(t,{defaultBaseSortFn:function(){return s},matchSorter:function(){return l},rankings:function(){return i}});var r=n(87462),a=n(71515),o=n.n(a),i={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0};l.rankings=i;var s=function(e,t){return String(e.rankedValue).localeCompare(String(t.rankedValue))};function l(e,t,n){void 0===n&&(n={});var a=n,o=a.keys,l=a.threshold,u=void 0===l?i.MATCHES:l,f=a.baseSort,h=void 0===f?s:f,m=a.sorter,v=void 0===m?function(e){return e.sort((function(e,t){return function(e,t,n){var r=-1,a=1,o=e.rank,i=e.keyIndex,s=t.rank,l=t.keyIndex;return o===s?i===l?n(e,t):is?r:a}(e,t,h)}))}:m,g=e.reduce((function(e,a,s){var l=function(e,t,n,r){if(!t){return{rankedValue:e,rank:c(e,n,r),keyIndex:-1,keyThreshold:r.threshold}}return function(e,t){for(var n=[],r=0,a=t.length;r=i.MATCHES?p=m:p>v&&(p=v),p>o&&(o=p,l=a,u=g,h=d),{rankedValue:h,rank:o,keyIndex:l,keyThreshold:u}}),{rankedValue:e,rank:i.NO_MATCH,keyIndex:-1,keyThreshold:r.threshold})}(a,o,t,n),f=l.rank,h=l.keyThreshold;f>=(void 0===h?u:h)&&e.push((0,r.Z)({},l,{item:a,index:s}));return e}),[]);return v(g).map((function(e){return e.item}))}function c(e,t,n){return e=u(e,n),(t=u(t,n)).length>e.length?i.NO_MATCH:e===t?i.CASE_SENSITIVE_EQUAL:(e=e.toLowerCase())===(t=t.toLowerCase())?i.EQUAL:e.startsWith(t)?i.STARTS_WITH:e.includes(" "+t)?i.WORD_STARTS_WITH:e.includes(t)?i.CONTAINS:1===t.length?i.NO_MATCH:function(e){var t="";return e.split(" ").forEach((function(e){e.split("-").forEach((function(e){t+=e.substr(0,1)}))})),t}(e).includes(t)?i.ACRONYM:function(e,t){var n=0,r=0;function a(e,t,r){for(var a=r,o=t.length;a-1))return i.NO_MATCH}return o(r-s)}(e,t)}function u(e,t){return e=""+e,t.keepDiacritics||(e=o()(e)),e}function d(e,t){var n;if("object"===typeof t&&(t=t.key),"function"===typeof t)n=t(e);else if(null==e)n=null;else if(Object.hasOwnProperty.call(e,t))n=e[t];else{if(t.includes("."))return function(e,t){for(var n=e.split("."),r=[t],a=0,o=n.length;a-1e3&&e<1e3||_.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-E(-e):E(e);if(r!==e){var a=String(r),o=y.call(t,a.length+1);return x.call(a,n,"$&_")+"."+x.call(x.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return x.call(t,n,"$&_")}var N=n(24654).custom,z=N&&B(N)?N:null;function I(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function L(e){return x.call(String(e),/"/g,""")}function D(e){return"[object Array]"===U(e)&&(!P||!("object"===typeof e&&P in e))}function B(e){if(M)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!A)return!1;try{return A.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,r,a){var s=n||{};if(F(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(F(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var l=!F(s,"customInspect")||s.customInspect;if("boolean"!==typeof l&&"symbol"!==l)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(F(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(F(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var m=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return G(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var b=String(t);return m?R(t,b):b}if("bigint"===typeof t){var _=String(t)+"n";return m?R(t,_):_}var E="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof r&&(r=0),r>=E&&E>0&&"object"===typeof t)return D(t)?"[Array]":"[Object]";var C=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=S.call(Array(e.indent+1)," ")}return{base:n,prev:S.call(Array(t+1),n)}}(s,r);if("undefined"===typeof a)a=[];else if(V(a,t)>=0)return"[Circular]";function N(t,n,o){if(n&&(a=j.call(a)).push(n),o){var i={depth:s.depth};return F(s,"quoteStyle")&&(i.quoteStyle=s.quoteStyle),e(t,i,r+1,a)}return e(t,s,r+1,a)}if("function"===typeof t){var H=function(e){if(e.name)return e.name;var t=g.call(v.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),W=Q(t,N);return"[Function"+(H?": "+H:" (anonymous)")+"]"+(W.length>0?" { "+S.call(W,", ")+" }":"")}if(B(t)){var J=M?x.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):A.call(t);return"object"!==typeof t||M?J:q(J)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var X="<"+w.call(String(t.nodeName)),ee=t.attributes||[],te=0;te"}if(D(t)){if(0===t.length)return"[]";var ne=Q(t,N);return C&&!function(e){for(var t=0;t=0)return!1;return!0}(ne)?"["+Y(ne,C)+"]":"[ "+S.call(ne,", ")+" ]"}if(function(e){return"[object Error]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t)){var re=Q(t,N);return"cause"in t&&!k.call(t,"cause")?"{ ["+String(t)+"] "+S.call(Z.call("[cause]: "+N(t.cause),re),", ")+" }":0===re.length?"["+String(t)+"]":"{ ["+String(t)+"] "+S.call(re,", ")+" }"}if("object"===typeof t&&l){if(z&&"function"===typeof t[z])return t[z]();if("symbol"!==l&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!==typeof e)return!1;try{o.call(e);try{c.call(e)}catch(X){return!0}return e instanceof Map}catch(t){}return!1}(t)){var ae=[];return i.call(t,(function(e,n){ae.push(N(n,t,!0)+" => "+N(e,t))})),$("Map",o.call(t),ae,C)}if(function(e){if(!c||!e||"object"!==typeof e)return!1;try{c.call(e);try{o.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var oe=[];return u.call(t,(function(e){oe.push(N(e,t))})),$("Set",c.call(t),oe,C)}if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{f.call(e,f)}catch(X){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return K("WeakMap");if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{f.call(e,f);try{d.call(e,d)}catch(X){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return K("WeakSet");if(function(e){if(!p||!e||"object"!==typeof e)return!1;try{return p.call(e),!0}catch(t){}return!1}(t))return K("WeakRef");if(function(e){return"[object Number]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t))return q(N(Number(t)));if(function(e){if(!e||"object"!==typeof e||!T)return!1;try{return T.call(e),!0}catch(t){}return!1}(t))return q(N(T.call(t)));if(function(e){return"[object Boolean]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t))return q(h.call(t));if(function(e){return"[object String]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t))return q(N(String(t)));if(!function(e){return"[object Date]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t)&&!function(e){return"[object RegExp]"===U(e)&&(!P||!("object"===typeof e&&P in e))}(t)){var ie=Q(t,N),se=O?O(t)===Object.prototype:t instanceof Object||t.constructor===Object,le=t instanceof Object?"":"null prototype",ce=!se&&P&&Object(t)===t&&P in t?y.call(U(t),8,-1):le?"Object":"",ue=(se||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(ce||le?"["+S.call(Z.call([],ce||[],le||[]),": ")+"] ":"");return 0===ie.length?ue+"{}":C?ue+"{"+Y(ie,C)+"}":ue+"{ "+S.call(ie,", ")+" }"}return String(t)};var H=Object.prototype.hasOwnProperty||function(e){return e in this};function F(e,t){return H.call(e,t)}function U(e){return m.call(e)}function V(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return G(y.call(e,0,t.maxStringLength),t)+r}return I(x.call(x.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,W),"single",t)}function W(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+b.call(t.toString(16))}function q(e){return"Object("+e+")"}function K(e){return e+" { ? }"}function $(e,t,n,r){return e+" ("+t+") {"+(r?Y(n,r):S.call(n,", "))+"}"}function Y(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+S.call(e,","+n)+"\n"+t.prev}function Q(e,t){var n=D(e),r=[];if(n){r.length=e.length;for(var a=0;a
    \n )}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { selectorTypes } from \"../SelectWrapper/SelectWrapper\";\nimport { Menu, MenuItem } from \"@mui/material\";\n\ninterface IInputUnitBox {\n classes: any;\n id: string;\n unitSelected: string;\n unitsList: selectorTypes[];\n disabled?: boolean;\n onUnitChange?: (newValue: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonTrigger: {\n border: \"#F0F2F2 1px solid\",\n borderRadius: 3,\n color: \"#838383\",\n backgroundColor: \"#fff\",\n fontSize: 12,\n },\n });\n\nconst InputUnitMenu = ({\n classes,\n id,\n unitSelected,\n unitsList,\n disabled = false,\n onUnitChange,\n}: IInputUnitBox) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (newUnit: string) => {\n setAnchorEl(null);\n if (newUnit !== \"\" && onUnitChange) {\n onUnitChange(newUnit);\n }\n };\n\n return (\n \n \n {unitSelected}\n \n {\n handleClose(\"\");\n }}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"center\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"center\",\n }}\n >\n {unitsList.map((unit) => (\n handleClose(unit.value)}\n key={`itemUnit-${unit.value}-${unit.label}`}\n >\n {unit.label}\n \n ))}\n \n \n );\n};\n\nexport default withStyles(styles)(InputUnitMenu);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 from \"@mui/material/Grid\";\nimport {\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n InputBase,\n Tooltip,\n SelectChangeEvent,\n} from \"@mui/material\";\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 HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface selectorTypes {\n label: string;\n value: string;\n}\n\ninterface SelectProps {\n options: selectorTypes[];\n value: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n onChange: (e: SelectChangeEvent) => void;\n disabled?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n fieldContainer: {\n display: \"flex\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n height: 38,\n lineHeight: 1,\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n },\n input: {\n height: 38,\n position: \"relative\",\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n padding: \"8px 20px 10px 10px\",\n border: \"#e5e5e5 1px solid\",\n borderRadius: 4,\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n borderColor: \"#393939\",\n },\n \"&:focus\": {\n backgroundColor: \"#fff\",\n },\n },\n })\n)(InputBase);\n\nconst SelectWrapper = ({\n classes,\n id,\n name,\n onChange,\n options,\n label,\n tooltip = \"\",\n value,\n disabled = false,\n}: SelectProps) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n )}\n \n }\n disabled={disabled}\n >\n {options.map((option) => (\n \n {option.label}\n \n ))}\n \n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(SelectWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\n// This object contains variables that will be used across form components.\n\nconst inputLabelBase = {\n fontWeight: 600,\n marginRight: 10,\n fontSize: 14,\n color: \"#07193E\",\n textAlign: \"left\" as const,\n overflow: \"hidden\",\n alignItems: \"center\",\n display: \"flex\",\n \"& span\": {\n display: \"flex\",\n alignItems: \"center\",\n },\n};\n\nexport const fieldBasic: any = {\n inputLabel: {\n ...inputLabelBase,\n minWidth: 160,\n },\n noMinWidthLabel: {\n ...inputLabelBase,\n },\n fieldLabelError: {\n paddingBottom: 22,\n },\n fieldContainer: {\n marginBottom: 20,\n position: \"relative\" as const,\n display: \"flex\" as const,\n flexWrap: \"wrap\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n tooltipContainer: {\n marginLeft: 5,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n width: 13,\n },\n },\n switchContainer: {\n display: \"flex\",\n maxWidth: 840,\n },\n};\n\nexport const modalBasic = {\n formScrollable: {\n maxHeight: \"calc(100vh - 300px)\" as const,\n overflowY: \"auto\" as const,\n marginBottom: 25,\n },\n formSlider: {\n marginLeft: 0,\n },\n clearButton: {\n fontFamily: \"Lato, sans-serif\",\n border: \"0\",\n backgroundColor: \"transparent\",\n color: \"#393939\",\n fontWeight: 600,\n fontSize: 14,\n marginRight: 10,\n outline: \"0\",\n padding: \"16px 25px 16px 25px\",\n cursor: \"pointer\",\n },\n floatingEnabled: {\n position: \"absolute\" as const,\n right: 58,\n zIndex: 1000,\n marginTop: -38,\n },\n configureString: {\n border: \"#EAEAEA 1px solid\",\n borderRadius: 4,\n padding: \"24px 50px\",\n overflowY: \"auto\" as const,\n height: 170,\n backgroundColor: \"#FBFAFA\",\n },\n moduleDescription: {\n color: \"#848484\",\n fontSize: 12,\n fontStyle: \"italic\" as string,\n },\n};\n\nexport const tooltipHelper = {\n tooltip: {\n \"& .min-icon\": {\n width: 13,\n },\n },\n};\n\nconst checkBoxBasic = {\n width: 16,\n height: 16,\n borderRadius: 2,\n};\n\nexport const checkboxIcons = {\n unCheckedIcon: {\n ...checkBoxBasic,\n border: \"1px solid #c3c3c3\",\n boxShadow: \"inset 0px 1px 3px rgba(0,0,0,0.1)\",\n },\n checkedIcon: {\n ...checkBoxBasic,\n border: \"1px solid #FFFFFF\",\n backgroundColor: \"#4CCB92\",\n boxShadow: \"inset 0px 1px 3px rgba(0,0,0,0.1)\",\n width: 14,\n height: 14,\n marginLeft: 1,\n \"&:before\": {\n content: \"''\",\n display: \"block\",\n marginLeft: -2,\n marginTop: -2,\n width: 16,\n height: 16,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n borderRadius: 2,\n border: \"1px solid #ccc\",\n },\n },\n};\n\nconst radioBasic = {\n width: 16,\n height: 16,\n borderRadius: \"100%\",\n \"input:disabled ~ &\": {\n border: \"1px solid #E5E5E5\",\n },\n padding: 1,\n};\n\nexport const radioIcons = {\n radioUnselectedIcon: { ...radioBasic, border: \"2px solid #E5E5E5\" },\n radioSelectedIcon: {\n ...radioBasic,\n border: \"2px solid #E5E5E5\",\n backgroundColor: \"#072C4F\",\n },\n};\n\nexport const containerForHeader = (bottomSpacing: any) => ({\n container: {\n position: \"relative\" as const,\n maxWidth: 1180,\n padding: \"20px 35px 0\",\n \"& h6\": {\n color: \"#777777\",\n fontSize: 30,\n },\n \"& p\": {\n \"& span:not(*[class*='smallUnit'])\": {\n fontSize: 16,\n },\n },\n },\n sectionTitle: {\n margin: 0,\n marginBottom: \".8rem\",\n fontSize: \"1.3rem\",\n },\n topSpacer: {\n height: \"8px\",\n },\n boxy: {\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 40,\n backgroundColor: \"#fff\",\n },\n});\n\nexport const actionsTray = {\n filterTitle: {\n color: \"#848484\",\n fontSize: 13,\n alignSelf: \"center\" as const,\n whiteSpace: \"nowrap\" as const,\n \"&:not(:first-of-type)\": {\n marginLeft: 10,\n },\n },\n label: {\n color: \"#07193E\",\n fontSize: 13,\n alignSelf: \"center\" as const,\n whiteSpace: \"nowrap\" as const,\n \"&:not(:first-of-type)\": {\n marginLeft: 10,\n },\n },\n timeContainers: {\n display: \"flex\" as const,\n \"& button\": {\n flexGrow: 0,\n marginLeft: 15,\n },\n height: 40,\n maxWidth: 1185,\n marginBottom: 15,\n justifyContent: \"flex-start\" as const,\n \"& > *\": {\n marginRight: 15,\n },\n },\n actionsTray: {\n display: \"flex\" as const,\n justifyContent: \"space-between\" as const,\n marginBottom: \"1rem\",\n alignItems: \"center\",\n \"& button\": {\n flexGrow: 0,\n marginLeft: 8,\n },\n },\n filterContainer: {\n backgroundColor: \"#fff\",\n border: \"#EEF1F4 2px solid\",\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n padding: \"0 12px\",\n },\n divisorLine: {\n borderRight: \"#EEF1F4 1px solid\",\n height: 20,\n margin: \"0 15px\",\n },\n};\n\nexport const searchField = {\n searchField: {\n flexGrow: 1,\n height: 38,\n background: \"#FFFFFF\",\n borderRadius: 3,\n border: \"#EAEDEE 1px solid\",\n display: \"flex\",\n justifyContent: \"center\",\n padding: \"0 16px\",\n \"& label, & label.MuiInputLabel-shrink\": {\n fontSize: 10,\n transform: \"translate(5px, 2px)\",\n transformOrigin: \"top left\",\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 700,\n color: \"#000\",\n \"&::placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n \"&:hover\": {\n borderColor: \"#000\",\n },\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n \"&:focus-within\": {\n borderColor: \"rgba(0, 0, 0, 0.87)\",\n },\n },\n};\n\nexport const predefinedList = {\n prefinedContainer: {\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\" as const,\n margin: \"15px 0 0\",\n },\n predefinedTitle: {\n color: \"rgba(0, 0, 0, 0.87)\",\n display: \"flex\" as const,\n overflow: \"hidden\" as const,\n fontSize: 14,\n maxWidth: 160,\n textAlign: \"left\" as const,\n marginRight: 10,\n flexGrow: 0,\n fontWeight: \"normal\" as const,\n },\n predefinedList: {\n backgroundColor: \"#fbfafa\",\n border: \"#e5e5e5 1px solid\",\n padding: \"12px 10px\",\n color: \"#696969\",\n fontSize: 12,\n fontWeight: 600,\n minHeight: 41,\n borderRadius: 4,\n },\n innerContent: {\n width: \"100%\",\n overflowX: \"auto\" as const,\n whiteSpace: \"nowrap\" as const,\n scrollbarWidth: \"none\" as const,\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n },\n },\n innerContentMultiline: {\n width: \"100%\",\n maxHeight: 100,\n overflowY: \"auto\" as const,\n scrollbarWidth: \"none\" as const,\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n },\n },\n};\n\nexport const objectBrowserCommon = {\n obTitleSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n marginBottom: 20,\n },\n sectionTitle: {\n fontSize: 22,\n color: \"#000\",\n fontWeight: 600,\n height: 40,\n lineHeight: \"40px\",\n },\n breadcrumbsMain: {\n display: \"flex\",\n },\n breadcrumbs: {\n fontSize: 12,\n color: \"#969FA8\",\n fontWeight: \"bold\",\n border: \"#EAEDEE 1px solid\",\n height: 38,\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: \"#FCFCFD\",\n marginRight: 10,\n \"& a\": {\n textDecoration: \"none\",\n color: \"#969FA8\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n \"& .min-icon\": {\n width: 16,\n minWidth: 16,\n },\n },\n additionalOptions: {\n paddingRight: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n smallLabel: {\n color: \"#9C9C9C\",\n fontSize: 15,\n },\n bucketDetails: {\n marginLeft: 10,\n fontSize: 14,\n color: \"#969FA8\",\n },\n detailsSpacer: {\n marginRight: 18,\n },\n breadcrumbsList: {\n textOverflow: \"ellipsis\" as const,\n overflow: \"hidden\" as const,\n whiteSpace: \"nowrap\" as const,\n display: \"inline-block\" as const,\n flexGrow: 1,\n textAlign: \"left\" as const,\n marginLeft: 15,\n marginRight: 10,\n },\n};\n\nexport const selectorsCommon = {\n multiSelectTable: {\n height: 200,\n },\n};\n\nexport const settingsCommon: any = {\n customTitle: {\n fontSize: 18,\n color: \"#000\",\n fontWeight: 600,\n padding: \"12px 0\",\n borderBottom: \"#eaedee 1px solid\",\n marginBottom: 10,\n margin: \"15px 38px 27px\",\n },\n settingsFormContainer: {\n padding: 38,\n overflowY: \"auto\" as const,\n scrollbarWidth: \"none\" as const,\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n },\n },\n settingsButtonContainer: {\n padding: \"15px 38px\",\n textAlign: \"right\" as const,\n },\n innerSettingsButtonContainer: {\n maxWidth: 840,\n textAlign: \"right\" as const,\n },\n settingsOptionsContainer: {\n height: \"calc(100vh - 244px)\",\n backgroundColor: \"#fff\",\n border: \"#EAEDEE 1px solid\",\n borderRadius: 3,\n marginTop: 15,\n },\n backButton: {\n cursor: \"pointer\",\n fontSize: 10,\n fontWeight: 600,\n color: \"#000\",\n backgroundColor: \"transparent\",\n border: 0,\n padding: 0,\n display: \"flex\",\n alignItems: \"center\",\n \"&:active, &:focus\": {\n outline: 0,\n },\n \"& svg\": {\n width: 10,\n marginRight: 4,\n },\n },\n backContainer: {\n margin: \"20px 38px 0\",\n },\n mainCont: {\n paddingLeft: 50,\n paddingRight: 50,\n },\n mainTitle: {\n fontSize: 18,\n color: \"#000\",\n fontWeight: 600,\n marginBottom: 10,\n marginTop: 10,\n },\n};\n\nexport const typesSelection = {\n iconContainer: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n maxWidth: 1180,\n justifyContent: \"start\" as const,\n flexWrap: \"wrap\" as const,\n width: \"100%\",\n },\n nonIconContainer: {\n marginBottom: 16,\n width: 455,\n marginTop: 15,\n \"& button\": {\n marginRight: 16,\n },\n },\n pickTitle: {\n fontWeight: 600,\n color: \"#393939\",\n fontSize: 14,\n marginBottom: 16,\n },\n centerElements: {\n display: \"flex\" as const,\n flexDirection: \"column\" as const,\n alignItems: \"center\" as const,\n justifyContent: \"center\" as const,\n },\n logoButton: {\n height: \"80px\",\n },\n lambdaNotif: {\n background: \"#ffffff\",\n border: \"#E5E5E5 1px solid\",\n borderRadius: 5,\n width: 250,\n height: 80,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"start\",\n marginBottom: 16,\n marginRight: 8,\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};\n\nexport const logsCommon = {\n logsSubContainer: {\n height: \"calc(100vh - 230px)\",\n padding: \"15px 0\",\n },\n};\n\nexport const widgetCommon = {\n singleValueContainer: {\n height: 200,\n maxWidth: 1185,\n border: \"#eef1f4 2px solid\",\n backgroundColor: \"#fff\",\n borderRadius: 10,\n width: \"100%\",\n padding: 16,\n },\n titleContainer: {\n color: \"#404143\",\n fontSize: 14,\n textTransform: \"uppercase\" as const,\n fontWeight: 800,\n borderBottom: \"#eef1f4 1px solid\",\n paddingBottom: 14,\n marginBottom: 5,\n display: \"flex\" as const,\n justifyContent: \"space-between\" as const,\n },\n contentContainer: {\n justifyContent: \"center\" as const,\n alignItems: \"center\" as const,\n display: \"flex\" as const,\n width: \"100%\",\n height: 140,\n },\n contentContainerWithLabel: {\n height: \"calc(100% - 25px)\",\n },\n legendBlock: {\n position: \"absolute\" as const,\n bottom: 5,\n display: \"flex\" as const,\n width: \"100%\",\n height: 15,\n flexWrap: \"wrap\" as const,\n overflowY: \"auto\" as const,\n },\n singleLegendContainer: {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"0 10px\",\n maxWidth: \"100%\",\n },\n colorContainer: {\n width: 8,\n height: 8,\n minWidth: 8,\n marginRight: 5,\n },\n legendLabel: {\n fontSize: \"80%\",\n color: \"#393939\",\n whiteSpace: \"nowrap\" as const,\n overflow: \"hidden\" as const,\n textOverflow: \"ellipsis\" as const,\n },\n zoomChartCont: {\n position: \"relative\" as const,\n height: 340,\n width: \"100%\",\n },\n zoomChartIcon: {\n backgroundColor: \"transparent\",\n border: 0,\n padding: 0,\n cursor: \"pointer\",\n \"& svg\": {\n color: \"#D0D0D0\",\n height: 16,\n },\n \"&:hover\": {\n \"& svg\": {\n color: \"#404143\",\n },\n },\n },\n};\n\nexport const widgetContainerCommon = {\n widgetPanelDelimiter: {\n padding: 10,\n },\n dashboardRow: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n justifyContent: \"flex-start\" as const,\n flexWrap: \"wrap\" as const,\n maxWidth: 1180,\n },\n};\n\nexport const tooltipCommon = {\n customTooltip: {\n backgroundColor: \"rgba(255, 255, 255, 0.90)\",\n border: \"#eaeaea 1px solid\",\n borderRadius: 3,\n padding: \"5px 10px\",\n maxHeight: 300,\n overflowY: \"auto\" as const,\n },\n labelContainer: {\n display: \"flex\" as const,\n alignItems: \"center\" as const,\n },\n labelColor: {\n width: 6,\n height: 6,\n display: \"block\" as const,\n borderRadius: \"100%\",\n marginRight: 5,\n },\n itemValue: {\n fontSize: \"75%\",\n color: \"#393939\",\n },\n valueContainer: {\n fontWeight: 600,\n },\n timeStampTitle: {\n fontSize: \"80%\",\n color: \"#9c9c9c\",\n textAlign: \"center\" as const,\n marginBottom: 6,\n },\n};\n\nexport const snackBarCommon = {\n snackBar: {\n backgroundColor: \"#081F44\",\n fontWeight: 400,\n fontFamily: \"Lato, sans-serif\",\n fontSize: 14,\n padding: \"0px 20px 0px 20px;\",\n boxShadow: \"none\" as const,\n \"&.MuiPaper-root.MuiSnackbarContent-root\": {\n borderRadius: \"0px 0px 5px 5px\",\n },\n \"& div\": {\n textAlign: \"center\" as const,\n padding: \"6px 30px\",\n width: \"100%\",\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n },\n errorSnackBar: {\n backgroundColor: \"#C72C48\",\n color: \"#fff\",\n },\n snackBarExternal: {\n top: -1,\n height: 33,\n position: \"fixed\" as const,\n minWidth: 348,\n whiteSpace: \"nowrap\" as const,\n left: 0,\n width: \"100%\",\n justifyContent: \"center\" as const,\n },\n snackDiv: {\n top: \"17px\",\n left: \"50%\",\n position: \"absolute\" as const,\n },\n snackBarModal: {\n top: 0,\n position: \"absolute\" as const,\n minWidth: \"348px\",\n whiteSpace: \"nowrap\" as const,\n height: \"33px\",\n width: \"100%\",\n justifyContent: \"center\",\n left: 0,\n },\n};\n\nexport const wizardCommon = {\n multiContainer: {\n display: \"flex\" as const,\n alignItems: \"center\" as const,\n justifyContent: \"flex-start\" as const,\n },\n sizeFactorContainer: {\n marginLeft: 8,\n alignSelf: \"flex-start\" as const,\n },\n headerElement: {\n position: \"sticky\" as const,\n top: 0,\n paddingTop: 5,\n marginBottom: 10,\n zIndex: 500,\n backgroundColor: \"#fff\",\n },\n tableTitle: {\n fontWeight: 700,\n width: \"30%\",\n },\n poolError: {\n color: \"#dc1f2e\",\n fontSize: \"0.75rem\",\n paddingLeft: 120,\n },\n error: {\n color: \"#dc1f2e\",\n fontSize: \"0.75rem\",\n },\n h3Section: {\n marginTop: 0,\n margin: 0,\n },\n descriptionText: {\n fontSize: 14,\n },\n container: {\n padding: \"77px 0 0 0\",\n \"& h6\": {\n color: \"#777777\",\n fontSize: 14,\n },\n \"& p\": {\n \"& span:not(*[class*='smallUnit'])\": {\n fontSize: 16,\n },\n },\n },\n paperWrapper: {\n padding: 12,\n border: 0,\n },\n};\n\nexport const buttonsStyles = {\n anchorButton: {\n textDecoration: \"underline\" as const,\n textTransform: \"unset\" as const,\n fontWeight: \"normal\" as const,\n padding: 0,\n lineHeight: \"unset\" as const,\n height: \"unset\" as const,\n width: \"unset\" as const,\n textAlign: \"left\" as const,\n border: 0,\n minWidth: \"unset\" as const,\n },\n};\n\nexport const hrClass = {\n hrClass: {\n borderTop: 0,\n borderLeft: 0,\n borderRight: 0,\n borderColor: \"#999999\",\n backgroundColor: \"transparent\" as const,\n },\n};\n\nexport const tenantDetailsStyles = {\n buttonContainer: {\n textAlign: \"right\" as const,\n },\n multiContainer: {\n display: \"flex\" as const,\n alignItems: \"center\" as const,\n justifyContent: \"flex-start\" as const,\n },\n sizeFactorContainer: {\n marginLeft: 8,\n },\n containerHeader: {\n display: \"flex\" as const,\n justifyContent: \"space-between\" as const,\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n infoGrid: {\n display: \"grid\" as const,\n gridTemplateColumns: \"auto auto auto auto\",\n gridGap: 8,\n \"& div\": {\n display: \"flex\" as const,\n alignItems: \"center\" as const,\n },\n \"& div:nth-child(odd)\": {\n justifyContent: \"flex-end\" as const,\n fontWeight: 700,\n },\n \"& div:nth-child(2n)\": {\n paddingRight: 35,\n },\n },\n masterActions: {\n width: \"25%\",\n minWidth: \"120px\",\n \"& div\": {\n margin: \"5px 0px\",\n },\n },\n updateButton: {\n backgroundColor: \"transparent\" as const,\n border: 0,\n padding: \"0 6px\",\n cursor: \"pointer\" as const,\n \"&:focus, &:active\": {\n outline: \"none\",\n },\n \"& svg\": {\n height: 12,\n },\n },\n poolLabel: {\n color: \"#666666\",\n },\n titleCol: {\n fontWeight: 700,\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n healthCol: {\n fontWeight: 700,\n paddingRight: \"10px\",\n },\n ...modalBasic,\n ...actionsTray,\n ...buttonsStyles,\n ...searchField,\n ...hrClass,\n actionsTray: {\n ...actionsTray.actionsTray,\n padding: \"15px 0 0\",\n },\n};\n\nexport const inputFieldStyles = {\n root: {\n borderRadius: 3,\n \"&::before\": {\n borderColor: \"#9c9c9c\",\n },\n \"& fieldset\": {\n borderColor: \"#e5e5e5\",\n },\n \"&:hover fieldset\": {\n borderColor: \"#07193E\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"&.Mui-error + p\": {\n marginLeft: 3,\n },\n },\n disabled: {\n \"&.MuiOutlinedInput-root::before\": {\n borderColor: \"#e5e5e5\",\n borderBottomStyle: \"solid\" as const,\n borderRadius: 3,\n },\n },\n input: {\n height: 38,\n padding: \"0 35px 0 15px\",\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n error: {\n color: \"#b53b4b\",\n },\n};\n\nexport const inlineCheckboxes = {\n inlineCheckboxes: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n },\n};\n\nconst commonStateIcon = {\n marginRight: 10,\n lineHeight: 1,\n display: \"inline-flex\",\n marginTop: 6,\n};\n\nexport const commonDashboardInfocard = {\n cardIconContainer: {\n display: \"flex\" as const,\n position: \"relative\" as const,\n alignItems: \"center\" as const,\n },\n stateContainer: {\n display: \"flex\" as const,\n flexWrap: \"wrap\" as const,\n justifyContent: \"flex-start\" as const,\n },\n infoValue: {\n fontWeight: 500,\n color: \"#07193E\",\n fontSize: 16,\n margin: \"8px 40px 5px 0\",\n display: \"inline-flex\" as const,\n \"& strong\": {\n marginRight: 4,\n },\n \"& .min-icon\": {\n width: 20,\n height: 20,\n },\n alignItems: \"center\" as const,\n },\n redState: {\n color: \"#F55B5B\",\n ...commonStateIcon,\n },\n greenState: {\n color: \"#9FF281\",\n ...commonStateIcon,\n },\n yellowState: {\n color: \"#F7A25A\",\n ...commonStateIcon,\n },\n greyState: {\n color: \"grey\",\n ...commonStateIcon,\n },\n healthStatusIcon: {\n position: \"absolute\" as const,\n fontSize: 8,\n left: 18,\n height: 10,\n bottom: 2,\n marginRight: 10,\n \"& .min-icon\": {\n width: 5,\n height: 5,\n },\n },\n innerState: {\n fontSize: 8,\n display: \"flex\" as const,\n alignItems: \"center\" as const,\n marginTop: -3,\n \"& .min-icon\": {\n marginTop: 5,\n width: 10,\n height: 10,\n },\n },\n cardContainer: {\n borderRadius: 10,\n boxShadow: \"0 0 15px #00000029\",\n maxWidth: 1185,\n marginBottom: 30,\n },\n cardHeader: {\n \"& .MuiCardHeader-title\": {\n fontWeight: \"bolder\" as const,\n },\n },\n cardNumber: {\n color: \"#848484\",\n fontSize: 16,\n fontWeight: 400,\n marginBottom: 10,\n },\n referenceTitle: {\n display: \"flex\",\n alignItems: \"center\" as const,\n lineHeight: 1,\n fontWeight: \"bold\" as const,\n \"& .min-icon\": {\n width: 10,\n height: 10,\n marginTop: -5,\n },\n },\n};\n\nexport const pageContentStyles = {\n contentSpacer: {\n padding: \"2rem\",\n },\n};\n\nexport const linkStyles = (color: string) => ({\n link: {\n textDecoration: \"underline\",\n color,\n backgroundColor: \"transparent\",\n border: 0,\n cursor: \"pointer\",\n },\n});\n\nexport const serviceAccountStyles: any = {\n jsonPolicyEditor: {\n minHeight: 400,\n width: \"100%\",\n },\n buttonContainer: {\n textAlign: \"right\",\n },\n infoDetails: {\n color: \"#393939\",\n fontSize: 12,\n fontStyle: \"italic\",\n marginBottom: \"8px\",\n },\n containerScrollable: {\n maxHeight: \"calc(100vh - 200px)\" as const,\n overflowY: \"auto\" as const,\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n stackedInputs: {\n display: \"flex\",\n gap: 15,\n paddingBottom: \"1rem\",\n paddingLeft: \"1rem\",\n flexFlow: \"column\",\n },\n buttonSpacer: {\n marginRight: \"1rem\",\n },\n};\n\nexport const tableStyles: any = {\n tableBlock: {\n display: \"flex\",\n flexDirection: \"row\",\n \"& .ReactVirtualized__Table__headerRow.rowLine, .ReactVirtualized__Table__row.rowLine\":\n {\n borderBottom: \"1px solid #EAEAEA\",\n },\n\n \"& .rowLine:hover:not(.ReactVirtualized__Table__headerRow)\": {\n backgroundColor: \"#F8F8F8\",\n },\n \"& .ReactVirtualized__Table__row.rowLine\": {\n fontSize: \".8rem\",\n },\n \"& .optionsAlignment \": {\n textAlign: \"right\",\n\n \"& .MuiButtonBase-root\": {\n backgroundColor: \"#F8F8F8\",\n },\n\n \"&:hover\": {\n backgroundColor: \"#E2E2E2\",\n },\n \"& .min-icon\": {\n width: 13,\n margin: 3,\n },\n },\n },\n};\n\nexport const spacingUtils: any = {\n spacerRight: {\n marginRight: \".9rem\",\n },\n spacerLeft: {\n marginLeft: \".9rem\",\n },\n spacerBottom: {\n marginBottom: \".9rem\",\n },\n spacerTop: {\n marginTop: \".9rem\",\n },\n};\n\nexport const formFieldStyles: any = {\n formFieldRow: {\n marginBottom: \".8rem\",\n \"& .MuiInputLabel-root\": {\n fontWeight: \"normal\",\n },\n },\n};\n\nexport const fileInputStyles = {\n fieldBottom: {\n borderBottom: 0,\n },\n fileReselect: {\n border: \"1px solid #EAEAEA\",\n width: \"100%\",\n paddingLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 36,\n maxWidth: 300,\n },\n textBoxContainer: {\n border: \"1px solid #EAEAEA\",\n borderRadius: 3,\n height: 36,\n padding: 5,\n \"& input\": {\n width: \"100%\",\n margin: \"auto\",\n },\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n maxWidth: 300,\n },\n};\n\nexport const deleteDialogStyles = {\n root: {\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n },\n title: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n titleText: {\n fontSize: \"1rem\",\n fontWeight: 600,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n marginRight: 10,\n },\n },\n closeContainer: {\n \"& .MuiIconButton-root\": {\n top: -20,\n left: 30,\n position: \"relative\",\n padding: 1,\n \"&:focus, &:hover\": {\n background: \"#EAEAEA\",\n },\n },\n \"& .min-icon\": {\n height: 16,\n width: 16,\n },\n },\n};\n\nexport const advancedFilterToggleStyles: any = {\n advancedButton: {\n flexGrow: 1,\n alignItems: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\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 float: \"right\",\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};\n\nexport const createTenantCommon: any = {\n fieldGroup: {\n border: \"1px solid #EAEAEA\",\n paddingTop: 15,\n },\n descriptionText: {\n fontSize: 14,\n },\n};\n\nexport const modalStyleUtils: any = {\n modalButtonBar: {\n marginTop: 15,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n\n \"& button\": {\n marginRight: 10,\n },\n \"& button:last-child\": {\n marginRight: 0,\n },\n },\n modalFormScrollable: {\n maxHeight: \"calc(100vh - 300px)\",\n overflowY: \"auto\",\n paddingTop: 10,\n },\n};\n\nexport const textStyleUtils: any = {\n textMuted: {\n color: \"#8399AB\",\n },\n};\n\nexport const detailsPanel: any = {\n metadataLinear: {\n marginBottom: 15,\n fontSize: 14,\n maxHeight: 180,\n overflowY: \"auto\",\n },\n hrClass: {\n borderTop: 0,\n borderLeft: 0,\n borderRight: 0,\n borderColor: \"#E2E2E2\",\n backgroundColor: \"transparent\",\n },\n sectionTitle: {\n fontSize: 18,\n color: \"#000\",\n fontWeight: \"bold\",\n borderBottom: \"#E2E2E2 1px solid\",\n margin: \"10px 22px\",\n paddingBottom: 18,\n width: \"100%\",\n },\n detailContainer: {\n padding: \"0 22px\",\n marginBottom: 20,\n fontSize: 14,\n },\n titleLabel: {\n fontSize: 14,\n fontWeight: \"bold\",\n color: \"#000\",\n padding: \"12px 30px 8px 22px\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n alignItems: \"center\",\n },\n objectActions: {\n backgroundColor: \"#F8F8F8\",\n border: \"#F1F1F1 1px solid\",\n borderRadius: 3,\n margin: \"8px 22px\",\n padding: 0,\n color: \"#696969\",\n \"& li\": {\n listStyle: \"none\",\n padding: 6,\n margin: 0,\n borderBottom: \"#E5E5E5 1px solid\",\n fontSize: 14,\n \"&:first-of-type\": {\n padding: 10,\n fontWeight: \"bold\",\n color: \"#000\",\n },\n \"&:last-of-type\": {\n borderBottom: 0,\n },\n },\n },\n};\n\nexport const objectBrowserExtras = {\n listIcon: {\n display: \"block\",\n marginTop: \"-10px\",\n \"& .min-icon\": {\n width: 20,\n height: 20,\n },\n },\n titleSpacer: {\n marginLeft: 10,\n },\n};\n\n// These classes are meant to be used as React.CSSProperties for TableWrapper\nexport const TableRowPredefStyles: any = {\n deleted: {\n color: \"#ACACAC\",\n backgroundColor: \"#FDFDFD\",\n fontStyle: \"italic\",\n },\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { SVGProps } from \"react\";\n\nimport \"./loader.styles.css\";\n\nconst Loader = (props: SVGProps) => {\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\nexport default Loader;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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, useCallback } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { AppState } from \"../../../../store\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { Box } from \"@mui/material\";\nimport { AlertCloseIcon } from \"../../../../icons\";\nimport { Portal } from \"@mui/base\";\n\ninterface IMainErrorProps {\n snackBar: snackBarMessage;\n displayErrorMessage: typeof setErrorSnackMessage;\n isModal?: boolean;\n}\n\nlet timerI: any;\n\nconst startHideTimer = (callbackFunction: () => void) => {\n timerI = setInterval(callbackFunction, 10000);\n};\n\nconst stopHideTimer = () => {\n clearInterval(timerI);\n};\n\nconst MainError = ({\n snackBar,\n displayErrorMessage,\n isModal = false,\n}: IMainErrorProps) => {\n const [displayErrorMsg, setDisplayErrorMsg] = useState(false);\n\n const closeErrorMessage = useCallback(() => {\n setDisplayErrorMsg(false);\n }, []);\n\n useEffect(() => {\n if (!displayErrorMsg) {\n displayErrorMessage({ detailedError: \"\", errorMessage: \"\" });\n clearInterval(timerI);\n }\n }, [displayErrorMessage, displayErrorMsg]);\n\n useEffect(() => {\n if (snackBar.message !== \"\" && snackBar.type === \"error\") {\n //Error message received, we trigger the animation\n setDisplayErrorMsg(true);\n startHideTimer(closeErrorMessage);\n }\n }, [closeErrorMessage, snackBar.message, snackBar.type]);\n\n const message = get(snackBar, \"message\", \"\");\n const messageDetails = get(snackBar, \"detailedErrorMsg\", \"\");\n\n if (snackBar.type !== \"error\" || message === \"\") {\n return null;\n }\n\n return (\n \n startHideTimer(closeErrorMessage)}\n className={`alert ${displayErrorMsg ? \"show\" : \"\"}`}\n >\n
    \n {messageDetails ? messageDetails : `${message}.`}\n
    \n
    \n \n
    \n \n
    \n );\n};\n\nconst mapState = (state: AppState, ownProps: any) => ({\n snackBar: ownProps.isModal\n ? state.system.modalSnackBar\n : state.system.snackBar,\n});\n\nconst mapDispatchToProps = {\n displayErrorMessage: setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(MainError);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { IDashboardPanel } from \"./Prometheus/types\";\n\nexport const DASHBOARD_OPEN_ZOOM = \"DASHBOARD/OPEN_ZOOM\";\nexport const DASHBOARD_CLOSE_ZOOM = \"DASHBOARD/CLOSE_ZOOM\";\n\ninterface OpenChartZoom {\n type: typeof DASHBOARD_OPEN_ZOOM;\n widget: IDashboardPanel;\n}\n\ninterface CloseChartZoom {\n type: typeof DASHBOARD_CLOSE_ZOOM;\n}\n\nexport type ZoomActionTypes = OpenChartZoom | CloseChartZoom;\n\nexport function openZoomPage(widget: IDashboardPanel) {\n return {\n type: DASHBOARD_OPEN_ZOOM,\n widget,\n };\n}\n\nexport function closeZoomPage() {\n return {\n type: DASHBOARD_CLOSE_ZOOM,\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 { HealthInfoMessage } from \"./types\";\n\nexport const HEALTH_INFO_MESSAGE_RECEIVED = \"HEALTH_INFO_MESSAGE_RECEIVED\";\nexport const HEALTH_INFO_RESET_MESSAGE = \"HEALTH_INFO_RESET_MESSAGE\";\n\ninterface HealthInfoMessageReceivedAction {\n type: typeof HEALTH_INFO_MESSAGE_RECEIVED;\n message: HealthInfoMessage;\n}\n\ninterface HealthInfoResetMessagesAction {\n type: typeof HEALTH_INFO_RESET_MESSAGE;\n}\n\nexport type HealthInfoActionTypes =\n | HealthInfoMessageReceivedAction\n | HealthInfoResetMessagesAction;\n\nexport function healthInfoMessageReceived(message: HealthInfoMessage) {\n return {\n type: HEALTH_INFO_MESSAGE_RECEIVED,\n message: message,\n };\n}\n\nexport function healthInfoResetMessage() {\n return {\n type: HEALTH_INFO_RESET_MESSAGE,\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 { LogMessage } from \"./types\";\n\nexport const LOG_MESSAGE_RECEIVED = \"LOG_MESSAGE_RECEIVED\";\nexport const LOG_RESET_MESSAGES = \"LOG_RESET_MESSAGES\";\nexport const LOG_SET_STARTED = \"LOG_SET_STARTED\";\n\ninterface LogMessageReceivedAction {\n type: typeof LOG_MESSAGE_RECEIVED;\n message: LogMessage;\n}\n\ninterface LogResetMessagesAction {\n type: typeof LOG_RESET_MESSAGES;\n}\n\ninterface LogSetStarted {\n type: typeof LOG_SET_STARTED;\n status: boolean;\n}\n\nexport type LogActionTypes =\n | LogMessageReceivedAction\n | LogResetMessagesAction\n | LogSetStarted;\n\nexport function logMessageReceived(message: LogMessage) {\n return {\n type: LOG_MESSAGE_RECEIVED,\n message: message,\n };\n}\n\nexport function logResetMessages() {\n return {\n type: LOG_RESET_MESSAGES,\n };\n}\n\nexport function setLogsStarted(status: boolean) {\n return {\n type: LOG_SET_STARTED,\n status,\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 { IFileItem } from \"./reducers\";\n\nexport const REWIND_SET_ENABLE = \"REWIND/SET_ENABLE\";\nexport const REWIND_RESET_REWIND = \"REWIND/RESET_REWIND\";\n\nexport const OBJECT_MANAGER_NEW_OBJECT = \"OBJECT_MANAGER/NEW_OBJECT\";\nexport const OBJECT_MANAGER_UPDATE_PROGRESS_OBJECT =\n \"OBJECT_MANAGER/UPDATE_PROGRESS_OBJECT\";\nexport const OBJECT_MANAGER_COMPLETE_OBJECT = \"OBJECT_MANAGER/COMPLETE_OBJECT\";\nexport const OBJECT_MANAGER_DELETE_FROM_OBJECT_LIST =\n \"OBJECT_MANAGER/DELETE_FROM_OBJECT_LIST\";\nexport const OBJECT_MANAGER_CLEAN_LIST = \"OBJECT_MANAGER/CLEAN_LIST\";\nexport const OBJECT_MANAGER_TOGGLE_LIST = \"OBJECT_MANAGER/TOGGLE_LIST\";\nexport const OBJECT_MANAGER_OPEN_LIST = \"OBJECT_MANAGER/OPEN_LIST\";\nexport const OBJECT_MANAGER_CLOSE_LIST = \"OBJECT_MANAGER/CLOSE_LIST\";\nexport const OBJECT_MANAGER_SET_SEARCH_OBJECT =\n \"OBJECT_MANAGER/SET_SEARCH_OBJECT\";\n\nexport const BUCKET_BROWSER_VERSIONS_MODE_ENABLED =\n \"BUCKET_BROWSER/VERSIONS_MODE_ENABLED\";\nexport const BUCKET_BROWSER_VERSIONS_SET_SEARCH =\n \"BUCKET_BROWSER/VERSIONS_SET_SEARCH\";\nexport const BUCKET_BROWSER_SET_SELECTED_VERSION =\n \"BUCKET_BROWSER/SET_SELECTED_VERSION\";\nexport const BUCKET_BROWSER_SHOW_DELETED = \"BUCKET_BROWSER/SHOW_DELETED\";\nexport const BUCKET_BROWSER_LOAD_VERSIONS = \"BUCKET_BROWSER/LOAD_VERSIONS\";\nexport const BUCKET_BROWSER_LOAD_OBJECT_DETAILS =\n \"BUCKET_BROWSER/LOAD_OBJECT_DETAILS\";\n\ninterface RewindSetEnabled {\n type: typeof REWIND_SET_ENABLE;\n bucket: string;\n state: boolean;\n dateRewind: any;\n}\n\ninterface RewindReset {\n type: typeof REWIND_RESET_REWIND;\n}\n\ninterface VersionsModeEnabled {\n type: typeof BUCKET_BROWSER_VERSIONS_MODE_ENABLED;\n status: boolean;\n objectName: string;\n}\n\ninterface OMNewObject {\n type: typeof OBJECT_MANAGER_NEW_OBJECT;\n newObject: IFileItem;\n}\n\ninterface OMUpdateProgress {\n type: typeof OBJECT_MANAGER_UPDATE_PROGRESS_OBJECT;\n instanceID: string;\n progress: number;\n}\n\ninterface OMCompleteObject {\n type: typeof OBJECT_MANAGER_COMPLETE_OBJECT;\n instanceID: string;\n}\n\ninterface OMDeleteFromList {\n type: typeof OBJECT_MANAGER_DELETE_FROM_OBJECT_LIST;\n instanceID: string;\n}\n\ninterface OMCleanList {\n type: typeof OBJECT_MANAGER_CLEAN_LIST;\n}\n\ninterface OMToggleList {\n type: typeof OBJECT_MANAGER_TOGGLE_LIST;\n}\n\ninterface OMOpenList {\n type: typeof OBJECT_MANAGER_OPEN_LIST;\n}\n\ninterface OMCloseList {\n type: typeof OBJECT_MANAGER_CLOSE_LIST;\n}\n\ninterface SetSearchObjects {\n type: typeof OBJECT_MANAGER_SET_SEARCH_OBJECT;\n searchString: string;\n}\n\ninterface SetSearchVersions {\n type: typeof BUCKET_BROWSER_VERSIONS_SET_SEARCH;\n searchString: string;\n}\n\ninterface SetSelectedversion {\n type: typeof BUCKET_BROWSER_SET_SELECTED_VERSION;\n selectedVersion: string;\n}\n\ninterface SetShowDeletedObjects {\n type: typeof BUCKET_BROWSER_SHOW_DELETED;\n status: boolean;\n}\n\ninterface SetLoadingVersions {\n type: typeof BUCKET_BROWSER_LOAD_VERSIONS;\n status: boolean;\n}\n\ninterface SetLoadingObjectInfo {\n type: typeof BUCKET_BROWSER_LOAD_OBJECT_DETAILS;\n status: boolean;\n}\n\nexport type ObjectBrowserActionTypes =\n | RewindSetEnabled\n | RewindReset\n | VersionsModeEnabled\n | OMNewObject\n | OMUpdateProgress\n | OMCompleteObject\n | OMDeleteFromList\n | OMCleanList\n | OMToggleList\n | OMOpenList\n | OMCloseList\n | SetSearchObjects\n | SetSearchVersions\n | SetSelectedversion\n | SetShowDeletedObjects\n | SetLoadingVersions\n | SetLoadingObjectInfo;\n\nexport const setRewindEnable = (\n state: boolean,\n bucket: string,\n dateRewind: any\n) => {\n return {\n type: REWIND_SET_ENABLE,\n state,\n bucket,\n dateRewind,\n };\n};\n\nexport const resetRewind = () => {\n return {\n type: REWIND_RESET_REWIND,\n };\n};\n\nexport const setVersionsModeEnabled = (\n status: boolean,\n objectName: string = \"\"\n) => {\n return {\n type: BUCKET_BROWSER_VERSIONS_MODE_ENABLED,\n status,\n objectName,\n };\n};\n\nexport const setNewObject = (newObject: IFileItem) => {\n return {\n type: OBJECT_MANAGER_NEW_OBJECT,\n newObject,\n };\n};\n\nexport const updateProgress = (instanceID: string, progress: number) => {\n return {\n type: OBJECT_MANAGER_UPDATE_PROGRESS_OBJECT,\n instanceID,\n progress,\n };\n};\n\nexport const completeObject = (instanceID: string) => {\n return {\n type: OBJECT_MANAGER_COMPLETE_OBJECT,\n instanceID,\n };\n};\n\nexport const deleteFromList = (instanceID: string) => {\n return {\n type: OBJECT_MANAGER_DELETE_FROM_OBJECT_LIST,\n instanceID,\n };\n};\n\nexport const cleanList = () => {\n return {\n type: OBJECT_MANAGER_CLEAN_LIST,\n };\n};\n\nexport const toggleList = () => {\n return {\n type: OBJECT_MANAGER_TOGGLE_LIST,\n };\n};\n\nexport const openList = () => {\n return {\n type: OBJECT_MANAGER_OPEN_LIST,\n };\n};\n\nexport const closeList = () => {\n return {\n type: OBJECT_MANAGER_CLOSE_LIST,\n };\n};\n\nexport const setSearchObjects = (searchString: string) => {\n return {\n type: OBJECT_MANAGER_SET_SEARCH_OBJECT,\n searchString,\n };\n};\n\nexport const setSearchVersions = (searchString: string) => {\n return {\n type: BUCKET_BROWSER_VERSIONS_SET_SEARCH,\n searchString,\n };\n};\n\nexport const setSelectedVersion = (selectedVersion: string) => {\n return {\n type: BUCKET_BROWSER_SET_SELECTED_VERSION,\n selectedVersion,\n };\n};\n\nexport const setShowDeletedObjects = (status: boolean) => {\n return {\n type: BUCKET_BROWSER_SHOW_DELETED,\n status,\n };\n};\n\nexport const setLoadingVersions = (status: boolean) => {\n return {\n type: BUCKET_BROWSER_LOAD_VERSIONS,\n status,\n };\n};\n\nexport const setLoadingObjectInfo = (status: boolean) => {\n return {\n type: BUCKET_BROWSER_LOAD_OBJECT_DETAILS,\n status,\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect } 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 { AppState } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../../actions\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { IResourcesSize } from \"../../../ListTenants/types\";\nimport { AllocableResourcesResponse } from \"../../../types\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { floor } from \"lodash\";\nimport InputUnitMenu from \"../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface ITenantSizeResourcesProps {\n classes: any;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n nodes: string;\n resourcesSize: IResourcesSize;\n selectedStorageClass: string;\n maxAllocatableResources: AllocableResourcesResponse;\n maxCPUsUse: string;\n maxMemorySize: string;\n\n resourcesSpecifyLimit: boolean;\n resourcesCPURequestError: string;\n resourcesCPURequest: string;\n resourcesCPULimitError: string;\n resourcesCPULimit: string;\n resourcesMemoryRequestError: string;\n resourcesMemoryRequest: string;\n resourcesMemoryLimitError: string;\n resourcesMemoryLimit: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n compositeFieldContainer: {\n display: \"flex\",\n alignItems: \"center\",\n },\n compositeAddOn: {\n marginLeft: 10,\n \"& div\": {\n marginBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n \"& div\": {\n marginTop: 5,\n },\n },\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantSizeResources = ({\n classes,\n updateAddField,\n isPageValid,\n nodes,\n\n resourcesSize,\n selectedStorageClass,\n maxAllocatableResources,\n maxCPUsUse,\n maxMemorySize,\n resourcesSpecifyLimit,\n resourcesCPURequestError,\n resourcesCPURequest,\n resourcesCPULimitError,\n resourcesCPULimit,\n resourcesMemoryRequestError,\n resourcesMemoryRequest,\n resourcesMemoryLimitError,\n resourcesMemoryLimit,\n}: ITenantSizeResourcesProps) => {\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"tenantSize\", field, value);\n },\n [updateAddField]\n );\n\n /*Debounce functions*/\n\n useEffect(() => {\n isPageValid(\n \"tenantSize\",\n resourcesMemoryRequestError === \"\" &&\n resourcesMemoryLimitError === \"\" &&\n resourcesCPURequestError === \"\" &&\n resourcesCPULimitError === \"\"\n );\n }, [\n isPageValid,\n resourcesMemoryRequestError,\n resourcesMemoryLimitError,\n resourcesCPURequestError,\n resourcesCPULimitError,\n ]);\n\n /*End debounce functions*/\n\n /*Calculate Allocation*/\n useEffect(() => {\n // Get allocatable Resources\n api\n .invoke(\"GET\", `api/v1/cluster/allocatable-resources?num_nodes=${nodes}`)\n .then((res: AllocableResourcesResponse) => {\n updateField(\"maxAllocatableResources\", res);\n\n const maxAllocatableResources = res;\n\n const memoryExists = get(\n maxAllocatableResources,\n \"min_allocatable_mem\",\n false\n );\n\n const cpuExists = get(\n maxAllocatableResources,\n \"min_allocatable_cpu\",\n false\n );\n\n if (memoryExists === false || cpuExists === false) {\n updateField(\"cpuToUse\", 0);\n\n updateField(\"maxMemorySize\", \"\");\n updateField(\"maxCPUsUse\", \"\");\n\n return;\n }\n\n const maxMemory = floor(\n res.mem_priority.max_allocatable_mem / 1024 / 1024 / 1024\n );\n // We default to Best CPU Configuration\n updateField(\"maxMemorySize\", maxMemory.toString());\n updateField(\n \"maxCPUsUse\",\n res.cpu_priority.max_allocatable_cpu.toString()\n );\n\n const maxAllocatableCPU = get(\n maxAllocatableResources,\n \"cpu_priority.max_allocatable_cpu\",\n 0\n );\n\n const baseCpuUse = Math.max(1, floor(maxAllocatableCPU / 2));\n if (resourcesCPURequest === \"\") {\n updateField(\"resourcesCPURequest\", baseCpuUse);\n }\n\n const baseMemoryUse = Math.max(2, floor(maxMemory / 2));\n if (resourcesMemoryRequest === \"\") {\n updateField(\"resourcesMemoryRequest\", baseMemoryUse);\n }\n })\n .catch((err: any) => {\n updateField(\"maxMemorySize\", 0);\n updateField(\"resourcesCPURequest\", \"\");\n updateField(\"resourcesMemoryRequest\", \"\");\n\n console.error(err);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nodes, updateField]);\n\n /*Calculate Allocation End*/\n\n return (\n \n \n
    \n

    Resources

    \n \n You may specify the amount of CPU and Memory that MinIO servers\n should reserve on each node.\n \n
    \n
    \n {resourcesSize.error !== \"\" && (\n \n
    {resourcesSize.error}
    \n
    \n )}\n\n \n {\n let value = parseInt(e.target.value);\n if (e.target.value === \"\") {\n updateField(\"resourcesCPURequestError\", \"\");\n } else if (isNaN(value)) {\n updateField(\"resourcesCPURequestError\", \"Invalid number\");\n } else if (value > parseInt(maxCPUsUse)) {\n updateField(\n \"resourcesCPURequestError\",\n `Request exceeds available cores (${maxCPUsUse})`\n );\n } else if (e.target.validity.valid) {\n updateField(\"resourcesCPURequestError\", \"\");\n } else {\n updateField(\"resourcesCPURequestError\", \"Invalid configuration\");\n }\n updateField(\"resourcesCPURequest\", e.target.value);\n }}\n value={resourcesCPURequest}\n disabled={selectedStorageClass === \"\"}\n max={maxCPUsUse}\n error={resourcesCPURequestError}\n pattern={\"[0-9]*\"}\n />\n \n\n \n ) => {\n let value = parseInt(e.target.value);\n if (e.target.value === \"\") {\n updateField(\"resourcesMemoryRequestError\", \"\");\n } else if (isNaN(value)) {\n updateField(\"resourcesMemoryRequestError\", \"Invalid number\");\n } else if (value > parseInt(maxMemorySize)) {\n updateField(\n \"resourcesMemoryRequestError\",\n `Request exceeds available memory across ${nodes} nodes (${maxMemorySize}Gi)`\n );\n } else if (value < 2) {\n updateField(\n \"resourcesMemoryRequestError\",\n \"At least 2Gi must be requested\"\n );\n } else if (e.target.validity.valid) {\n updateField(\"resourcesMemoryRequestError\", \"\");\n } else {\n updateField(\n \"resourcesMemoryRequestError\",\n \"Invalid configuration\"\n );\n }\n updateField(\"resourcesMemoryRequest\", e.target.value);\n }}\n label=\"Memory Request\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={resourcesMemoryRequest}\n disabled={selectedStorageClass === \"\"}\n error={resourcesMemoryRequestError}\n pattern={\"[0-9]*\"}\n />\n \n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"resourcesSpecifyLimit\", checked);\n }}\n label={\"Specify Limit\"}\n />\n \n\n {resourcesSpecifyLimit && (\n \n \n {\n let value = parseInt(e.target.value);\n if (e.target.value === \"\") {\n updateField(\"resourcesCPULimitError\", \"\");\n } else if (isNaN(value)) {\n updateField(\"resourcesCPULimitError\", \"Invalid number\");\n } else if (e.target.validity.valid) {\n updateField(\"resourcesCPULimitError\", \"\");\n } else {\n updateField(\n \"resourcesCPULimitError\",\n \"Invalid configuration\"\n );\n }\n updateField(\"resourcesCPULimit\", e.target.value);\n }}\n value={resourcesCPULimit}\n disabled={selectedStorageClass === \"\"}\n max={maxCPUsUse}\n error={resourcesCPULimitError}\n pattern={\"[0-9]*\"}\n />\n \n\n \n ) => {\n let value = parseInt(e.target.value);\n console.log(\"value\", value);\n if (e.target.value === \"\") {\n updateField(\"resourcesMemoryLimitError\", \"\");\n } else if (isNaN(value)) {\n updateField(\"resourcesMemoryLimitError\", \"Invalid number\");\n } else if (e.target.validity.valid) {\n updateField(\"resourcesMemoryLimitError\", \"\");\n } else {\n updateField(\n \"resourcesMemoryLimitError\",\n \"Invalid configuration\"\n );\n }\n updateField(\"resourcesMemoryLimit\", e.target.value);\n }}\n label=\"Memory Limit\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={resourcesMemoryLimit}\n disabled={selectedStorageClass === \"\"}\n error={resourcesMemoryLimitError}\n pattern={\"[0-9]*\"}\n />\n \n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n nodes: state.tenants.createTenant.fields.tenantSize.nodes,\n\n resourcesSize: state.tenants.createTenant.fields.tenantSize.resourcesSize,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n maxAllocatableResources:\n state.tenants.createTenant.fields.tenantSize.maxAllocatableResources,\n maxCPUsUse: state.tenants.createTenant.fields.tenantSize.maxCPUsUse,\n maxMemorySize: state.tenants.createTenant.fields.tenantSize.maxMemorySize,\n\n resourcesSpecifyLimit:\n state.tenants.createTenant.fields.tenantSize.resourcesSpecifyLimit,\n\n resourcesCPURequestError:\n state.tenants.createTenant.fields.tenantSize.resourcesCPURequestError,\n resourcesCPURequest:\n state.tenants.createTenant.fields.tenantSize.resourcesCPURequest,\n resourcesCPULimitError:\n state.tenants.createTenant.fields.tenantSize.resourcesCPULimitError,\n resourcesCPULimit:\n state.tenants.createTenant.fields.tenantSize.resourcesCPULimit,\n\n resourcesMemoryRequestError:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryRequestError,\n resourcesMemoryRequest:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,\n resourcesMemoryLimitError:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryLimitError,\n resourcesMemoryLimit:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryLimit,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(TenantSizeResources));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You 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 { SelectChangeEvent } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../../actions\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n calculateDistribution,\n erasureCodeCalc,\n getBytes,\n k8sScalarUnitsExcluding,\n niceBytes,\n} from \"../../../../../../common/utils\";\nimport { clearValidationError } from \"../../../utils\";\nimport { ecListTransform, Opts } from \"../../../ListTenants/utils\";\nimport { IResourcesSize } from \"../../../ListTenants/types\";\nimport { ICapacity, IErasureCodeCalc } from \"../../../../../../common/types\";\nimport { commonFormValidation } from \"../../../../../../utils/validationFunctions\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TenantSizeResources from \"./TenantSizeResources\";\nimport InputUnitMenu from \"../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport { IMkEnvs } from \"./utils\";\n\ninterface ITenantSizeProps {\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 untouchedECField: boolean;\n formToRender?: IMkEnvs;\n selectedStorageType: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n compositeFieldContainer: {\n display: \"flex\",\n alignItems: \"center\",\n },\n compositeAddOn: {\n marginLeft: 10,\n \"& div\": {\n marginBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n \"& div\": {\n marginTop: 5,\n },\n },\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantSize = ({\n classes,\n updateAddField,\n isPageValid,\n volumeSize,\n sizeFactor,\n drivesPerServer,\n nodes,\n memoryNode,\n ecParity,\n ecParityChoices,\n cleanECChoices,\n resourcesSize,\n distribution,\n ecParityCalc,\n limitSize,\n selectedStorageClass,\n untouchedECField,\n formToRender,\n selectedStorageType,\n}: ITenantSizeProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [errorFlag, setErrorFlag] = useState(false);\n const [nodeError, setNodeError] = useState(\"\");\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"tenantSize\", field, value);\n },\n [updateAddField]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n /*Debounce functions*/\n\n // Storage Quotas\n useEffect(() => {\n if (cleanECChoices.length > 0 && ecParityCalc.defaultEC !== \"\") {\n updateField(\n \"ecParityChoices\",\n ecListTransform(cleanECChoices, ecParityCalc.defaultEC)\n );\n }\n }, [ecParityCalc, cleanECChoices, updateField]);\n\n useEffect(() => {\n if (ecParity !== \"\" && ecParityCalc.defaultEC !== ecParity) {\n updateField(\"untouchedECField\", false);\n return;\n }\n\n updateField(\"untouchedECField\", true);\n }, [ecParity, ecParityCalc, updateField]);\n\n useEffect(() => {\n if (ecParityChoices.length > 0 && distribution.error === \"\") {\n const ecCodeValidated = erasureCodeCalc(\n cleanECChoices,\n distribution.persistentVolumes,\n distribution.pvSize,\n distribution.nodes\n );\n\n updateField(\"ecParityCalc\", ecCodeValidated);\n\n if (!cleanECChoices.includes(ecParity) || ecParity === \"\") {\n updateField(\"ecParity\", ecCodeValidated.defaultEC);\n }\n }\n }, [\n ecParity,\n ecParityChoices.length,\n distribution,\n cleanECChoices,\n updateField,\n untouchedECField,\n ]);\n /*End debounce functions*/\n\n /*Calculate Allocation*/\n useEffect(() => {\n //Validate Cluster Size\n const size = volumeSize;\n const factor = sizeFactor;\n const limitSize = getBytes(\"16\", \"Ti\", true);\n\n const clusterCapacity: ICapacity = {\n unit: factor,\n value: size.toString(),\n };\n\n const distrCalculate = calculateDistribution(\n clusterCapacity,\n parseInt(nodes),\n parseInt(limitSize),\n parseInt(drivesPerServer),\n formToRender,\n selectedStorageType\n );\n\n updateField(\"distribution\", distrCalculate);\n setErrorFlag(false);\n setNodeError(\"\");\n }, [\n nodes,\n volumeSize,\n sizeFactor,\n updateField,\n drivesPerServer,\n selectedStorageType,\n formToRender,\n ]);\n\n /*Calculate Allocation End*/\n\n /* Validations of pages */\n\n useEffect(() => {\n const parsedSize = getBytes(volumeSize, sizeFactor, true);\n\n const commonValidation = commonFormValidation([\n {\n fieldKey: \"nodes\",\n required: true,\n value: nodes,\n customValidation: errorFlag,\n customValidationMessage: nodeError,\n },\n {\n fieldKey: \"volume_size\",\n required: true,\n value: volumeSize,\n customValidation:\n parseInt(parsedSize) < 1073741824 ||\n parseInt(parsedSize) > limitSize[selectedStorageClass],\n customValidationMessage: `Volume size must be greater than 1Gi and less than ${niceBytes(\n limitSize[selectedStorageClass],\n true\n )}`,\n },\n {\n fieldKey: \"drivesps\",\n required: true,\n value: drivesPerServer,\n customValidation: parseInt(drivesPerServer) < 1,\n customValidationMessage: \"There must be at least one drive\",\n },\n ]);\n\n isPageValid(\n \"tenantSize\",\n !(\"nodes\" in commonValidation) &&\n !(\"volume_size\" in commonValidation) &&\n !(\"drivesps\" in commonValidation) &&\n distribution.error === \"\" &&\n ecParityCalc.error === 0 &&\n ecParity !== \"\"\n );\n\n setValidationErrors(commonValidation);\n }, [\n nodes,\n volumeSize,\n sizeFactor,\n memoryNode,\n distribution,\n ecParityCalc,\n resourcesSize,\n limitSize,\n selectedStorageClass,\n isPageValid,\n errorFlag,\n nodeError,\n drivesPerServer,\n ecParity,\n ]);\n\n useEffect(() => {\n if (distribution.error === \"\") {\n // Get EC Value\n if (nodes.trim() !== \"\" && distribution.disks !== 0) {\n api\n .invoke(\"GET\", `api/v1/get-parity/${nodes}/${distribution.disks}`)\n .then((ecList: string[]) => {\n updateField(\"ecParityChoices\", ecListTransform(ecList));\n updateField(\"cleanECChoices\", ecList);\n if (untouchedECField) {\n updateField(\"ecParity\", \"\");\n }\n })\n .catch((err: any) => {\n updateField(\"ecparityChoices\", []);\n isPageValid(\"tenantSize\", false);\n updateField(\"ecParity\", \"\");\n });\n }\n }\n }, [distribution, isPageValid, updateField, nodes, untouchedECField]);\n\n /* End Validation of pages */\n\n return (\n \n \n
    \n

    Capacity

    \n \n Please select the desired capacity\n \n
    \n
    \n {distribution.error !== \"\" && (\n \n
    {distribution.error}
    \n
    \n )}\n \n ) => {\n if (e.target.validity.valid) {\n updateField(\"nodes\", e.target.value);\n cleanValidation(\"nodes\");\n }\n }}\n label=\"Number of Servers\"\n disabled={selectedStorageClass === \"\"}\n value={nodes}\n min=\"4\"\n required\n error={validationErrors[\"nodes\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n if (e.target.validity.valid) {\n updateField(\"drivesPerServer\", e.target.value);\n cleanValidation(\"drivesps\");\n }\n }}\n label=\"Drives per Server\"\n value={drivesPerServer}\n disabled={selectedStorageClass === \"\"}\n min=\"1\"\n required\n error={validationErrors[\"drivesps\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n
    \n ) => {\n updateField(\"volumeSize\", e.target.value);\n cleanValidation(\"volume_size\");\n }}\n label=\"Total Size\"\n value={volumeSize}\n disabled={selectedStorageClass === \"\"}\n required\n error={validationErrors[\"volume_size\"] || \"\"}\n min=\"0\"\n overlayObject={\n {\n updateField(\"sizeFactor\", newValue);\n }}\n unitSelected={sizeFactor}\n unitsList={k8sScalarUnitsExcluding([\"Ki\", \"Mi\"])}\n disabled={selectedStorageClass === \"\"}\n />\n }\n />\n
    \n
    \n\n \n ) => {\n updateField(\"ecParity\", e.target.value as string);\n }}\n label=\"Erasure Code Parity\"\n disabled={selectedStorageClass === \"\"}\n value={ecParity}\n options={ecParityChoices}\n />\n \n Please select the desired parity. This setting will change the max\n usable capacity in the cluster\n \n \n\n \n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const tenantSize = state.tenants.createTenant.fields.tenantSize;\n return {\n volumeSize: tenantSize.volumeSize,\n sizeFactor: tenantSize.sizeFactor,\n drivesPerServer: tenantSize.drivesPerServer,\n nodes: tenantSize.nodes,\n memoryNode: tenantSize.memoryNode,\n ecParity: tenantSize.ecParity,\n ecParityChoices: tenantSize.ecParityChoices,\n cleanECChoices: tenantSize.cleanECChoices,\n resourcesSize: tenantSize.resourcesSize,\n distribution: tenantSize.distribution,\n ecParityCalc: tenantSize.ecParityCalc,\n untouchedECField: tenantSize.untouchedECField,\n limitSize: state.tenants.createTenant.limitSize,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n selectedStorageType:\n state.tenants.createTenant.fields.nameTenant.selectedStorageType,\n };\n};\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(TenantSize));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Opts } from \"../../../ListTenants/utils\";\nimport TenantSizeMK from \"./TenantSizeMK\";\nimport TenantSize from \"./TenantSize\";\n\nexport enum IMkEnvs {\n \"aws\",\n \"azure\",\n \"gcp\",\n \"default\",\n undefined,\n}\n\nexport interface IDriveSizing {\n driveSize: string;\n sizeUnit: string;\n}\n\nexport interface IntegrationConfiguration {\n typeSelection: string;\n storageClass: string;\n CPU: number;\n memory: number;\n drivesPerServer: number;\n driveSize: IDriveSizing;\n minimumVolumeSize?: IDriveSizing;\n}\n\nexport const AWSStorageTypes: Opts[] = [\n { label: \"Performance Optimized\", value: \"performance\" },\n { label: \"Capacity Optimized\", value: \"capacity\" },\n];\n\nexport const AzureStorageTypes: Opts[] = [\n { label: \"Standard_L32s_v2\", value: \"Standard_L32s_v2\" },\n { label: \"Standard_L48s_v2\", value: \"Standard_L48s_v2\" },\n { label: \"Standard_L64s_v2\", value: \"Standard_L64s_v2\" },\n];\n\nexport const resourcesConfigurations = {\n \"mp-mode-aws\": IMkEnvs.aws,\n \"mp-mode-azure\": IMkEnvs.azure,\n \"mp-mode-gcp\": IMkEnvs.gcp,\n};\n\nexport const AWSConfigurations: IntegrationConfiguration[] = [\n {\n typeSelection: \"performance\",\n storageClass: \"performance-optimized\",\n CPU: 64,\n memory: 128,\n driveSize: { driveSize: \"32\", sizeUnit: \"Gi\" },\n drivesPerServer: 4,\n minimumVolumeSize: { driveSize: \"32\", sizeUnit: \"Gi\" },\n },\n {\n typeSelection: \"capacity\",\n storageClass: \"capacity-optimized\",\n CPU: 64,\n memory: 128,\n driveSize: { driveSize: \"16\", sizeUnit: \"Ti\" },\n drivesPerServer: 18,\n minimumVolumeSize: { driveSize: \"16\", sizeUnit: \"Ti\" },\n },\n];\n\nexport const AzureConfigurations: IntegrationConfiguration[] = [\n {\n typeSelection: \"Standard_L8s_v2\",\n storageClass: \"local-nvme\",\n CPU: 8,\n memory: 64,\n driveSize: { driveSize: \"1787\", sizeUnit: \"Gi\" },\n drivesPerServer: 1,\n },\n {\n typeSelection: \"Standard_L16s_v2\",\n storageClass: \"local-nvme\",\n CPU: 16,\n memory: 128,\n driveSize: { driveSize: \"1787\", sizeUnit: \"Gi\" },\n drivesPerServer: 2,\n },\n {\n typeSelection: \"Standard_L32s_v2\",\n storageClass: \"local-nvme\",\n CPU: 32,\n memory: 256,\n driveSize: { driveSize: \"1787\", sizeUnit: \"Gi\" },\n drivesPerServer: 4,\n },\n {\n typeSelection: \"Standard_L48s_v2\",\n storageClass: \"local-nvme\",\n CPU: 48,\n memory: 384,\n driveSize: { driveSize: \"1787\", sizeUnit: \"Gi\" },\n drivesPerServer: 6,\n },\n {\n typeSelection: \"Standard_L64s_v2\",\n storageClass: \"local-nvme\",\n CPU: 64,\n memory: 512,\n driveSize: { driveSize: \"1787\", sizeUnit: \"Gi\" },\n drivesPerServer: 8,\n },\n];\n\nexport const GCPStorageTypes: Opts[] = [{ label: \"SSD\", value: \"ssd\" }];\n\nexport const GCPConfigurations: IntegrationConfiguration[] = [\n {\n typeSelection: \"ssd\",\n storageClass: \"local-ssd\",\n CPU: 32,\n memory: 128,\n driveSize: { driveSize: \"368\", sizeUnit: \"Gi\" },\n drivesPerServer: 24,\n },\n];\n\ninterface mkConfiguration {\n variantSelectorLabel?: string;\n variantSelectorValues?: Opts[];\n configurations?: IntegrationConfiguration[];\n sizingComponent?: JSX.Element;\n}\n\nexport const mkPanelConfigurations: { [index: number]: mkConfiguration } = {\n [IMkEnvs.aws]: {\n variantSelectorLabel: \"Storage Type\",\n variantSelectorValues: AWSStorageTypes,\n configurations: AWSConfigurations,\n sizingComponent: ,\n },\n [IMkEnvs.azure]: {\n variantSelectorLabel: \"VM Size\",\n variantSelectorValues: AzureStorageTypes,\n configurations: AzureConfigurations,\n sizingComponent: ,\n },\n [IMkEnvs.gcp]: {\n variantSelectorLabel: \"Storage Type\",\n variantSelectorValues: GCPStorageTypes,\n configurations: GCPConfigurations,\n sizingComponent: ,\n },\n [IMkEnvs.default]: {},\n [IMkEnvs.undefined]: {},\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../../actions\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { erasureCodeCalc, getBytes } from \"../../../../../../common/utils\";\nimport { clearValidationError } from \"../../../utils\";\nimport { ecListTransform, Opts } from \"../../../ListTenants/utils\";\nimport { IResourcesSize } from \"../../../ListTenants/types\";\nimport {\n IErasureCodeCalc,\n IStorageDistribution,\n} from \"../../../../../../common/types\";\nimport { commonFormValidation } from \"../../../../../../utils/validationFunctions\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport {\n IMkEnvs,\n IntegrationConfiguration,\n mkPanelConfigurations,\n} from \"./utils\";\n\ninterface ITenantSizeAWSProps {\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 selectedStorageType: string;\n cpuToUse: string;\n maxCPUsUse: string;\n formToRender?: IMkEnvs;\n integrationSelection: IntegrationConfiguration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n compositeFieldContainer: {\n display: \"flex\",\n alignItems: \"center\",\n },\n compositeAddOn: {\n marginLeft: 10,\n \"& div\": {\n marginBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n \"& div\": {\n marginTop: 5,\n },\n },\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantSizeMK = ({\n classes,\n updateAddField,\n isPageValid,\n volumeSize,\n sizeFactor,\n drivesPerServer,\n nodes,\n memoryNode,\n ecParity,\n ecParityChoices,\n cleanECChoices,\n resourcesSize,\n distribution,\n ecParityCalc,\n limitSize,\n cpuToUse,\n selectedStorageType,\n maxCPUsUse,\n formToRender,\n integrationSelection,\n}: ITenantSizeAWSProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"tenantSize\", field, value);\n },\n [updateAddField]\n );\n\n const updateMainField = useCallback(\n (field: string, value: string) => {\n updateAddField(\"nameTenant\", field, value);\n },\n [updateAddField]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n /*Debounce functions*/\n\n // Storage Quotas\n useEffect(() => {\n if (ecParityChoices.length > 0 && distribution.error === \"\") {\n const ecCodeValidated = erasureCodeCalc(\n cleanECChoices,\n distribution.persistentVolumes,\n distribution.pvSize,\n distribution.nodes\n );\n\n updateField(\"ecParityCalc\", ecCodeValidated);\n\n if (!cleanECChoices.includes(ecParity) || ecParity === \"\") {\n updateField(\"ecParity\", ecCodeValidated.defaultEC);\n }\n }\n }, [ecParity, ecParityChoices, distribution, cleanECChoices, updateField]);\n /*End debounce functions*/\n\n /*Set location Storage Types*/\n useEffect(() => {\n if (formToRender !== undefined && parseInt(nodes) >= 4) {\n const setConfigs = mkPanelConfigurations[formToRender];\n const keyCount = Object.keys(setConfigs).length;\n\n //Configuration is filled\n if (keyCount > 0) {\n const configs: IntegrationConfiguration[] = get(\n setConfigs,\n \"configurations\",\n []\n );\n\n const mainSelection = configs.find(\n (item) => item.typeSelection === selectedStorageType\n );\n\n if (mainSelection) {\n updateField(\"integrationSelection\", mainSelection);\n updateMainField(\"selectedStorageClass\", mainSelection.storageClass);\n\n let pvSize = parseInt(\n getBytes(\n mainSelection.driveSize.driveSize,\n mainSelection.driveSize.sizeUnit,\n true\n ),\n 10\n );\n\n const distrCalculate: IStorageDistribution = {\n pvSize,\n nodes: parseInt(nodes),\n disks: mainSelection.drivesPerServer,\n persistentVolumes: mainSelection.drivesPerServer * parseInt(nodes),\n error: \"\",\n };\n\n updateField(\"distribution\", distrCalculate);\n // apply requests, half of the available resources\n updateField(\n \"resourcesCPURequest\",\n Math.max(1, mainSelection.CPU / 2)\n );\n updateField(\n \"resourcesMemoryRequest\",\n Math.max(2, mainSelection.memory / 2)\n );\n }\n }\n }\n }, [nodes, selectedStorageType, formToRender, updateField, updateMainField]);\n\n /*Calculate Allocation End*/\n\n /* Validations of pages */\n\n useEffect(() => {\n const commonValidation = commonFormValidation([\n {\n fieldKey: \"nodes\",\n required: true,\n value: nodes,\n customValidation: parseInt(nodes) < 4,\n customValidationMessage: \"Al least 4 servers must be selected\",\n },\n ]);\n\n isPageValid(\n \"tenantSize\",\n !(\"nodes\" in commonValidation) &&\n distribution.error === \"\" &&\n ecParityCalc.error === 0 &&\n resourcesSize.error === \"\" &&\n ecParity !== \"\" &&\n parseInt(nodes) >= 4\n );\n\n setValidationErrors(commonValidation);\n }, [\n nodes,\n volumeSize,\n sizeFactor,\n memoryNode,\n distribution,\n ecParityCalc,\n resourcesSize,\n limitSize,\n selectedStorageType,\n cpuToUse,\n maxCPUsUse,\n isPageValid,\n drivesPerServer,\n ecParity,\n ]);\n\n useEffect(() => {\n if (integrationSelection.drivesPerServer !== 0) {\n // Get EC Value\n if (nodes.trim() !== \"\") {\n api\n .invoke(\n \"GET\",\n `api/v1/get-parity/${nodes}/${integrationSelection.drivesPerServer}`\n )\n .then((ecList: string[]) => {\n updateField(\"ecParityChoices\", ecListTransform(ecList));\n updateField(\"cleanECChoices\", ecList);\n })\n .catch((err: any) => {\n updateField(\"ecparityChoices\", []);\n isPageValid(\"tenantSize\", false);\n updateField(\"ecParity\", \"\");\n });\n }\n }\n }, [integrationSelection, nodes, isPageValid, updateField]);\n\n /* End Validation of pages */\n\n return (\n \n \n
    \n

    Tenant Size

    \n \n Please select the desired capacity\n \n
    \n
    \n {distribution.error !== \"\" && (\n \n
    {distribution.error}
    \n
    \n )}\n {resourcesSize.error !== \"\" && (\n \n
    {resourcesSize.error}
    \n
    \n )}\n \n ) => {\n if (e.target.validity.valid) {\n updateField(\"nodes\", e.target.value);\n cleanValidation(\"nodes\");\n }\n }}\n label=\"Number of Servers\"\n disabled={selectedStorageType === \"\"}\n value={nodes}\n min=\"4\"\n required\n error={validationErrors[\"nodes\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n updateField(\"ecParity\", e.target.value as string);\n }}\n label=\"Erasure Code Parity\"\n disabled={selectedStorageType === \"\"}\n value={ecParity}\n options={ecParityChoices}\n />\n \n Please select the desired parity. This setting will change the max\n usable capacity in the cluster\n \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => () => {\n const createTenant = state.tenants.createTenant;\n\n const {\n memoryNode,\n ecParityChoices,\n distribution,\n cleanECChoices,\n sizeFactor,\n ecParity,\n cpuToUse,\n integrationSelection,\n resourcesSize,\n drivesPerServer,\n maxCPUsUse,\n ecParityCalc,\n volumeSize,\n nodes,\n } = createTenant.fields.tenantSize;\n\n return {\n volumeSize,\n sizeFactor,\n drivesPerServer,\n nodes,\n memoryNode,\n ecParity,\n ecParityChoices,\n cleanECChoices,\n resourcesSize,\n distribution,\n ecParityCalc,\n cpuToUse,\n maxCPUsUse,\n integrationSelection,\n limitSize: createTenant.limitSize,\n selectedStorageType: createTenant.fields.nameTenant.selectedStorageType,\n };\n};\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(TenantSizeMK));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport get from \"lodash/get\";\nimport { ITenant } from \"./types\";\n\nexport interface Opts {\n label: string;\n value: string;\n}\n\nexport interface IQuotaElement {\n hard: number;\n name: string;\n}\n\nexport interface IQuotas {\n elements?: IQuotaElement[];\n name: string;\n}\n\nexport const minMemReq = 2147483648;\n\nexport interface KeyPair {\n id: string;\n encoded_cert: string;\n encoded_key: string;\n cert: string;\n key: string;\n}\n\nexport const ecListTransform = (\n ecList: string[],\n defaultEC: string = \"\"\n): Opts[] => {\n return ecList.map((value) => {\n let defLabel = value;\n if (defaultEC !== \"\" && value === defaultEC) {\n defLabel = `${value} (Default)`;\n }\n\n return {\n label: defLabel,\n value,\n };\n });\n};\n\nexport const getLimitSizes = (resourceQuotas: IQuotas) => {\n const quotas: IQuotaElement[] = get(resourceQuotas, \"elements\", []);\n\n const returnQuotas: any = {};\n\n quotas.forEach((rsQuota) => {\n const stCName = rsQuota.name.split(\n \".storageclass.storage.k8s.io/requests.storage\"\n )[0];\n const hard = get(rsQuota, \"hard\", 0);\n const used = get(rsQuota, \"used\", 0);\n\n returnQuotas[stCName] = hard - used;\n });\n\n return returnQuotas;\n};\n\nexport const tenantIsOnline = (tenant: ITenant): boolean => {\n if (tenant.currentState === \"\") {\n return false;\n }\n if (\n !tenant.status &&\n tenant.health_status !== \"green\" &&\n tenant.health_status !== \"yellow\"\n ) {\n return false;\n }\n if (\n tenant.status &&\n tenant.status.health_status !== \"green\" &&\n tenant.status.health_status !== \"yellow\"\n ) {\n return false;\n }\n return true;\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 { ITenant } from \"./ListTenants/types\";\nimport { Opts } from \"./ListTenants/utils\";\nimport {\n ADD_TENANT_ADD_CA_KEYPAIR,\n ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_ADD_CONSOLE_CERT,\n ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR,\n ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR,\n ADD_TENANT_ADD_MINIO_KEYPAIR,\n ADD_TENANT_DELETE_CA_KEYPAIR,\n ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_DELETE_MINIO_KEYPAIR,\n ADD_TENANT_ENCRYPTION_CLIENT_CERT,\n ADD_TENANT_ENCRYPTION_GEMALTO_CA,\n ADD_TENANT_ENCRYPTION_SERVER_CERT,\n ADD_TENANT_ENCRYPTION_VAULT_CA,\n ADD_TENANT_ENCRYPTION_VAULT_CERT,\n ADD_TENANT_RESET_FORM,\n ADD_TENANT_SET_CURRENT_PAGE,\n ADD_TENANT_SET_LIMIT_SIZE,\n ADD_TENANT_SET_PAGE_VALID,\n ADD_TENANT_SET_STORAGE_CLASSES_LIST,\n ADD_TENANT_SET_STORAGE_TYPE,\n ADD_TENANT_UPDATE_FIELD,\n ADD_TENANT_SET_KEY_PAIR_VALUE,\n ADD_TENANT_SET_TOLERATION_VALUE,\n ADD_TENANT_ADD_NEW_TOLERATION,\n ADD_TENANT_REMOVE_TOLERATION_ROW,\n TENANT_DETAILS_SET_CURRENT_TENANT,\n TENANT_DETAILS_SET_LOADING,\n TENANT_DETAILS_SET_TAB,\n TENANT_DETAILS_SET_TENANT,\n LabelKeyPair,\n ADD_POOL_SET_LOADING,\n ADD_POOL_RESET_FORM,\n ADD_POOL_SET_VALUE,\n IAddPoolFields,\n ADD_POOL_SET_PAGE_VALID,\n ADD_POOL_SET_POOL_STORAGE_CLASSES,\n ADD_POOL_SET_TOLERATION_VALUE,\n ADD_POOL_ADD_NEW_TOLERATION,\n ADD_POOL_REMOVE_TOLERATION_ROW,\n ADD_POOL_SET_KEY_PAIR_VALUE,\n POOL_DETAILS_SET_SELECTED_POOL,\n} from \"./types\";\nimport { ITolerationModel } from \"../../../common/types\";\n\n// Basic actions\nexport const setWizardPage = (page: number) => {\n return {\n type: ADD_TENANT_SET_CURRENT_PAGE,\n page,\n };\n};\n\nexport const updateAddField = (\n pageName: string,\n fieldName: string,\n value: any\n) => {\n return {\n type: ADD_TENANT_UPDATE_FIELD,\n pageName,\n field: fieldName,\n value,\n };\n};\n\nexport const isPageValid = (pageName: string, valid: boolean) => {\n return {\n type: ADD_TENANT_SET_PAGE_VALID,\n pageName,\n valid,\n };\n};\n\n// Name Tenant actions\n\nexport const setStorageClassesList = (storageClasses: Opts[]) => {\n return {\n type: ADD_TENANT_SET_STORAGE_CLASSES_LIST,\n storageClasses,\n };\n};\n\nexport const setStorageType = (storageType: string, features?: string[]) => {\n return {\n type: ADD_TENANT_SET_STORAGE_TYPE,\n storageType,\n features,\n };\n};\n\nexport const setLimitSize = (limitSize: any) => {\n return {\n type: ADD_TENANT_SET_LIMIT_SIZE,\n limitSize,\n };\n};\n\n// Security actions\n\nexport const addCaCertificate = () => {\n return {\n type: ADD_TENANT_ADD_CA_KEYPAIR,\n };\n};\n\nexport const deleteCaCertificate = (id: string) => {\n return {\n type: ADD_TENANT_DELETE_CA_KEYPAIR,\n id,\n };\n};\n\nexport const addFileToCaCertificates = (\n id: string,\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR,\n id,\n key,\n fileName,\n value,\n };\n};\n\nexport const addConsoleCaCertificate = () => {\n return {\n type: ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR,\n };\n};\n\nexport const deleteConsoleCaCertificate = (id: string) => {\n return {\n type: ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR,\n id,\n };\n};\n\nexport const addFileToConsoleCaCertificates = (\n id: string,\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR,\n id,\n key,\n fileName,\n value,\n };\n};\n\nexport const addKeyPair = () => {\n return {\n type: ADD_TENANT_ADD_MINIO_KEYPAIR,\n };\n};\n\nexport const deleteKeyPair = (id: string) => {\n return {\n type: ADD_TENANT_DELETE_MINIO_KEYPAIR,\n id,\n };\n};\n\nexport const addFileToKeyPair = (\n id: string,\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR,\n id,\n key,\n fileName,\n value,\n };\n};\n\nexport const addConsoleCertificate = (\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ADD_CONSOLE_CERT,\n key,\n fileName,\n value,\n };\n};\n\nexport const addFileServerCert = (\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ENCRYPTION_SERVER_CERT,\n key,\n fileName,\n value,\n };\n};\n\nexport const addFileClientCert = (\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ENCRYPTION_CLIENT_CERT,\n key,\n fileName,\n value,\n };\n};\n\nexport const addFileVaultCert = (\n key: string,\n fileName: string,\n value: string\n) => {\n return {\n type: ADD_TENANT_ENCRYPTION_VAULT_CERT,\n key,\n fileName,\n value,\n };\n};\n\nexport const addFileVaultCa = (fileName: string, value: string) => {\n return {\n type: ADD_TENANT_ENCRYPTION_VAULT_CA,\n fileName,\n value,\n };\n};\n\nexport const addFileGemaltoCa = (fileName: string, value: string) => {\n return {\n type: ADD_TENANT_ENCRYPTION_GEMALTO_CA,\n fileName,\n value,\n };\n};\n\nexport const resetAddTenantForm = () => {\n return {\n type: ADD_TENANT_RESET_FORM,\n };\n};\n\nexport const setTenantDetailsLoad = (loading: boolean) => {\n return {\n type: TENANT_DETAILS_SET_LOADING,\n state: loading,\n };\n};\n\nexport const setTenantName = (tenantName: string, tenantNamespace: string) => {\n return {\n type: TENANT_DETAILS_SET_CURRENT_TENANT,\n name: tenantName,\n namespace: tenantNamespace,\n };\n};\n\nexport const setTenantInfo = (tenant: ITenant | null) => {\n return {\n type: TENANT_DETAILS_SET_TENANT,\n tenant,\n };\n};\n\nexport const setTenantTab = (tab: string) => {\n return {\n type: TENANT_DETAILS_SET_TAB,\n tab,\n };\n};\n\nexport const setKeyValuePairs = (newArray: LabelKeyPair[]) => {\n return {\n type: ADD_TENANT_SET_KEY_PAIR_VALUE,\n newArray,\n };\n};\n\nexport const setTolerationInfo = (\n index: number,\n tolerationValue: ITolerationModel\n) => {\n return {\n type: ADD_TENANT_SET_TOLERATION_VALUE,\n index,\n toleration: tolerationValue,\n };\n};\n\nexport const addNewToleration = () => {\n return {\n type: ADD_TENANT_ADD_NEW_TOLERATION,\n };\n};\n\nexport const removeToleration = (index: number) => {\n return {\n type: ADD_TENANT_REMOVE_TOLERATION_ROW,\n index,\n };\n};\n\n// Add Pool\n\nexport const setPoolLoading = (state: boolean) => {\n return {\n type: ADD_POOL_SET_LOADING,\n state,\n };\n};\n\nexport const resetPoolForm = () => {\n return {\n type: ADD_POOL_RESET_FORM,\n };\n};\n\nexport const setPoolField = (\n page: keyof IAddPoolFields,\n field: string,\n value: any\n) => {\n return {\n type: ADD_POOL_SET_VALUE,\n page,\n field,\n value,\n };\n};\n\nexport const isPoolPageValid = (page: string, status: boolean) => {\n return {\n type: ADD_POOL_SET_PAGE_VALID,\n page,\n status,\n };\n};\n\nexport const setPoolStorageClasses = (storageClasses: Opts[]) => {\n return {\n type: ADD_POOL_SET_POOL_STORAGE_CLASSES,\n storageClasses,\n };\n};\n\nexport const setPoolTolerationInfo = (\n index: number,\n tolerationValue: ITolerationModel\n) => {\n return {\n type: ADD_POOL_SET_TOLERATION_VALUE,\n index,\n toleration: tolerationValue,\n };\n};\n\nexport const addNewPoolToleration = () => {\n return {\n type: ADD_POOL_ADD_NEW_TOLERATION,\n };\n};\n\nexport const removePoolToleration = (index: number) => {\n return {\n type: ADD_POOL_REMOVE_TOLERATION_ROW,\n index,\n };\n};\n\nexport const setPoolKeyValuePairs = (newArray: LabelKeyPair[]) => {\n return {\n type: ADD_POOL_SET_KEY_PAIR_VALUE,\n newArray,\n };\n};\n\nexport const setSelectedPool = (newPool: string | null) => {\n return {\n type: POOL_DETAILS_SET_SELECTED_POOL,\n pool: newPool,\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n IAWSConfig,\n IAzureConfig,\n IErasureCodeCalc,\n IGCPConfig,\n IGemaltoCredentials,\n ITolerationModel,\n} from \"../../../common/types\";\nimport { IResourcesSize, ITenant } from \"./ListTenants/types\";\nimport { KeyPair, Opts } from \"./ListTenants/utils\";\nimport { IntegrationConfiguration } from \"./AddTenant/Steps/TenantResources/utils\";\n\nexport const ADD_TENANT_SET_CURRENT_PAGE = \"ADD_TENANT/SET_CURRENT_PAGE\";\nexport const ADD_TENANT_UPDATE_FIELD = \"ADD_TENANT/UPDATE_FIELD\";\nexport const ADD_TENANT_SET_PAGE_VALID = \"ADD_TENANT/SET_PAGE_VALID\";\nexport const ADD_TENANT_RESET_FORM = \"ADD_TENANT/RESET_FORM\";\n\n// Name Tenant\nexport const ADD_TENANT_SET_STORAGE_CLASSES_LIST =\n \"ADD_TENANT/SET_STORAGE_CLASSES_LIST\";\nexport const ADD_TENANT_SET_LIMIT_SIZE = \"ADD_TENANT/SET_LIMIT_SIZE\";\nexport const ADD_TENANT_SET_STORAGE_TYPE =\n \"ADD_TENANT/ADD_TENANT_SET_STORAGE_TYPE\";\n\n// Security\nexport const ADD_TENANT_ADD_MINIO_KEYPAIR = \"ADD_TENANT/ADD_MINIO_KEYPAIR\";\nexport const ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR =\n \"ADD_TENANT/ADD_FILE_MINIO_KEYPAIR\";\nexport const ADD_TENANT_DELETE_MINIO_KEYPAIR =\n \"ADD_TENANT/DELETE_MINIO_KEYPAIR\";\nexport const ADD_TENANT_ADD_CA_KEYPAIR = \"ADD_TENANT/ADD_CA_KEYPAIR\";\nexport const ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR =\n \"ADD_TENANT/ADD_FILE_TO_CA_KEYPAIR\";\nexport const ADD_TENANT_DELETE_CA_KEYPAIR = \"ADD_TENANT/DELETE_CA_KEYPAIR\";\nexport const ADD_TENANT_ADD_CONSOLE_CERT = \"ADD_TENANT/ADD_CONSOLE_CERT\";\nexport const ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR =\n \"ADD_TENANT/ADD_CONSOLE_CA_KEYPAIR\";\nexport const ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR =\n \"ADD_TENANT/ADD_FILE_TO_CONSOLE_CA_KEYPAIR\";\nexport const ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR =\n \"ADD_TENANT/DELETE_CONSOLE_CA_KEYPAIR\";\n\n// Encryption\nexport const ADD_TENANT_ENCRYPTION_SERVER_CERT =\n \"ADD_TENANT/ENCRYPTION_SERVER_CERT\";\nexport const ADD_TENANT_ENCRYPTION_CLIENT_CERT =\n \"ADD_TENANT/ENCRYPTION_CLIENT_CERT\";\nexport const ADD_TENANT_ENCRYPTION_VAULT_CERT =\n \"ADD_TENANT/ENCRYPTION_VAULT_CERT\";\nexport const ADD_TENANT_ENCRYPTION_VAULT_CA = \"ADD_TENANT/ENCRYPTION_VAULT_CA\";\nexport const ADD_TENANT_ENCRYPTION_GEMALTO_CA =\n \"ADD_TENANT/ENCRYPTION_GEMALTO_CA\";\n\n// Affinity Node Selector KeyPairs\nexport const ADD_TENANT_SET_KEY_PAIR_VALUE = \"ADD_TENANT/SET_KEY_PAIR_VALUE\";\n\n// Affinity Tolerations\nexport const ADD_TENANT_SET_TOLERATION_VALUE =\n \"ADD_TENANT/SET_TOLERATION_VALUE\";\nexport const ADD_TENANT_ADD_NEW_TOLERATION = \"ADD_TENANT/ADD_NEW_TOLERATION\";\nexport const ADD_TENANT_REMOVE_TOLERATION_ROW =\n \"ADD_TENANT/REMOVE_TOLERATION_ROW\";\n\n// Tenant Details\nexport const TENANT_DETAILS_SET_LOADING = \"TENANT_DETAILS/SET_LOADING\";\nexport const TENANT_DETAILS_SET_CURRENT_TENANT =\n \"TENANT_DETAILS/SET_CURRENT_TENANT\";\nexport const TENANT_DETAILS_SET_TENANT = \"TENANT_DETAILS/SET_TENANT\";\nexport const TENANT_DETAILS_SET_TAB = \"TENANT_DETAILS/SET_TAB\";\n\n// Add Pool\nexport const ADD_POOL_SET_POOL_STORAGE_CLASSES =\n \"ADD_POOL/SET_POOL_STORAGE_CLASSES\";\nexport const ADD_POOL_SET_PAGE_VALID = \"ADD_POOL/SET_PAGE_VALID\";\nexport const ADD_POOL_SET_VALUE = \"ADD_POOL/SET_VALUE\";\nexport const ADD_POOL_SET_LOADING = \"ADD_POOL/SET_LOADING\";\nexport const ADD_POOL_RESET_FORM = \"ADD_POOL/RESET_FORM\";\nexport const ADD_POOL_SET_KEY_PAIR_VALUE = \"ADD_POOL/SET_KEY_PAIR_VALUE\";\n\n// Pool Tolerations\nexport const ADD_POOL_SET_TOLERATION_VALUE = \"ADD_POOL/SET_TOLERATION_VALUE\";\nexport const ADD_POOL_ADD_NEW_TOLERATION = \"ADD_POOL/ADD_NEW_TOLERATION\";\nexport const ADD_POOL_REMOVE_TOLERATION_ROW = \"ADD_POOL/REMOVE_TOLERATION_ROW\";\n\n// Pool Details\nexport const POOL_DETAILS_SET_SELECTED_POOL = \"POOL_DETAILS/SET_SELECTED_POOL\";\n\nexport interface ICertificateInfo {\n name: string;\n serialNumber: string;\n domains: string[];\n expiry: string;\n}\n\nexport interface ICustomCertificates {\n minio: ICertificateInfo[];\n minioCAs: ICertificateInfo[];\n console: ICertificateInfo[];\n consoleCAs: ICertificateInfo[];\n}\n\nexport interface ITenantSecurityResponse {\n autoCert: boolean;\n customCertificates: ICustomCertificates;\n}\n\nexport interface IVaultTLS {\n crt: ICertificateInfo;\n ca: ICertificateInfo;\n}\n\nexport interface IVaultAppRole {\n engine: string;\n id: string;\n secret: string;\n retry: string;\n}\n\nexport interface IVaultStatus {\n ping: string;\n}\n\nexport interface IVaultConfiguration {\n endpoint: string;\n engine: string;\n namespace: string;\n prefix: string;\n approle: IVaultAppRole;\n status: IVaultStatus;\n tls: IVaultTLS;\n}\n\nexport interface IGemaltoTLS {\n ca: ICertificateInfo;\n}\n\nexport interface IKeysecureConfiguration {\n endpoint: string;\n credentials: IGemaltoCredentials;\n tls: IGemaltoTLS;\n}\n\nexport interface IGemaltoConfiguration {\n keysecure: IKeysecureConfiguration;\n}\n\nexport interface ITenantEncryptionResponse {\n image: string;\n replicas: string;\n securityContext: ISecurityContext;\n server: ICertificateInfo;\n mtls_client: ICertificateInfo;\n vault?: IVaultConfiguration;\n aws?: IAWSConfig;\n gemalto?: IGemaltoConfiguration;\n gcp?: IGCPConfig;\n azure?: IAzureConfig;\n}\n\nexport interface ICreateTenant {\n page: number;\n validPages: string[];\n storageClasses: Opts[];\n limitSize: any;\n fields: IFieldStore;\n certificates: ICertificatesItems;\n nodeSelectorPairs: LabelKeyPair[];\n tolerations: ITolerationModel[];\n}\n\nexport interface ICertificatesItems {\n minioCertificates: KeyPair[];\n caCertificates: KeyPair[];\n consoleCaCertificates: KeyPair[];\n consoleCertificate: KeyPair;\n serverCertificate: KeyPair;\n clientCertificate: KeyPair;\n vaultCertificate: KeyPair;\n vaultCA: KeyPair;\n gemaltoCA: KeyPair;\n}\n\nexport interface IFieldStore {\n nameTenant: INameTenantFields;\n configure: IConfigureFields;\n identityProvider: IIdentityProviderFields;\n security: ISecurityFields;\n encryption: IEncryptionFields;\n tenantSize: ITenantSizeFields;\n affinity: ITenantAffinity;\n}\n\nexport interface INameTenantFields {\n tenantName: string;\n namespace: string;\n selectedStorageClass: string;\n selectedStorageType: string;\n}\n\nexport interface LabelKeyPair {\n key: string;\n value: string;\n}\n\nexport interface ISecurityContext {\n runAsUser: string;\n runAsGroup: string;\n runAsNonRoot: boolean;\n fsGroup: string;\n}\n\nexport interface IConfigureFields {\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 prometheusEnabled: boolean;\n tenantCustom: boolean;\n logSearchEnabled: boolean;\n logSearchVolumeSize: string;\n logSearchSizeFactor: string;\n logSearchSelectedStorageClass: string;\n logSearchImage: string;\n kesImage: string;\n logSearchPostgresImage: string;\n logSearchPostgresInitImage: string;\n prometheusVolumeSize: string;\n prometheusSizeFactor: string;\n prometheusSelectedStorageClass: string;\n prometheusImage: string;\n prometheusSidecarImage: string;\n prometheusInitImage: string;\n tenantSecurityContext: ISecurityContext;\n logSearchSecurityContext: ISecurityContext;\n logSearchPostgresSecurityContext: ISecurityContext;\n prometheusSecurityContext: ISecurityContext;\n}\n\nexport interface IIdentityProviderFields {\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}\n\nexport interface ISecurityFields {\n enableTLS: boolean;\n enableAutoCert: boolean;\n enableCustomCerts: boolean;\n}\n\nexport interface IEncryptionFields {\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 replicas: string;\n kesSecurityContext: ISecurityContext;\n}\n\nexport interface ITenantSizeFields {\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 untouchedECField: boolean;\n resourcesSize: IResourcesSize;\n distribution: any;\n ecParityCalc: IErasureCodeCalc;\n cpuToUse: string;\n limitSize: any;\n maxAllocatableResources: AllocableResourcesResponse;\n maxCPUsUse: string;\n maxMemorySize: string;\n integrationSelection: IntegrationConfiguration;\n\n resourcesSpecifyLimit: boolean;\n\n resourcesCPURequestError: string;\n resourcesCPURequest: string;\n resourcesCPULimitError: string;\n resourcesCPULimit: string;\n\n resourcesMemoryRequestError: string;\n resourcesMemoryRequest: string;\n resourcesMemoryLimitError: string;\n resourcesMemoryLimit: string;\n}\n\nexport interface ITenantAffinity {\n podAffinity: \"default\" | \"nodeSelector\" | \"none\";\n nodeSelectorLabels: string;\n withPodAntiAffinity: boolean;\n}\n\nexport interface ITenantDetails {\n currentTenant: string;\n currentNamespace: string;\n loadingTenant: boolean;\n tenantInfo: ITenant | null;\n currentTab: string;\n selectedPool: string | null;\n}\n\nexport interface ITenantState {\n createTenant: ICreateTenant;\n tenantDetails: ITenantDetails;\n addPool: IAddPool;\n}\n\nexport interface ILabelKeyPair {\n labelKey: string;\n labelValue: string;\n}\n\nexport interface AllocableResourcesResponse {\n min_allocatable_mem?: number;\n min_allocatable_cpu?: number;\n cpu_priority: NodeMaxAllocatableResources;\n mem_priority: NodeMaxAllocatableResources;\n}\n\nexport interface NodeMaxAllocatableResources {\n max_allocatable_cpu: number;\n max_allocatable_mem: number;\n}\n\nexport interface IAddPoolSetup {\n numberOfNodes: number;\n volumeSize: number;\n volumesPerServer: number;\n storageClass: string;\n}\n\nexport interface IPoolConfiguration {\n securityContextEnabled: boolean;\n securityContext: ISecurityContext;\n}\n\nexport interface IAddPoolFields {\n setup: IAddPoolSetup;\n affinity: ITenantAffinity;\n configuration: IPoolConfiguration;\n tolerations: ITolerationModel[];\n nodeSelectorPairs: LabelKeyPair[];\n}\n\nexport interface IAddPool {\n addPoolLoading: boolean;\n validPages: string[];\n storageClasses: Opts[];\n limitSize: any;\n fields: IAddPoolFields;\n}\n\ninterface SetTenantWizardPage {\n type: typeof ADD_TENANT_SET_CURRENT_PAGE;\n page: number;\n}\n\ninterface UpdateATField {\n type: typeof ADD_TENANT_UPDATE_FIELD;\n pageName: keyof IFieldStore;\n field: keyof FieldsToHandle;\n value: any;\n}\n\ninterface SetPageValid {\n type: typeof ADD_TENANT_SET_PAGE_VALID;\n pageName: keyof IFieldStore;\n valid: boolean;\n}\n\ninterface SetStorageClassesList {\n type: typeof ADD_TENANT_SET_STORAGE_CLASSES_LIST;\n storageClasses: Opts[];\n}\n\ninterface SetLimitSize {\n type: typeof ADD_TENANT_SET_LIMIT_SIZE;\n limitSize: any;\n}\n\nexport interface SetStorageType {\n type: typeof ADD_TENANT_SET_STORAGE_TYPE;\n storageType: string;\n features?: string[];\n}\n\ninterface AddMinioKeyPair {\n type: typeof ADD_TENANT_ADD_MINIO_KEYPAIR;\n}\n\ninterface AddFileToMinioKeyPair {\n type: typeof ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR;\n id: string;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface DeleteMinioKeyPair {\n type: typeof ADD_TENANT_DELETE_MINIO_KEYPAIR;\n id: string;\n}\n\ninterface AddCAKeyPair {\n type: typeof ADD_TENANT_ADD_CA_KEYPAIR;\n}\n\ninterface AddFileToCAKeyPair {\n type: typeof ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR;\n id: string;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface DeleteCAKeyPair {\n type: typeof ADD_TENANT_DELETE_CA_KEYPAIR;\n id: string;\n}\n\ninterface AddConsoleCAKeyPair {\n type: typeof ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR;\n}\n\ninterface AddFileToConsoleCAKeyPair {\n type: typeof ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR;\n id: string;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface DeleteConsoleCAKeyPair {\n type: typeof ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR;\n id: string;\n}\n\ninterface AddFileConsoleCert {\n type: typeof ADD_TENANT_ADD_CONSOLE_CERT;\n key: string;\n fileName: string;\n value: string;\n}\n\n// Encryption Certs\ninterface AddFileServerCert {\n type: typeof ADD_TENANT_ENCRYPTION_SERVER_CERT;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface AddFileClientCert {\n type: typeof ADD_TENANT_ENCRYPTION_CLIENT_CERT;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface AddFileVaultCert {\n type: typeof ADD_TENANT_ENCRYPTION_VAULT_CERT;\n key: string;\n fileName: string;\n value: string;\n}\n\ninterface AddFileVaultCa {\n type: typeof ADD_TENANT_ENCRYPTION_VAULT_CA;\n fileName: string;\n value: string;\n}\n\ninterface AddFileGemaltoCa {\n type: typeof ADD_TENANT_ENCRYPTION_GEMALTO_CA;\n fileName: string;\n value: string;\n}\n\ninterface ResetForm {\n type: typeof ADD_TENANT_RESET_FORM;\n}\n\ninterface SetNodeSelectorKeyPairValueArray {\n type: typeof ADD_TENANT_SET_KEY_PAIR_VALUE;\n newArray: LabelKeyPair[];\n}\n\ninterface SetLoadingTenant {\n type: typeof TENANT_DETAILS_SET_LOADING;\n state: boolean;\n}\n\ninterface SetTenantName {\n type: typeof TENANT_DETAILS_SET_CURRENT_TENANT;\n name: string;\n namespace: string;\n}\n\ninterface SetTenantDetails {\n type: typeof TENANT_DETAILS_SET_TENANT;\n tenant: ITenant | null;\n}\n\ninterface SetTenantTab {\n type: typeof TENANT_DETAILS_SET_TAB;\n tab: string;\n}\n\ninterface SetTolerationValue {\n type: typeof ADD_TENANT_SET_TOLERATION_VALUE;\n index: number;\n toleration: ITolerationModel;\n}\n\ninterface AddNewToleration {\n type: typeof ADD_TENANT_ADD_NEW_TOLERATION;\n}\n\ninterface RemoveTolerationRow {\n type: typeof ADD_TENANT_REMOVE_TOLERATION_ROW;\n index: number;\n}\n\ninterface SetPoolLoading {\n type: typeof ADD_POOL_SET_LOADING;\n state: boolean;\n}\n\ninterface ResetPoolForm {\n type: typeof ADD_POOL_RESET_FORM;\n}\n\ninterface SetFieldValue {\n type: typeof ADD_POOL_SET_VALUE;\n page: keyof IAddPoolFields;\n field: string;\n value: any;\n}\n\ninterface SetPoolPageValid {\n type: typeof ADD_POOL_SET_PAGE_VALID;\n page: string;\n status: boolean;\n}\n\ninterface SetPoolStorageClasses {\n type: typeof ADD_POOL_SET_POOL_STORAGE_CLASSES;\n storageClasses: Opts[];\n}\n\ninterface SetPoolTolerationValue {\n type: typeof ADD_POOL_SET_TOLERATION_VALUE;\n index: number;\n toleration: ITolerationModel;\n}\n\ninterface AddNewPoolToleration {\n type: typeof ADD_POOL_ADD_NEW_TOLERATION;\n}\n\ninterface RemovePoolTolerationRow {\n type: typeof ADD_POOL_REMOVE_TOLERATION_ROW;\n index: number;\n}\n\ninterface SetPoolSelectorKeyPairValueArray {\n type: typeof ADD_POOL_SET_KEY_PAIR_VALUE;\n newArray: LabelKeyPair[];\n}\n\ninterface SetSelectedPool {\n type: typeof POOL_DETAILS_SET_SELECTED_POOL;\n pool: string | null;\n}\n\nexport type FieldsToHandle = INameTenantFields;\n\nexport type TenantsManagementTypes =\n | SetTenantWizardPage\n | UpdateATField\n | SetPageValid\n | SetStorageClassesList\n | SetStorageType\n | SetLimitSize\n | AddMinioKeyPair\n | DeleteMinioKeyPair\n | AddCAKeyPair\n | DeleteCAKeyPair\n | AddConsoleCAKeyPair\n | DeleteConsoleCAKeyPair\n | AddFileConsoleCert\n | AddFileToMinioKeyPair\n | AddFileToCAKeyPair\n | AddFileToConsoleCAKeyPair\n | AddFileServerCert\n | AddFileClientCert\n | AddFileVaultCert\n | AddFileVaultCa\n | AddFileGemaltoCa\n | ResetForm\n | SetNodeSelectorKeyPairValueArray\n | SetLoadingTenant\n | SetTenantName\n | SetTenantDetails\n | SetTenantTab\n | SetTolerationValue\n | AddNewToleration\n | RemoveTolerationRow\n | SetPoolLoading\n | ResetPoolForm\n | SetFieldValue\n | SetPoolPageValid\n | SetPoolStorageClasses\n | SetPoolTolerationValue\n | AddNewPoolToleration\n | RemovePoolTolerationRow\n | SetPoolSelectorKeyPairValueArray\n | SetSelectedPool;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\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 clearValidationError = (\n validationErrors: any,\n fieldKey: string\n) => {\n const newValidationElement = { ...validationErrors };\n delete newValidationElement[fieldKey];\n\n return newValidationElement;\n};\n\n// Generates a valid access/secret key string\nexport const getRandomString = function (length = 16): string {\n let retval = \"\";\n let legalcharacters =\n \"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n for (let i = 0; i < length; i++) {\n retval +=\n legalcharacters[Math.floor(Math.random() * legalcharacters.length)];\n }\n return retval;\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 { TraceMessage } from \"./types\";\n\nexport const TRACE_MESSAGE_RECEIVED = \"TRACE/MESSAGE_RECEIVED\";\nexport const TRACE_RESET_MESSAGES = \"TRACE/RESET_MESSAGES\";\nexport const TRACE_SET_STARTED = \"TRACE/SET_STARTED\";\n\ninterface TraceMessageReceivedAction {\n type: typeof TRACE_MESSAGE_RECEIVED;\n message: TraceMessage;\n}\n\ninterface TraceResetMessagesAction {\n type: typeof TRACE_RESET_MESSAGES;\n}\n\ninterface TraceSetStarted {\n type: typeof TRACE_SET_STARTED;\n status: boolean;\n}\n\nexport type TraceActionTypes =\n | TraceMessageReceivedAction\n | TraceResetMessagesAction\n | TraceSetStarted;\n\nexport function traceMessageReceived(message: TraceMessage) {\n return {\n type: TRACE_MESSAGE_RECEIVED,\n message: message,\n };\n}\n\nexport function traceResetMessages() {\n return {\n type: TRACE_RESET_MESSAGES,\n };\n}\n\nexport function setTraceStarted(status: boolean) {\n return {\n type: TRACE_SET_STARTED,\n status,\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 { EventInfo } from \"./types\";\n\nexport const WATCH_MESSAGE_RECEIVED = \"WATCH_MESSAGE_RECEIVED\";\nexport const WATCH_RESET_MESSAGES = \"WATCH_RESET_MESSAGES\";\n\ninterface WatchMessageReceivedAction {\n type: typeof WATCH_MESSAGE_RECEIVED;\n message: EventInfo;\n}\n\ninterface WatchResetMessagesAction {\n type: typeof WATCH_RESET_MESSAGES;\n}\n\nexport type WatchActionTypes =\n | WatchMessageReceivedAction\n | WatchResetMessagesAction;\n\nexport function watchMessageReceived(message: EventInfo) {\n return {\n type: WATCH_MESSAGE_RECEIVED,\n message: message,\n };\n}\n\nexport function watchResetMessages() {\n return {\n type: WATCH_RESET_MESSAGES,\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 { ISessionResponse } from \"./types\";\n\nexport const SESSION_RESPONSE = \"SESSION_RESPONSE\";\nexport const RESET_SESSION = \"RESET_SESSION\";\n\ninterface SessionAction {\n type: typeof SESSION_RESPONSE;\n message: ISessionResponse;\n}\n\ninterface ResetSessionAction {\n type: typeof RESET_SESSION;\n}\n\nexport type SessionActionTypes = SessionAction | ResetSessionAction;\n\nexport function saveSessionResponse(message: ISessionResponse) {\n return {\n type: SESSION_RESPONSE,\n message: message,\n };\n}\n\nexport function resetSession() {\n return {\n type: RESET_SESSION,\n };\n}\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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 MENU_OPEN,\n OPERATOR_MODE,\n SERVER_IS_LOADING,\n SERVER_NEEDS_RESTART,\n SystemActionTypes,\n SystemState,\n USER_LOGGED,\n SET_LOADING_PROGRESS,\n SET_SNACK_BAR_MESSAGE,\n SET_ERROR_SNACK_MESSAGE,\n SET_SERVER_DIAG_STAT,\n SET_SNACK_MODAL_MESSAGE,\n SET_MODAL_ERROR_MESSAGE,\n GLOBAL_SET_DISTRIBUTED_SETUP,\n} from \"./types\";\n\n// determine whether we have the sidebar state stored on localstorage\nconst initSideBarOpen = localStorage.getItem(\"sidebarOpen\")\n ? JSON.parse(localStorage.getItem(\"sidebarOpen\")!)[\"open\"]\n : true;\n\nconst initialState: SystemState = {\n loggedIn: false,\n operatorMode: false,\n session: \"\",\n userName: \"\",\n sidebarOpen: initSideBarOpen,\n serverNeedsRestart: false,\n serverIsLoading: false,\n loadingProgress: 100,\n snackBar: {\n message: \"\",\n detailedErrorMsg: \"\",\n type: \"message\",\n },\n modalSnackBar: {\n message: \"\",\n detailedErrorMsg: \"\",\n type: \"message\",\n },\n serverDiagnosticStatus: \"\",\n distributedSetup: false,\n};\n\nexport function systemReducer(\n state = initialState,\n action: SystemActionTypes\n): SystemState {\n switch (action.type) {\n case USER_LOGGED:\n return {\n ...state,\n loggedIn: action.logged,\n };\n case OPERATOR_MODE:\n return {\n ...state,\n operatorMode: action.operatorMode,\n };\n case MENU_OPEN:\n // persist preference to local storage\n localStorage.setItem(\n \"sidebarOpen\",\n JSON.stringify({ open: action.open })\n );\n return {\n ...state,\n sidebarOpen: action.open,\n };\n case SERVER_NEEDS_RESTART:\n return {\n ...state,\n serverNeedsRestart: action.needsRestart,\n };\n\n case SERVER_IS_LOADING:\n return {\n ...state,\n serverIsLoading: action.isLoading,\n };\n case SET_LOADING_PROGRESS:\n return {\n ...state,\n loadingProgress: action.loadingProgress,\n };\n case SET_SNACK_BAR_MESSAGE:\n return {\n ...state,\n snackBar: {\n message: action.message,\n detailedErrorMsg: \"\",\n type: \"message\",\n },\n };\n case SET_ERROR_SNACK_MESSAGE:\n return {\n ...state,\n snackBar: {\n message: action.message.errorMessage,\n detailedErrorMsg: action.message.detailedError,\n type: \"error\",\n },\n };\n case SET_SNACK_MODAL_MESSAGE:\n return {\n ...state,\n modalSnackBar: {\n message: action.message,\n detailedErrorMsg: \"\",\n type: \"message\",\n },\n };\n case SET_MODAL_ERROR_MESSAGE:\n return {\n ...state,\n modalSnackBar: {\n message: action.message.errorMessage,\n detailedErrorMsg: action.message.detailedError,\n type: \"error\",\n },\n };\n case SET_SERVER_DIAG_STAT:\n return {\n ...state,\n serverDiagnosticStatus: action.serverDiagnosticStatus,\n };\n case GLOBAL_SET_DISTRIBUTED_SETUP:\n return {\n ...state,\n distributedSetup: action.distributedSetup,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n TRACE_MESSAGE_RECEIVED,\n TRACE_RESET_MESSAGES,\n TRACE_SET_STARTED,\n TraceActionTypes,\n} from \"./actions\";\nimport { TraceMessage } from \"./types\";\n\nexport interface TraceState {\n messages: TraceMessage[];\n traceStarted: boolean;\n}\n\nconst initialState: TraceState = {\n messages: [],\n traceStarted: false,\n};\n\nexport function traceReducer(\n state = initialState,\n action: TraceActionTypes\n): TraceState {\n switch (action.type) {\n case TRACE_MESSAGE_RECEIVED:\n return {\n ...state,\n messages: [...state.messages, action.message],\n };\n case TRACE_RESET_MESSAGES:\n return {\n ...state,\n messages: [],\n };\n case TRACE_SET_STARTED:\n return {\n ...state,\n traceStarted: action.status,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n LOG_MESSAGE_RECEIVED,\n LOG_RESET_MESSAGES,\n LOG_SET_STARTED,\n LogActionTypes,\n} from \"./actions\";\nimport { LogMessage } from \"./types\";\n\nexport interface LogState {\n logMessages: LogMessage[];\n logsStarted: boolean;\n}\n\nconst initialState: LogState = {\n logMessages: [],\n logsStarted: false,\n};\n\nexport function logReducer(\n state = initialState,\n action: LogActionTypes\n): LogState {\n switch (action.type) {\n case LOG_MESSAGE_RECEIVED:\n // if it's a simple ConsoleMsg, append it to the current ConsoleMsg in the\n // state if any\n let msgs = [...state.logMessages];\n\n if (\n msgs.length > 0 &&\n action.message.time.getFullYear() === 1 &&\n action.message.ConsoleMsg !== \"\"\n ) {\n for (let m in msgs) {\n if (msgs[m].time.getFullYear() === 1) {\n msgs[\n m\n ].ConsoleMsg = `${msgs[m].ConsoleMsg}\\n${action.message.ConsoleMsg}`;\n }\n }\n } else {\n msgs.push(action.message);\n }\n\n return {\n ...state,\n logMessages: msgs,\n };\n case LOG_RESET_MESSAGES:\n return {\n ...state,\n logMessages: [],\n };\n case LOG_SET_STARTED:\n return {\n ...state,\n logsStarted: action.status,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n HEALTH_INFO_MESSAGE_RECEIVED,\n HEALTH_INFO_RESET_MESSAGE,\n HealthInfoActionTypes,\n} from \"./actions\";\nimport { HealthInfoMessage } from \"./types\";\n\nexport interface HealthInfoState {\n message: HealthInfoMessage;\n}\n\nconst initialState: HealthInfoState = {\n message: {} as HealthInfoMessage,\n};\n\nexport function healthInfoReducer(\n state = initialState,\n action: HealthInfoActionTypes\n): HealthInfoState {\n switch (action.type) {\n case HEALTH_INFO_MESSAGE_RECEIVED:\n return {\n ...state,\n message: action.message,\n };\n case HEALTH_INFO_RESET_MESSAGE:\n return {\n ...state,\n message: {} as HealthInfoMessage,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n WATCH_MESSAGE_RECEIVED,\n WATCH_RESET_MESSAGES,\n WatchActionTypes,\n} from \"./actions\";\nimport { EventInfo } from \"./types\";\n\nexport interface WatchState {\n messages: EventInfo[];\n}\n\nconst initialState: WatchState = {\n messages: [],\n};\n\nexport function watchReducer(\n state = initialState,\n action: WatchActionTypes\n): WatchState {\n switch (action.type) {\n case WATCH_MESSAGE_RECEIVED:\n return {\n ...state,\n messages: [...state.messages, action.message],\n };\n case WATCH_RESET_MESSAGES:\n return {\n ...state,\n messages: [],\n };\n default:\n return state;\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 { ISessionResponse } from \"./types\";\nimport { RESET_SESSION, SESSION_RESPONSE, SessionActionTypes } from \"./actions\";\n\nexport interface ConsoleState {\n session: ISessionResponse;\n}\n\nconst initialState: ConsoleState = {\n session: {\n operator: false,\n status: \"\",\n features: [],\n distributedMode: false,\n permissions: {},\n },\n};\n\nexport function consoleReducer(\n state = initialState,\n action: SessionActionTypes\n): ConsoleState {\n switch (action.type) {\n case SESSION_RESPONSE:\n return {\n ...state,\n session: action.message,\n };\n case RESET_SESSION:\n return {\n ...state,\n session: initialState.session,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n ADD_BUCKET_LOCKING,\n ADD_BUCKET_NAME,\n ADD_BUCKET_OPEN,\n ADD_BUCKET_QUOTA,\n ADD_BUCKET_QUOTA_SIZE,\n ADD_BUCKET_QUOTA_TYPE,\n ADD_BUCKET_QUOTA_UNIT,\n ADD_BUCKET_RESET,\n ADD_BUCKET_RETENTION,\n ADD_BUCKET_RETENTION_MODE,\n ADD_BUCKET_RETENTION_UNIT,\n ADD_BUCKET_RETENTION_VALIDITY,\n ADD_BUCKET_VERSIONED,\n BUCKET_DETAILS_LOADING,\n BUCKET_DETAILS_SET_INFO,\n BUCKET_DETAILS_SET_TAB,\n BucketActionTypes,\n} from \"./actions\";\nimport { BucketInfo } from \"./types\";\n\nexport interface BucketsState {\n open: boolean;\n addBucketName: string;\n addBucketVersioningEnabled: boolean;\n addBucketLockingEnabled: boolean;\n addBucketQuotaEnabled: boolean;\n addBucketQuotaType: string;\n addBucketQuotaSize: string;\n addBucketQuotaUnit: string;\n addBucketRetentionEnabled: boolean;\n addBucketRetentionMode: string;\n addBucketRetentionUnit: string;\n addBucketRetentionValidity: number;\n bucketDetails: BucketDetailsState;\n}\n\nexport interface BucketDetailsState {\n selectedTab: string;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst initialState: BucketsState = {\n open: false,\n addBucketName: \"\",\n addBucketVersioningEnabled: false,\n addBucketLockingEnabled: false,\n addBucketQuotaEnabled: false,\n addBucketQuotaType: \"hard\",\n addBucketQuotaSize: \"1\",\n addBucketQuotaUnit: \"TiB\",\n addBucketRetentionEnabled: false,\n addBucketRetentionMode: \"compliance\",\n addBucketRetentionUnit: \"days\",\n addBucketRetentionValidity: 1,\n bucketDetails: {\n selectedTab: \"summary\",\n loadingBucket: false,\n bucketInfo: null,\n },\n};\n\nexport function bucketsReducer(\n state = initialState,\n action: BucketActionTypes\n): BucketsState {\n switch (action.type) {\n case ADD_BUCKET_OPEN:\n return {\n ...state,\n open: action.open,\n };\n case ADD_BUCKET_NAME:\n return {\n ...state,\n addBucketName: action.name,\n };\n case ADD_BUCKET_VERSIONED:\n return {\n ...state,\n addBucketVersioningEnabled: action.versioned,\n };\n case ADD_BUCKET_LOCKING:\n return {\n ...state,\n addBucketLockingEnabled: action.locking,\n };\n case ADD_BUCKET_QUOTA:\n return {\n ...state,\n addBucketQuotaEnabled: action.quota,\n };\n case ADD_BUCKET_QUOTA_TYPE:\n return {\n ...state,\n addBucketQuotaType: action.quotaType,\n };\n case ADD_BUCKET_QUOTA_SIZE:\n return {\n ...state,\n addBucketQuotaSize: action.quotaSize,\n };\n case ADD_BUCKET_QUOTA_UNIT:\n return {\n ...state,\n addBucketQuotaUnit: action.quotaUnit,\n };\n case ADD_BUCKET_RETENTION:\n return {\n ...state,\n addBucketRetentionEnabled: action.retention,\n };\n case ADD_BUCKET_RETENTION_MODE:\n return {\n ...state,\n addBucketRetentionMode: action.retentionMode,\n };\n case ADD_BUCKET_RETENTION_UNIT:\n return {\n ...state,\n addBucketRetentionUnit: action.retentionUnit,\n };\n case ADD_BUCKET_RETENTION_VALIDITY:\n return {\n ...state,\n addBucketRetentionValidity: action.retentionValidity,\n };\n case BUCKET_DETAILS_SET_TAB:\n return {\n ...state,\n bucketDetails: {\n ...state.bucketDetails,\n selectedTab: action.tab,\n },\n };\n case ADD_BUCKET_RESET:\n return {\n ...state,\n addBucketName: \"\",\n addBucketVersioningEnabled: false,\n addBucketLockingEnabled: false,\n addBucketQuotaEnabled: false,\n addBucketQuotaType: \"hard\",\n addBucketQuotaSize: \"1\",\n addBucketQuotaUnit: \"TiB\",\n addBucketRetentionEnabled: false,\n addBucketRetentionMode: \"compliance\",\n addBucketRetentionUnit: \"days\",\n addBucketRetentionValidity: 1,\n };\n case BUCKET_DETAILS_LOADING:\n return {\n ...state,\n bucketDetails: {\n ...state.bucketDetails,\n loadingBucket: action.state,\n },\n };\n case BUCKET_DETAILS_SET_INFO:\n return {\n ...state,\n bucketDetails: {\n ...state.bucketDetails,\n bucketInfo: action.info,\n },\n };\n default:\n return state;\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 {\n REWIND_SET_ENABLE,\n REWIND_RESET_REWIND,\n BUCKET_BROWSER_VERSIONS_MODE_ENABLED,\n ObjectBrowserActionTypes,\n OBJECT_MANAGER_NEW_OBJECT,\n OBJECT_MANAGER_UPDATE_PROGRESS_OBJECT,\n OBJECT_MANAGER_COMPLETE_OBJECT,\n OBJECT_MANAGER_DELETE_FROM_OBJECT_LIST,\n OBJECT_MANAGER_CLEAN_LIST,\n OBJECT_MANAGER_TOGGLE_LIST,\n OBJECT_MANAGER_CLOSE_LIST,\n OBJECT_MANAGER_OPEN_LIST,\n OBJECT_MANAGER_SET_SEARCH_OBJECT,\n BUCKET_BROWSER_VERSIONS_SET_SEARCH,\n BUCKET_BROWSER_SET_SELECTED_VERSION,\n BUCKET_BROWSER_SHOW_DELETED,\n BUCKET_BROWSER_LOAD_VERSIONS,\n BUCKET_BROWSER_LOAD_OBJECT_DETAILS,\n} from \"./actions\";\n\nexport interface Route {\n route: string;\n label: string;\n type: string;\n}\n\nexport interface RewindItem {\n rewindEnabled: boolean;\n bucketToRewind: string;\n dateToRewind: any;\n}\n\nexport interface ObjectBrowserState {\n rewind: RewindItem;\n objectManager: ObjectManager;\n searchObjects: string;\n loadingVersions: boolean;\n loadingObjectInfo: boolean;\n versionsMode: boolean;\n versionedFile: string;\n searchVersions: string;\n selectedVersion: string;\n showDeleted: boolean;\n}\n\nexport interface ObjectBrowserReducer {\n objectBrowser: ObjectBrowserState;\n}\n\nexport interface ObjectManager {\n objectsToManage: IFileItem[];\n managerOpen: boolean;\n}\n\nexport interface IFileItem {\n type: \"download\" | \"upload\";\n instanceID: string;\n bucketName: string;\n prefix: string;\n percentage: number;\n done: boolean;\n waitingForFile: boolean;\n}\n\nconst defaultRewind = {\n rewindEnabled: false,\n bucketToRewind: \"\",\n dateToRewind: null,\n};\n\nconst initialState: ObjectBrowserState = {\n versionsMode: false,\n loadingVersions: true,\n loadingObjectInfo: true,\n rewind: {\n ...defaultRewind,\n },\n objectManager: {\n objectsToManage: [],\n managerOpen: false,\n },\n searchObjects: \"\",\n versionedFile: \"\",\n searchVersions: \"\",\n selectedVersion: \"\",\n showDeleted: false,\n};\n\nexport function objectBrowserReducer(\n state = initialState,\n action: ObjectBrowserActionTypes\n): ObjectBrowserState {\n switch (action.type) {\n case REWIND_SET_ENABLE:\n const rewindSetEnabled = {\n ...state.rewind,\n rewindEnabled: action.state,\n bucketToRewind: action.bucket,\n dateToRewind: action.dateRewind,\n };\n return { ...state, rewind: rewindSetEnabled };\n case REWIND_RESET_REWIND:\n const resetItem = {\n rewindEnabled: false,\n bucketToRewind: \"\",\n dateToRewind: null,\n };\n return { ...state, rewind: resetItem };\n case BUCKET_BROWSER_VERSIONS_MODE_ENABLED:\n const objectN = !action.status ? \"\" : action.objectName;\n\n return {\n ...state,\n versionsMode: action.status,\n versionedFile: objectN,\n selectedVersion: \"\",\n };\n case OBJECT_MANAGER_NEW_OBJECT:\n const cloneObjects = [\n action.newObject,\n ...state.objectManager.objectsToManage,\n ];\n\n return {\n ...state,\n objectManager: {\n objectsToManage: cloneObjects,\n managerOpen: state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_UPDATE_PROGRESS_OBJECT:\n const copyManager = [...state.objectManager.objectsToManage];\n\n const itemUpdate = state.objectManager.objectsToManage.findIndex(\n (item) => item.instanceID === action.instanceID\n );\n\n if (itemUpdate === -1) {\n return { ...state };\n }\n\n copyManager[itemUpdate].percentage = action.progress;\n copyManager[itemUpdate].waitingForFile = false;\n\n return {\n ...state,\n objectManager: {\n objectsToManage: copyManager,\n managerOpen: state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_COMPLETE_OBJECT:\n const copyObject = [...state.objectManager.objectsToManage];\n\n const objectToComplete = state.objectManager.objectsToManage.findIndex(\n (item) => item.instanceID === action.instanceID\n );\n\n if (objectToComplete === -1) {\n return { ...state };\n }\n\n copyObject[objectToComplete].percentage = 100;\n copyObject[objectToComplete].waitingForFile = false;\n copyObject[objectToComplete].done = true;\n\n return {\n ...state,\n objectManager: {\n objectsToManage: copyObject,\n managerOpen: state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_DELETE_FROM_OBJECT_LIST:\n const notObject = state.objectManager.objectsToManage.filter(\n (element) => element.instanceID !== action.instanceID\n );\n\n return {\n ...state,\n objectManager: {\n objectsToManage: notObject,\n managerOpen:\n notObject.length === 0 ? false : state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_CLEAN_LIST:\n const nonCompletedList = state.objectManager.objectsToManage.filter(\n (item) => item.percentage !== 100\n );\n\n return {\n ...state,\n objectManager: {\n objectsToManage: nonCompletedList,\n managerOpen:\n nonCompletedList.length === 0\n ? false\n : state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_TOGGLE_LIST:\n return {\n ...state,\n objectManager: {\n ...state.objectManager,\n managerOpen: !state.objectManager.managerOpen,\n },\n };\n case OBJECT_MANAGER_OPEN_LIST:\n return {\n ...state,\n objectManager: {\n ...state.objectManager,\n managerOpen: true,\n },\n };\n case OBJECT_MANAGER_CLOSE_LIST:\n return {\n ...state,\n objectManager: {\n ...state.objectManager,\n managerOpen: false,\n },\n };\n case OBJECT_MANAGER_SET_SEARCH_OBJECT:\n return {\n ...state,\n searchObjects: action.searchString,\n };\n case BUCKET_BROWSER_VERSIONS_SET_SEARCH:\n return {\n ...state,\n searchVersions: action.searchString,\n };\n case BUCKET_BROWSER_SET_SELECTED_VERSION:\n return {\n ...state,\n selectedVersion: action.selectedVersion,\n };\n case BUCKET_BROWSER_SHOW_DELETED:\n return {\n ...state,\n showDeleted: action.status,\n };\n case BUCKET_BROWSER_LOAD_VERSIONS:\n return {\n ...state,\n loadingVersions: action.status,\n };\n case BUCKET_BROWSER_LOAD_OBJECT_DETAILS:\n return {\n ...state,\n loadingObjectInfo: action.status,\n };\n default:\n return state;\n }\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { ITenantState, SetStorageType } from \"../types\";\nimport {\n IMkEnvs,\n IntegrationConfiguration,\n mkPanelConfigurations,\n resourcesConfigurations,\n} from \"../AddTenant/Steps/TenantResources/utils\";\nimport get from \"lodash/get\";\nimport { getBytesNumber } from \"../../../../common/utils\";\n\nexport const addTenantSetStorageTypeReducer = (\n action: SetStorageType,\n state: ITenantState\n) => {\n let size = state.createTenant.fields.tenantSize.volumeSize;\n let sizeFactor = state.createTenant.fields.tenantSize.sizeFactor;\n let volumeSize = state.createTenant.fields.tenantSize.volumeSize;\n let selectedStorageClass =\n state.createTenant.fields.nameTenant.selectedStorageClass;\n // for the aws marketplace integration we have some constraints\n // on the minimum cluster size\n\n if (action.features !== undefined && action.features.length > 0) {\n let formToRender = IMkEnvs.default;\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (action.features !== undefined && action.features.includes(element)) {\n formToRender = get(resourcesConfigurations, element, IMkEnvs.default);\n }\n });\n\n // if the size is less than the minimum for the selected storage type\n // we will override the current total storage entered amount with the minimum\n if (formToRender !== undefined) {\n const setConfigs = mkPanelConfigurations[formToRender];\n const keyCount = Object.keys(setConfigs).length;\n\n //Configuration is filled\n if (keyCount > 0) {\n const configs: IntegrationConfiguration[] = get(\n setConfigs,\n \"configurations\",\n []\n );\n const mainSelection = configs.find(\n (item) => item.typeSelection === action.storageType\n );\n if (mainSelection !== undefined) {\n // store the selected storage class\n selectedStorageClass = mainSelection.storageClass;\n if (mainSelection.minimumVolumeSize) {\n const minimumSize = getBytesNumber(\n mainSelection.minimumVolumeSize?.driveSize,\n mainSelection.minimumVolumeSize?.sizeUnit,\n true\n );\n\n const drivesPerServer =\n state.createTenant.fields.tenantSize.drivesPerServer;\n const nodes = state.createTenant.fields.tenantSize.drivesPerServer;\n\n const currentSize = getBytesNumber(\n size.toString(),\n sizeFactor,\n true\n );\n if (currentSize < minimumSize) {\n size = minimumSize.toString(10);\n const totalSize =\n parseInt(nodes) *\n parseInt(drivesPerServer) *\n parseInt(mainSelection.minimumVolumeSize.driveSize);\n\n volumeSize = totalSize.toString(10);\n sizeFactor = mainSelection.minimumVolumeSize.sizeUnit;\n }\n }\n }\n }\n }\n }\n\n const newstate = {\n ...state,\n createTenant: {\n ...state.createTenant,\n fields: {\n ...state.createTenant.fields,\n nameTenant: {\n ...state.createTenant.fields.nameTenant,\n selectedStorageType: action.storageType,\n selectedStorageClass: selectedStorageClass,\n },\n tenantSize: {\n ...state.createTenant.fields.tenantSize,\n size: size,\n volumeSize: volumeSize,\n sizeFactor: sizeFactor,\n },\n },\n },\n };\n return { ...newstate };\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 has from \"lodash/has\";\nimport get from \"lodash/get\";\nimport {\n ADD_TENANT_ADD_CA_KEYPAIR,\n ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_ADD_CONSOLE_CERT,\n ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR,\n ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR,\n ADD_TENANT_ADD_MINIO_KEYPAIR,\n ADD_TENANT_ADD_NEW_TOLERATION,\n ADD_TENANT_DELETE_CA_KEYPAIR,\n ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR,\n ADD_TENANT_DELETE_MINIO_KEYPAIR,\n ADD_TENANT_ENCRYPTION_CLIENT_CERT,\n ADD_TENANT_ENCRYPTION_GEMALTO_CA,\n ADD_TENANT_ENCRYPTION_SERVER_CERT,\n ADD_TENANT_ENCRYPTION_VAULT_CA,\n ADD_TENANT_ENCRYPTION_VAULT_CERT,\n ADD_TENANT_REMOVE_TOLERATION_ROW,\n ADD_TENANT_RESET_FORM,\n ADD_TENANT_SET_CURRENT_PAGE,\n ADD_TENANT_SET_KEY_PAIR_VALUE,\n ADD_TENANT_SET_LIMIT_SIZE,\n ADD_TENANT_SET_PAGE_VALID,\n ADD_TENANT_SET_STORAGE_CLASSES_LIST,\n ADD_TENANT_SET_STORAGE_TYPE,\n ADD_TENANT_SET_TOLERATION_VALUE,\n ADD_TENANT_UPDATE_FIELD,\n TENANT_DETAILS_SET_CURRENT_TENANT,\n TENANT_DETAILS_SET_LOADING,\n TENANT_DETAILS_SET_TAB,\n TENANT_DETAILS_SET_TENANT,\n ADD_POOL_SET_LOADING,\n ADD_POOL_SET_VALUE,\n ADD_POOL_RESET_FORM,\n ITenantState,\n TenantsManagementTypes,\n ADD_POOL_SET_PAGE_VALID,\n ADD_POOL_SET_POOL_STORAGE_CLASSES,\n ADD_POOL_ADD_NEW_TOLERATION,\n ADD_POOL_SET_TOLERATION_VALUE,\n ADD_POOL_REMOVE_TOLERATION_ROW,\n ADD_POOL_SET_KEY_PAIR_VALUE,\n POOL_DETAILS_SET_SELECTED_POOL,\n} from \"./types\";\nimport { KeyPair } from \"./ListTenants/utils\";\nimport { getRandomString } from \"./utils\";\nimport { addTenantSetStorageTypeReducer } from \"./reducers/add-tenant-reducer\";\nimport { ITolerationEffect, ITolerationOperator } from \"../../../common/types\";\n\nconst initialState: ITenantState = {\n createTenant: {\n page: 0,\n // We can assume all the other pages are valid with default configuration except for 'nameTenant'\n // because the user still have to choose a namespace and a name for the tenant\n validPages: [\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n ],\n storageClasses: [],\n limitSize: {},\n fields: {\n nameTenant: {\n tenantName: \"\",\n namespace: \"\",\n selectedStorageClass: \"\",\n selectedStorageType: \"\",\n },\n configure: {\n customImage: true,\n imageName: \"\",\n customDockerhub: false,\n imageRegistry: \"\",\n imageRegistryUsername: \"\",\n imageRegistryPassword: \"\",\n exposeMinIO: true,\n exposeConsole: true,\n tenantCustom: false,\n logSearchEnabled: true,\n prometheusEnabled: true,\n logSearchVolumeSize: \"5\",\n logSearchSizeFactor: \"Gi\",\n logSearchImage: \"\",\n kesImage: \"\",\n logSearchPostgresImage: \"\",\n logSearchPostgresInitImage: \"\",\n prometheusVolumeSize: \"5\",\n prometheusSizeFactor: \"Gi\",\n logSearchSelectedStorageClass: \"default\",\n prometheusSelectedStorageClass: \"default\",\n prometheusImage: \"\",\n prometheusSidecarImage: \"\",\n prometheusInitImage: \"\",\n tenantSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n logSearchSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n logSearchPostgresSecurityContext: {\n runAsUser: \"999\",\n runAsGroup: \"999\",\n fsGroup: \"999\",\n runAsNonRoot: true,\n },\n prometheusSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n identityProvider: {\n idpSelection: \"Built-in\",\n accessKeys: [getRandomString(16)],\n secretKeys: [getRandomString(32)],\n openIDConfigurationURL: \"\",\n openIDClientID: \"\",\n openIDSecretID: \"\",\n openIDCallbackURL: \"\",\n openIDClaimName: \"\",\n openIDScopes: \"\",\n ADURL: \"\",\n ADSkipTLS: false,\n ADServerInsecure: false,\n ADGroupSearchBaseDN: \"\",\n ADGroupSearchFilter: \"\",\n ADUserDNs: [\"\"],\n ADLookupBindDN: \"\",\n ADLookupBindPassword: \"\",\n ADUserDNSearchBaseDN: \"\",\n ADUserDNSearchFilter: \"\",\n ADServerStartTLS: false,\n },\n security: {\n enableAutoCert: true,\n enableCustomCerts: false,\n enableTLS: true,\n },\n encryption: {\n enableEncryption: false,\n encryptionType: \"vault\",\n gemaltoEndpoint: \"\",\n gemaltoToken: \"\",\n gemaltoDomain: \"\",\n gemaltoRetry: \"0\",\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: \"0\",\n vaultPing: \"0\",\n azureEndpoint: \"\",\n azureTenantID: \"\",\n azureClientID: \"\",\n azureClientSecret: \"\",\n gcpProjectID: \"\",\n gcpEndpoint: \"\",\n gcpClientEmail: \"\",\n gcpClientID: \"\",\n gcpPrivateKeyID: \"\",\n gcpPrivateKey: \"\",\n enableCustomCertsForKES: false,\n replicas: \"1\",\n kesSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n tenantSize: {\n volumeSize: \"1024\",\n sizeFactor: \"Gi\",\n drivesPerServer: \"4\",\n nodes: \"4\",\n memoryNode: \"2\",\n ecParity: \"\",\n ecParityChoices: [],\n cleanECChoices: [],\n untouchedECField: true,\n cpuToUse: \"0\",\n // resource request\n resourcesSpecifyLimit: false,\n resourcesCPURequestError: \"\",\n resourcesCPURequest: \"\",\n resourcesCPULimitError: \"\",\n resourcesCPULimit: \"\",\n resourcesMemoryRequestError: \"\",\n resourcesMemoryRequest: \"\",\n resourcesMemoryLimitError: \"\",\n resourcesMemoryLimit: \"\",\n resourcesSize: {\n error: \"\",\n memoryRequest: 0,\n memoryLimit: 0,\n cpuRequest: 0,\n cpuLimit: 0,\n },\n distribution: {\n error: \"\",\n nodes: 0,\n persistentVolumes: 0,\n disks: 0,\n },\n ecParityCalc: {\n error: 0,\n defaultEC: \"\",\n erasureCodeSet: 0,\n maxEC: \"\",\n rawCapacity: \"0\",\n storageFactors: [],\n },\n limitSize: {},\n maxAllocatableResources: {\n min_allocatable_mem: 0,\n min_allocatable_cpu: 0,\n cpu_priority: {\n max_allocatable_cpu: 0,\n max_allocatable_mem: 0,\n },\n mem_priority: {\n max_allocatable_cpu: 0,\n max_allocatable_mem: 0,\n },\n },\n maxCPUsUse: \"0\",\n maxMemorySize: \"0\",\n integrationSelection: {\n driveSize: { driveSize: \"0\", sizeUnit: \"B\" },\n CPU: 0,\n typeSelection: \"\",\n memory: 0,\n drivesPerServer: 0,\n storageClass: \"\",\n },\n },\n affinity: {\n nodeSelectorLabels: \"\",\n podAffinity: \"default\",\n withPodAntiAffinity: true,\n },\n },\n certificates: {\n minioCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n caCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n consoleCaCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n consoleCertificate: {\n id: \"console_cert_pair\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n serverCertificate: {\n id: \"encryptionServerCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n clientCertificate: {\n id: \"encryptionClientCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n vaultCertificate: {\n id: \"encryptionVaultCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n vaultCA: {\n id: \"encryptionVaultCA\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n gemaltoCA: {\n id: \"encryptionGemaltoCA\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n },\n nodeSelectorPairs: [{ key: \"\", value: \"\" }],\n tolerations: [\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ],\n },\n tenantDetails: {\n currentTenant: \"\",\n currentNamespace: \"\",\n loadingTenant: false,\n tenantInfo: null,\n currentTab: \"summary\",\n selectedPool: null,\n },\n addPool: {\n addPoolLoading: false,\n validPages: [\"affinity\", \"configure\"],\n storageClasses: [],\n limitSize: {},\n fields: {\n setup: {\n numberOfNodes: 0,\n storageClass: \"\",\n volumeSize: 0,\n volumesPerServer: 0,\n },\n affinity: {\n nodeSelectorLabels: \"\",\n podAffinity: \"default\",\n withPodAntiAffinity: true,\n },\n configuration: {\n securityContextEnabled: false,\n securityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n nodeSelectorPairs: [{ key: \"\", value: \"\" }],\n tolerations: [\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ],\n },\n },\n};\n\nexport function tenantsReducer(\n state = initialState,\n action: TenantsManagementTypes\n): ITenantState {\n let newState: ITenantState = { ...state };\n\n switch (action.type) {\n case ADD_TENANT_SET_CURRENT_PAGE:\n newState.createTenant.page = action.page;\n\n return { ...newState };\n\n case ADD_TENANT_UPDATE_FIELD:\n if (\n has(newState.createTenant.fields, `${action.pageName}.${action.field}`)\n ) {\n const originPageNameItems = get(\n newState.createTenant.fields,\n `${action.pageName}`,\n {}\n );\n\n let newValue: any = {};\n newValue[action.field] = action.value;\n\n const joinValue = { ...originPageNameItems, ...newValue };\n\n newState.createTenant.fields[action.pageName] = { ...joinValue };\n\n return { ...newState };\n }\n return state;\n case ADD_TENANT_SET_PAGE_VALID:\n let originValidPages = state.createTenant.validPages;\n\n if (action.valid) {\n if (!originValidPages.includes(action.pageName)) {\n originValidPages.push(action.pageName);\n\n newState.createTenant.validPages = [...originValidPages];\n }\n } else {\n const newSetOfPages = originValidPages.filter(\n (elm) => elm !== action.pageName\n );\n\n newState.createTenant.validPages = [...newSetOfPages];\n }\n\n return { ...newState };\n case ADD_TENANT_SET_STORAGE_CLASSES_LIST:\n const changeCL = {\n ...state,\n createTenant: {\n ...state.createTenant,\n storageClasses: action.storageClasses,\n },\n };\n return { ...changeCL };\n case ADD_TENANT_SET_STORAGE_TYPE:\n return addTenantSetStorageTypeReducer(action, state);\n case ADD_TENANT_SET_LIMIT_SIZE:\n const changeSizeLimit = {\n ...state,\n createTenant: { ...state.createTenant, limitSize: action.limitSize },\n };\n\n return { ...changeSizeLimit };\n case ADD_TENANT_ADD_MINIO_KEYPAIR:\n const minioCerts = [\n ...state.createTenant.certificates.minioCertificates,\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ];\n newState.createTenant.certificates.minioCertificates = [...minioCerts];\n return { ...newState };\n case ADD_TENANT_ADD_FILE_TO_MINIO_KEYPAIR:\n const minioCertificates =\n state.createTenant.certificates.minioCertificates;\n\n const NCertList = minioCertificates.map((item: KeyPair) => {\n if (item.id === action.id) {\n return {\n ...item,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n }\n return item;\n });\n newState.createTenant.certificates.minioCertificates = [...NCertList];\n return { ...newState };\n case ADD_TENANT_DELETE_MINIO_KEYPAIR:\n const minioCertsList = state.createTenant.certificates.minioCertificates;\n\n if (minioCertsList.length > 1) {\n const cleanMinioCertsList = minioCertsList.filter(\n (item: KeyPair) => item.id !== action.id\n );\n newState.createTenant.certificates.minioCertificates = [\n ...cleanMinioCertsList,\n ];\n return { ...newState };\n }\n return { ...state };\n case ADD_TENANT_ADD_CA_KEYPAIR:\n const CACerts = [\n ...state.createTenant.certificates.caCertificates,\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ];\n newState.createTenant.certificates.caCertificates = [...CACerts];\n return { ...newState };\n case ADD_TENANT_ADD_FILE_TO_CA_KEYPAIR:\n const caCertificates = state.createTenant.certificates.caCertificates;\n\n const NACList = caCertificates.map((item: KeyPair) => {\n if (item.id === action.id) {\n return {\n ...item,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n }\n return item;\n });\n newState.createTenant.certificates.caCertificates = [...NACList];\n return { ...newState };\n case ADD_TENANT_DELETE_CA_KEYPAIR:\n const CACertsList = state.createTenant.certificates.caCertificates;\n if (CACertsList.length > 1) {\n const cleanCaCertsList = CACertsList.filter(\n (item: KeyPair) => item.id !== action.id\n );\n newState.createTenant.certificates.caCertificates = [\n ...cleanCaCertsList,\n ];\n return { ...newState };\n }\n return { ...state };\n case ADD_TENANT_ADD_CONSOLE_CERT:\n const consoleCert = state.createTenant.certificates.consoleCertificate;\n\n newState.createTenant.certificates.consoleCertificate = {\n ...consoleCert,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_ADD_CONSOLE_CA_KEYPAIR:\n const ConsoleCACerts = [\n ...state.createTenant.certificates.consoleCaCertificates,\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ];\n newState.createTenant.certificates.consoleCaCertificates = [\n ...ConsoleCACerts,\n ];\n return { ...newState };\n case ADD_TENANT_ADD_FILE_TO_CONSOLE_CA_KEYPAIR:\n const consoleCaCertificates =\n state.createTenant.certificates.consoleCaCertificates;\n\n const consoleNACList = consoleCaCertificates.map((item: KeyPair) => {\n if (item.id === action.id) {\n return {\n ...item,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n }\n return item;\n });\n newState.createTenant.certificates.consoleCaCertificates = [\n ...consoleNACList,\n ];\n return { ...newState };\n case ADD_TENANT_DELETE_CONSOLE_CA_KEYPAIR:\n const consoleCACertsList =\n state.createTenant.certificates.consoleCaCertificates;\n if (consoleCACertsList.length > 1) {\n const cleanCaCertsList = consoleCACertsList.filter(\n (item: KeyPair) => item.id !== action.id\n );\n newState.createTenant.certificates.consoleCaCertificates = [\n ...cleanCaCertsList,\n ];\n return { ...newState };\n }\n return { ...state };\n case ADD_TENANT_ENCRYPTION_SERVER_CERT:\n const encServerCert = state.createTenant.certificates.serverCertificate;\n\n newState.createTenant.certificates.serverCertificate = {\n ...encServerCert,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_ENCRYPTION_CLIENT_CERT:\n const encClientCert = state.createTenant.certificates.clientCertificate;\n\n newState.createTenant.certificates.clientCertificate = {\n ...encClientCert,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_ENCRYPTION_VAULT_CERT:\n const encVaultCert = state.createTenant.certificates.vaultCertificate;\n\n newState.createTenant.certificates.vaultCertificate = {\n ...encVaultCert,\n [action.key]: action.fileName,\n [`encoded_${action.key}`]: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_ENCRYPTION_VAULT_CA:\n const encVaultCA = state.createTenant.certificates.vaultCA;\n\n newState.createTenant.certificates.vaultCA = {\n ...encVaultCA,\n cert: action.fileName,\n encoded_cert: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_ENCRYPTION_GEMALTO_CA:\n const encGemaltoCA = state.createTenant.certificates.gemaltoCA;\n\n newState.createTenant.certificates.gemaltoCA = {\n ...encGemaltoCA,\n cert: action.fileName,\n encoded_cert: action.value,\n };\n\n return { ...newState };\n case ADD_TENANT_RESET_FORM:\n return {\n ...state,\n createTenant: {\n page: 0,\n // We can assume all the other pages are valid with default configuration except for 'nameTenant'\n // because the user still have to choose a namespace and a name for the tenant\n validPages: [\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n ],\n storageClasses: [],\n limitSize: {},\n fields: {\n nameTenant: {\n tenantName: \"\",\n namespace: \"\",\n selectedStorageClass: \"\",\n selectedStorageType: \"\",\n },\n configure: {\n customImage: false,\n imageName: \"\",\n customDockerhub: false,\n imageRegistry: \"\",\n imageRegistryUsername: \"\",\n imageRegistryPassword: \"\",\n exposeMinIO: true,\n exposeConsole: true,\n tenantCustom: false,\n logSearchEnabled: true,\n prometheusEnabled: true,\n logSearchVolumeSize: \"5\",\n logSearchSizeFactor: \"Gi\",\n logSearchSelectedStorageClass: \"default\",\n logSearchImage: \"\",\n kesImage: \"\",\n logSearchPostgresImage: \"\",\n logSearchPostgresInitImage: \"\",\n prometheusVolumeSize: \"5\",\n prometheusSizeFactor: \"Gi\",\n prometheusSelectedStorageClass: \"default\",\n prometheusImage: \"\",\n prometheusSidecarImage: \"\",\n prometheusInitImage: \"\",\n tenantSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n logSearchSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n logSearchPostgresSecurityContext: {\n runAsUser: \"999\",\n runAsGroup: \"999\",\n fsGroup: \"999\",\n runAsNonRoot: true,\n },\n prometheusSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n identityProvider: {\n idpSelection: \"Built-in\",\n accessKeys: [getRandomString(16)],\n secretKeys: [getRandomString(32)],\n openIDConfigurationURL: \"\",\n openIDClientID: \"\",\n openIDSecretID: \"\",\n openIDCallbackURL: \"\",\n openIDClaimName: \"\",\n openIDScopes: \"\",\n ADURL: \"\",\n ADSkipTLS: false,\n ADServerInsecure: false,\n ADGroupSearchBaseDN: \"\",\n ADGroupSearchFilter: \"\",\n ADUserDNs: [\"\"],\n ADLookupBindDN: \"\",\n ADLookupBindPassword: \"\",\n ADUserDNSearchBaseDN: \"\",\n ADUserDNSearchFilter: \"\",\n ADServerStartTLS: false,\n },\n security: {\n enableAutoCert: true,\n enableCustomCerts: false,\n enableTLS: true,\n },\n encryption: {\n enableEncryption: false,\n encryptionType: \"vault\",\n gemaltoEndpoint: \"\",\n gemaltoToken: \"\",\n gemaltoDomain: \"\",\n gemaltoRetry: \"0\",\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: \"0\",\n vaultPing: \"0\",\n azureEndpoint: \"\",\n azureTenantID: \"\",\n azureClientID: \"\",\n azureClientSecret: \"\",\n gcpProjectID: \"\",\n gcpEndpoint: \"\",\n gcpClientEmail: \"\",\n gcpClientID: \"\",\n gcpPrivateKeyID: \"\",\n gcpPrivateKey: \"\",\n enableCustomCertsForKES: false,\n replicas: \"1\",\n kesSecurityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n tenantSize: {\n volumeSize: \"1024\",\n sizeFactor: \"Gi\",\n drivesPerServer: \"4\",\n nodes: \"4\",\n memoryNode: \"2\",\n ecParity: \"\",\n ecParityChoices: [],\n cleanECChoices: [],\n untouchedECField: true,\n distribution: {\n error: \"\",\n nodes: 0,\n persistentVolumes: 0,\n disks: 0,\n },\n ecParityCalc: {\n error: 0,\n defaultEC: \"\",\n erasureCodeSet: 0,\n maxEC: \"\",\n rawCapacity: \"0\",\n storageFactors: [],\n },\n limitSize: {},\n cpuToUse: \"0\",\n // resource request\n resourcesSpecifyLimit: false,\n resourcesCPURequestError: \"\",\n resourcesCPURequest: \"\",\n resourcesCPULimitError: \"\",\n resourcesCPULimit: \"\",\n resourcesMemoryRequestError: \"\",\n resourcesMemoryRequest: \"\",\n resourcesMemoryLimitError: \"\",\n resourcesMemoryLimit: \"\",\n resourcesSize: {\n error: \"\",\n memoryRequest: 0,\n memoryLimit: 0,\n cpuRequest: 0,\n cpuLimit: 0,\n },\n maxAllocatableResources: {\n min_allocatable_mem: 0,\n min_allocatable_cpu: 0,\n cpu_priority: {\n max_allocatable_cpu: 0,\n max_allocatable_mem: 0,\n },\n mem_priority: {\n max_allocatable_cpu: 0,\n max_allocatable_mem: 0,\n },\n },\n maxCPUsUse: \"0\",\n maxMemorySize: \"0\",\n integrationSelection: {\n driveSize: { driveSize: \"0\", sizeUnit: \"B\" },\n CPU: 0,\n typeSelection: \"\",\n memory: 0,\n drivesPerServer: 0,\n storageClass: \"\",\n },\n },\n affinity: {\n nodeSelectorLabels: \"\",\n podAffinity: \"default\",\n withPodAntiAffinity: true,\n },\n },\n certificates: {\n minioCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n caCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n consoleCaCertificates: [\n {\n id: Date.now().toString(),\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n ],\n consoleCertificate: {\n id: \"console_cert_pair\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n serverCertificate: {\n id: \"encryptionServerCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n clientCertificate: {\n id: \"encryptionClientCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n vaultCertificate: {\n id: \"encryptionVaultCertificate\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n vaultCA: {\n id: \"encryptionVaultCA\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n gemaltoCA: {\n id: \"encryptionGemaltoCA\",\n key: \"\",\n cert: \"\",\n encoded_key: \"\",\n encoded_cert: \"\",\n },\n },\n nodeSelectorPairs: [{ key: \"\", value: \"\" }],\n tolerations: [\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ],\n },\n };\n case ADD_TENANT_SET_KEY_PAIR_VALUE:\n return {\n ...state,\n createTenant: {\n ...state.createTenant,\n nodeSelectorPairs: action.newArray,\n },\n };\n case TENANT_DETAILS_SET_LOADING:\n const tenantDetails = {\n ...state.tenantDetails,\n loadingTenant: action.state,\n };\n return {\n ...state,\n tenantDetails: {\n ...tenantDetails,\n },\n };\n case TENANT_DETAILS_SET_CURRENT_TENANT:\n const currentTenant = {\n ...state.tenantDetails,\n currentTenant: action.name,\n currentNamespace: action.namespace,\n };\n return {\n ...state,\n tenantDetails: {\n ...currentTenant,\n },\n };\n case TENANT_DETAILS_SET_TENANT:\n let tenantData = null;\n if (action.tenant) {\n tenantData = { tenantInfo: { ...action.tenant } };\n }\n const setTenant = { ...state.tenantDetails, ...tenantData };\n return {\n ...state,\n tenantDetails: {\n ...setTenant,\n },\n };\n case TENANT_DETAILS_SET_TAB:\n const newTab = { ...state.tenantDetails, currentTab: action.tab };\n return {\n ...state,\n tenantDetails: {\n ...newTab,\n },\n };\n case ADD_TENANT_SET_TOLERATION_VALUE:\n const newSetTolerationValue = [...state.createTenant.tolerations];\n\n newSetTolerationValue[action.index] = action.toleration;\n\n return {\n ...state,\n createTenant: {\n ...state.createTenant,\n tolerations: [...newSetTolerationValue],\n },\n };\n case ADD_TENANT_ADD_NEW_TOLERATION:\n const newTolerationArray = [\n ...state.createTenant.tolerations,\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ];\n return {\n ...state,\n createTenant: {\n ...state.createTenant,\n tolerations: [...newTolerationArray],\n },\n };\n case ADD_TENANT_REMOVE_TOLERATION_ROW:\n const cleanTolerationArray = state.createTenant.tolerations.filter(\n (_, index) => index !== action.index\n );\n\n return {\n ...state,\n createTenant: {\n ...state.createTenant,\n tolerations: [...cleanTolerationArray],\n },\n };\n case ADD_POOL_SET_LOADING:\n return {\n ...state,\n addPool: {\n ...state.addPool,\n addPoolLoading: action.state,\n },\n };\n case ADD_POOL_SET_VALUE:\n if (has(newState.addPool.fields, `${action.page}.${action.field}`)) {\n const originPageNameItems = get(\n newState.addPool.fields,\n `${action.page}`,\n {}\n );\n\n let newValue: any = {};\n newValue[action.field] = action.value;\n\n const joinValue = { ...originPageNameItems, ...newValue };\n\n newState.addPool.fields[action.page] = { ...joinValue };\n\n return { ...newState };\n }\n\n return state;\n case ADD_POOL_SET_PAGE_VALID:\n const nvPoolPV = [...state.addPool.validPages];\n\n if (action.status) {\n if (!nvPoolPV.includes(action.page)) {\n nvPoolPV.push(action.page);\n\n newState.addPool.validPages = [...nvPoolPV];\n }\n } else {\n const newSetOfPages = nvPoolPV.filter((elm) => elm !== action.page);\n\n newState.addPool.validPages = [...newSetOfPages];\n }\n\n return { ...newState };\n case ADD_POOL_SET_POOL_STORAGE_CLASSES:\n return {\n ...newState,\n addPool: {\n ...newState.addPool,\n storageClasses: action.storageClasses,\n },\n };\n case ADD_POOL_SET_TOLERATION_VALUE:\n const newPoolTolerationValue = [...state.addPool.fields.tolerations];\n\n newPoolTolerationValue[action.index] = action.toleration;\n\n return {\n ...state,\n addPool: {\n ...state.addPool,\n fields: {\n ...state.addPool.fields,\n tolerations: [...newPoolTolerationValue],\n },\n },\n };\n case ADD_POOL_ADD_NEW_TOLERATION:\n const newPoolTolerationArray = [\n ...state.addPool.fields.tolerations,\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ];\n return {\n ...state,\n addPool: {\n ...state.addPool,\n fields: {\n ...state.addPool.fields,\n tolerations: [...newPoolTolerationArray],\n },\n },\n };\n case ADD_POOL_REMOVE_TOLERATION_ROW:\n const cleanPoolTolerationArray = state.addPool.fields.tolerations.filter(\n (_, index) => index !== action.index\n );\n\n return {\n ...state,\n addPool: {\n ...state.addPool,\n fields: {\n ...state.addPool.fields,\n tolerations: [...cleanPoolTolerationArray],\n },\n },\n };\n case ADD_POOL_SET_KEY_PAIR_VALUE:\n return {\n ...state,\n addPool: {\n ...state.addPool,\n fields: {\n ...state.addPool.fields,\n nodeSelectorPairs: action.newArray,\n },\n },\n };\n case POOL_DETAILS_SET_SELECTED_POOL:\n return {\n ...state,\n tenantDetails: {\n ...state.tenantDetails,\n selectedPool: action.pool,\n },\n };\n case ADD_POOL_RESET_FORM:\n return {\n ...state,\n addPool: {\n addPoolLoading: false,\n validPages: [\"affinity\", \"configure\"],\n storageClasses: [],\n limitSize: {},\n fields: {\n setup: {\n numberOfNodes: 0,\n storageClass: \"\",\n volumeSize: 0,\n volumesPerServer: 0,\n },\n affinity: {\n nodeSelectorLabels: \"\",\n podAffinity: \"default\",\n withPodAntiAffinity: true,\n },\n configuration: {\n securityContextEnabled: false,\n securityContext: {\n runAsUser: \"1000\",\n runAsGroup: \"1000\",\n fsGroup: \"1000\",\n runAsNonRoot: true,\n },\n },\n nodeSelectorPairs: [{ key: \"\", value: \"\" }],\n tolerations: [\n {\n key: \"\",\n tolerationSeconds: { seconds: 0 },\n value: \"\",\n effect: ITolerationEffect.NoSchedule,\n operator: ITolerationOperator.Equal,\n },\n ],\n },\n },\n };\n default:\n return state;\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\nexport const DIRECT_CSI_SELECT_DRIVE = \"DIRECT_CSI/SELECT_DRIVE\";\n\nexport interface IDirectCSIDrives {\n joinName: string;\n drive: string;\n capacity: string;\n allocated: string;\n volumes: number;\n node: string;\n status: \"Available\" | \"Unavailable\" | \"InUse\" | \"Ready\" | \"Terminating\";\n}\n\nexport interface IDirectCSIVolumes {\n volume: string;\n capacity: string;\n node: string;\n drive: string;\n}\n\nexport interface IDrivesResponse {\n drives: IDirectCSIDrives[];\n}\n\nexport interface IVolumesResponse {\n volumes: IDirectCSIVolumes[];\n}\n\nexport interface IDirectCSIFormatResult {\n formatIssuesList: IDirectCSIFormatResItem[];\n}\n\nexport interface IDirectCSIFormatResItem {\n node: string;\n drive: string;\n error: string;\n}\n\ninterface SelectDrive {\n type: typeof DIRECT_CSI_SELECT_DRIVE;\n driveName: string;\n}\n\nexport interface IDirectCSIState {\n selectedDrive: string;\n}\n\nexport type DirectCSITypes = SelectDrive;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\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 DirectCSITypes,\n DIRECT_CSI_SELECT_DRIVE,\n IDirectCSIState,\n} from \"./types\";\n\nconst initialState: IDirectCSIState = {\n selectedDrive: \"\",\n};\n\nexport function directCSIReducer(\n state = initialState,\n action: DirectCSITypes\n): IDirectCSIState {\n switch (action.type) {\n case DIRECT_CSI_SELECT_DRIVE:\n if (action.driveName !== \"\") {\n const newState = { ...state };\n newState.selectedDrive = action.driveName;\n return newState;\n }\n return state;\n default:\n return state;\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 { zoomState } from \"./types\";\nimport {\n ZoomActionTypes,\n DASHBOARD_OPEN_ZOOM,\n DASHBOARD_CLOSE_ZOOM,\n} from \"./actions\";\n\nexport interface DashboardState {\n zoom: zoomState;\n}\n\nconst initialState: DashboardState = {\n zoom: {\n openZoom: false,\n widgetRender: null,\n },\n};\n\nexport function dashboardReducer(\n state = initialState,\n action: ZoomActionTypes\n): DashboardState {\n switch (action.type) {\n case DASHBOARD_OPEN_ZOOM:\n return {\n ...state,\n zoom: {\n openZoom: true,\n widgetRender: { ...action.widget },\n },\n };\n case DASHBOARD_CLOSE_ZOOM:\n return {\n ...state,\n zoom: {\n openZoom: false,\n widgetRender: null,\n },\n };\n default:\n return state;\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 { applyMiddleware, combineReducers, compose, createStore } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { systemReducer } from \"./reducer\";\nimport { traceReducer } from \"./screens/Console/Trace/reducers\";\nimport { logReducer } from \"./screens/Console/Logs/reducers\";\nimport { healthInfoReducer } from \"./screens/Console/HealthInfo/reducers\";\nimport { watchReducer } from \"./screens/Console/Watch/reducers\";\nimport { consoleReducer } from \"./screens/Console/reducer\";\nimport { bucketsReducer } from \"./screens/Console/Buckets/reducers\";\nimport { objectBrowserReducer } from \"./screens/Console/ObjectBrowser/reducers\";\nimport { tenantsReducer } from \"./screens/Console/Tenants/reducer\";\nimport { directCSIReducer } from \"./screens/Console/DirectCSI/reducer\";\nimport { dashboardReducer } from \"./screens/Console/Dashboard/reducer\";\n\nconst globalReducer = combineReducers({\n system: systemReducer,\n trace: traceReducer,\n logs: logReducer,\n watch: watchReducer,\n console: consoleReducer,\n buckets: bucketsReducer,\n objectBrowser: objectBrowserReducer,\n healthInfo: healthInfoReducer,\n tenants: tenantsReducer,\n directCSI: directCSIReducer,\n dashboard: dashboardReducer,\n});\n\ndeclare global {\n interface Window {\n __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;\n }\n}\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nexport type AppState = ReturnType;\n\nexport const store = createStore(\n globalReducer,\n composeEnhancers(applyMiddleware(thunk))\n);\n\nexport default function configureStore() {\n return store;\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\nimport { ErrorResponseHandler } from \"./common/types\";\n\n// along with this program. If not, see .\nexport interface snackBarMessage {\n message: string;\n detailedErrorMsg: string;\n type: \"message\" | \"error\";\n}\n\nexport interface SystemState {\n loggedIn: boolean;\n operatorMode: boolean;\n sidebarOpen: boolean;\n session: string;\n userName: string;\n serverNeedsRestart: boolean;\n serverIsLoading: boolean;\n loadingProgress: number;\n snackBar: snackBarMessage;\n modalSnackBar: snackBarMessage;\n serverDiagnosticStatus: string;\n distributedSetup: boolean;\n}\n\nexport const USER_LOGGED = \"USER_LOGGED\";\nexport const OPERATOR_MODE = \"OPERATOR_MODE\";\nexport const MENU_OPEN = \"MENU_OPEN\";\nexport const SERVER_NEEDS_RESTART = \"SERVER_NEEDS_RESTART\";\nexport const SERVER_IS_LOADING = \"SERVER_IS_LOADING\";\nexport const SET_LOADING_PROGRESS = \"SET_LOADING_PROGRESS\";\nexport const SET_SNACK_BAR_MESSAGE = \"SET_SNACK_BAR_MESSAGE\";\nexport const SET_SERVER_DIAG_STAT = \"SET_SERVER_DIAG_STAT\";\nexport const SET_ERROR_SNACK_MESSAGE = \"SET_ERROR_SNACK_MESSAGE\";\nexport const SET_SNACK_MODAL_MESSAGE = \"SET_SNACK_MODAL_MESSAGE\";\nexport const SET_MODAL_ERROR_MESSAGE = \"SET_MODAL_ERROR_MESSAGE\";\nexport const GLOBAL_SET_DISTRIBUTED_SETUP = \"GLOBAL/SET_DISTRIBUTED_SETUP\";\n\ninterface UserLoggedAction {\n type: typeof USER_LOGGED;\n logged: boolean;\n}\n\ninterface OperatorModeAction {\n type: typeof OPERATOR_MODE;\n operatorMode: boolean;\n}\n\ninterface SetMenuOpenAction {\n type: typeof MENU_OPEN;\n open: boolean;\n}\n\ninterface ServerNeedsRestartAction {\n type: typeof SERVER_NEEDS_RESTART;\n needsRestart: boolean;\n}\n\ninterface ServerIsLoading {\n type: typeof SERVER_IS_LOADING;\n isLoading: boolean;\n}\ninterface SetLoadingProgress {\n type: typeof SET_LOADING_PROGRESS;\n loadingProgress: number;\n}\n\ninterface SetServerDiagStat {\n type: typeof SET_SERVER_DIAG_STAT;\n serverDiagnosticStatus: string;\n}\n\ninterface SetSnackBarMessage {\n type: typeof SET_SNACK_BAR_MESSAGE;\n message: string;\n}\n\ninterface SetErrorSnackMessage {\n type: typeof SET_ERROR_SNACK_MESSAGE;\n message: ErrorResponseHandler;\n}\n\ninterface SetModalSnackMessage {\n type: typeof SET_SNACK_MODAL_MESSAGE;\n message: string;\n}\n\ninterface SetModalErrorMessage {\n type: typeof SET_MODAL_ERROR_MESSAGE;\n message: ErrorResponseHandler;\n}\n\ninterface SetDistributedSetup {\n type: typeof GLOBAL_SET_DISTRIBUTED_SETUP;\n distributedSetup: boolean;\n}\n\nexport type SystemActionTypes =\n | UserLoggedAction\n | OperatorModeAction\n | SetMenuOpenAction\n | ServerNeedsRestartAction\n | ServerIsLoading\n | SetLoadingProgress\n | SetServerDiagStat\n | SetSnackBarMessage\n | SetErrorSnackMessage\n | SetModalSnackMessage\n | SetModalErrorMessage\n | SetDistributedSetup;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\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 IValidation {\n fieldKey: string;\n required: boolean;\n pattern?: RegExp;\n customPatternMessage?: string;\n customValidation?: boolean; // The validation to trigger the error\n customValidationMessage?: string;\n value: string;\n}\n\nexport const commonFormValidation = (fieldsValidate: IValidation[]) => {\n let returnErrors: any = {};\n\n fieldsValidate.forEach((field) => {\n if (\n field.required &&\n typeof field.value !== \"undefined\" &&\n field.value.trim &&\n field.value.trim() === \"\"\n ) {\n returnErrors[field.fieldKey] = \"Field cannot be empty\";\n return;\n }\n // if it's not required and the value is empty, we are done here\n if (\n !field.required &&\n typeof field.value !== \"undefined\" &&\n field.value.trim &&\n field.value.trim() === \"\"\n ) {\n return;\n }\n\n if (field.customValidation && field.customValidationMessage) {\n returnErrors[field.fieldKey] = field.customValidationMessage;\n return;\n }\n\n if (field.pattern && field.customPatternMessage) {\n const rgx = new RegExp(field.pattern, \"g\");\n\n if (\n field.value &&\n field.value.trim() !== \"\" &&\n !field.value.match(rgx) &&\n typeof field.value !== \"undefined\"\n ) {\n returnErrors[field.fieldKey] = field.customPatternMessage;\n }\n return;\n }\n });\n\n return returnErrors;\n};\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\n","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.8.2\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/babel-plugin\": \"^11.7.1\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/utils\": \"^1.1.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.7.1\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.8.1\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^4.2.1\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\n\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\n\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return () => {\n setRef(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.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 children to render into the `container`.\n */\n children: PropTypes.node,\n\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\n\nexport default Portal;","/* eslint-disable @typescript-eslint/naming-convention, consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils'; // Inspired by https://github.com/focus-trap/tabbable\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\n\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n } // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
    ,